Git学习(二)
分支学习:
- 创建新分支dev:
git branch dev
-
切换到dev分支:
git checkout dev
可以简写为一句话:
git checkout -b dev
-
可以用命令
git branch
来查看当前分支的情况。git branch
会列出所有的分支,当前的分支是带有*标志的那个。 - 合并指定的分支到当前的分支上面:
git merge dev
- 删除名字叫dev的分支:
git branch -d dev
-
git解决冲突:如果出现合并冲突的情况,需要手动解决冲突,然后在添加,推送到本地的git库。
显示git的合并图:
git log --graph --pretty=oneline --abbrey-commit
-
通常合并分支时,git会用fast forward模式。但在这种模式下,删除分支之后,会丢掉分支的信息。
如果禁用fast forward模式,git就会在merge时生成一个新的commit,这样,从分支历史上就可以看到分支的信息。
禁用fast forward模式:
git merge --no-ff -m "not fast forward" dev
。 - bug分支,当你正在dev上面开发的时候,有一个紧急的bug需要修复。
- 这时候可以用
git stash
将当前的工作现场储存起来,等以后恢复现场后继续工作。 -
然后切换到master的分支上,创建一个名字叫issue的分支:
git checkout -b issue
,然后开始修复bug,修复好之后,切换到master分支上面,合并分支。然后删除issue分支:git checkout master
git merge --no-ff -m “merge bug fix " issue
git branch -d issue
- 最后切换到dev的分支继续干活:
git checkout dev
-
git stash list
用来查看工作现场的储存列表,需要恢复一下。a.
git stash apply
恢复,但是恢复之后,stash内容并不删除,需要用git stash drop
来删除。b.可以用
git stash pop
恢复,在恢复的同时,把stash内容也删除了。
- 创建新分支feature(未合并),没有合并的分支不能删除,可以强制用
git branch -D feature
来强制删除。 -
推送分支到远程仓库origin:
git push origin master
或git push origin dev
推送分支时如果不能推送,多半是因为和他人提交到远程仓库有冲突。如果别人提交代码到远程仓库,这个时候你需要把远程仓库的最新代码拉下来,然后保证两端代码的同步:
git pull origin master
然后再提交:
git push origin master
一般我们在push之前都会先pull,这样不容易冲突。