git版本管理
教程:(1)廖雪峰
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137396287703354d8c6c01c904c7d9ff056ae23da865a000
(2)pro git第二版(汉化教程)
https://bingohuang.gitbooks.io/progit2/content/02-git-basics/sections/undoing.html#
(1)window安装
在Windows上使用Git,可以从Git官网直接下载安装程序:https://git-scm.com/downloads,(网速慢的同学请移步国内镜像),然后按默认选项安装即可
安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
(2)创建版本库
1.选择一个合适的地方,创建一个空目录:
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
2.git init命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
(3)文件添加到版本库
第一步,用命令git add告诉Git,把文件添加到仓库:
$ git add readme.txt
第二步,用命令git commit告诉Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
(3)常用命令
git status:时刻掌握仓库当前的状态
git diff:看看不同
git add 文件名:加入
git commit -m “描述”:提交
git log:查看提交记录
git log --pretty=oneline:查看提交记录(更简洁)
git reset: 回退 (HEAD:表示当前版本)
git reset --hard HEAD^ /HEAD~1:回退到上个版本
cat 文件名:查看文件的内容(linux中)
git reflog:用来记录你的每一次命令(序列)
git diff HEAD – 文件名:查看提交版本与新版本的区别
git checkout – file:丢弃工作区的修改(回退到上个版本)
git reset HEAD file:把暂存区的修改撤销掉
del test.txt:删除文件(linux:rm)
git rm test.txt:确实从版本库中删除
git remote add origin git@github.com:githib账号/learngit.git:已有的本地仓库与之关联
git push -u origin master:把本地库的所有内容第一次推送到远程库上 (origin远程库名)
git push origin master:把本地库的所有内容推送到远程库上
git clone git@github.com:githit账号/gitskills.git:克隆一个本地库(gitskills:githib上的库名称)
git checkout -b dev:创建dev分支,然后切换到dev分支
git branch:查看当前分支
git checkout master:切换回master分支
git merge dev:把dev分支的工作成果合并到master分支上
git branch -d dev:删除dev分支
git log --graph --pretty=oneline --abbrev-commit:可以看到分支的合并情况,,可以看到分支合并图
git merge --no-ff -m “merge with no-ff” dev:合并dev分支(–no-ff参数,表示禁用Fast forward)
git stash:把当前工作现场“储藏”起来
git stash list:查看保护的工作现场孩还在不
git stash apply:恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
git stash pop:恢复的同时把stash内容也删了
git stash apply stash@{0}:恢复指定的stash
git branch -d feature-vulcan:删除分支(-D强行删除)
git remote:查看远程库的信息
git remote -v:显示远程库更详细的信息
git push origin master:推送分支,就是把该分支上的所有本地提交推送到远程库
git pull:把最新的提交从origin/dev抓下来,在本地合并,解决冲突,再推送
git tag v1.0:给当前分支打标签
git tag:查看所有标签
git tag v0.9 f52c633:对f52c633所在序列打上标签
git show v0.9:查看v0.9标签信息
git tag -a v0.1 -m “#” 1094adb:带有#说明的标签
git tag -d v1.0:删除某个标签 v1.0
git push origin v1.0:标签推送到远程
git push origin --tags:一次性推送全部尚未推送到远程的本地标签
(1)git tag -d v0.9:若已推送到远程,则先删除本地标签,再删除远程标签
(2)git push origin :refs/tags/v0.9
git remote -v:查看远程库信息
git remote rm origin:删除已有的GitHub远程库
git remote add origin git@gitee.com:duhong/learngit.git:关联远程库
git config --global color.ui true:让Git显示颜色,会让命令输出看起来更醒目
git add -f App.class:强制添加
.gitignore文件:后把要忽略的文件名填进去,Git就会自动忽略这些文件
git check-ignore:.gitignore检查
git config --global alias.st status:将status取别名为st
(3)工作区和暂存区
stage:暂存区
工作目录learngit文件夹:工作区
工作区有一个隐藏目录.git:版本库(Repository)
master:分支
HEAFD相当于指针
(4)多人协作及Rebase需要重新看、配置别名、搭建git
1:自报家门
$ git config --global user.name “Your Name” --输入你的名字
$ git config --global user.email “email@example.com”–输入你的邮箱
2:创建版本库
$ mkdir learngit --创建一个子目录
$ cd learngit --切换到所要创建的子目录的上一层目录下
$ pwd --把这个目录变成Git可以管理的仓库
3:把文件添加到版本库
$ git add readme.txt 把readme.txt文件添加到暂存区
$ git commit -m “wrote a readme file” --把刚刚添加的文件继续提交,提交到Git的服务器文件分支中
4:版本管理
$ git status 查看文件状态
$ git diff readme.txt 查看各版本不同点
$ git log 版本提交历史记录
$ git reset --hard HEAD^ 回退到上一版本
$ git reset --hard HEAD^^ 回退到上上一版本
$ git reset --hard 3628164 根据 $ git log 中得到的版本号回退到对应的版本
$ git diff HEAD – readme.txt 查看工作区和版本库里面最新版本的区别
$ git checkout – readme.txt 丢弃工作区的修改
$ rm readme.txt 删除文件
5:远程版本库与本地版本库关联
$ git remote add origin git@github.com:michaelliao/learngit.git
$ git push -u origin master 把本地库的所有内容推送到远程库上
$ git clone git@github.com:michaelliao/gitskills.git 从远程库克隆到github上
$ git clone git@github.com:michaelliao/gitskills.git 克隆一个本地库
$ git merge 命令用于合并指定分支到当前分支
6:分支管理
$ git branch 查看分支:
$ git branch 创建分支
$ git checkout 切换分支:
$ git checkout -b 创建+切换分支:
$ git merge 合并某分支到当前分支:
$ git branch -d 删除分支:
$ git log --graph 可以看到分支合并图
7:Bug分支
$ git stash 当前工作现场“储藏”起来,等以后恢复现场后继续工作
$ git stash pop,回到工作现场
8:Feature分支
git branch -D 丢弃一个没有被合并过的分支,强行删除
9:多人合作
$ git remote 查看远程库的信息