1.创建切换分支
git checkout -b dev
等同于:
git branch dev
git checkout dev
查看当前分支以所有分支情况:
git branch
2.合并分支
git merge
命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和
dev
分支的最新提交是完全一样的
git checkout master
git merge dev
3.删除分支
git branch -d dev
4.解决冲突
git merge feature1
直接查看 file
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
<<<<<<< HEADCreating a new branch is quick & simple.
=======Creating a new branch is quick AND simple.
>>>>>>> feature1
Git用
<<<<<<<
,=======
,>>>>>>>
标记出不同分支的内容
用带参数的
git log
也可以看到分支的合并情况:
$ git log --graph --pretty=oneline --abbrev-commit
* 59bc1cb conflict fixed
|\
| * 75a857c AND simple
* | 400b400 & simple
|/
* fec145a branch test
5.分支管理策略
采用 --no-ff 参数,表示禁用 Fast forward 策略
git merge --no-ff -m "merge with no-ff" dev
因为本次合并要创建一个新的commit,所以加上
-m
参数,把commit描述写进去
合并 后用 git log 查看分支历史:
git log --graph --pretty=oneline --abbrev-commit
6.BUG 分支
Git还提供了一个
stash
功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash
接下去就可以进行 Bug 分支处理
git checkout master
git checkout -b issue-101
git add.../git commit
git checkout master
git merge --no-ff -m "" issue-101
git branch -d issue-101
最后切换回 dev 工作目录
git checkout dev
查看 stash list
git stash list
stash@{0}: WIP on dev: 6224937 add merge
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;
另一种方式是用git stash pop
,恢复的同时把stash内容也删了
你可以多次stash,恢复的时候,先用
git stash list
查看,然后恢复指定的stash,用命令:
git stash apply stash@{0}
7. Feature 分支
新功能分支,如果顺利并且上线,那么就合并到 master,如果不需要就删除该分支
git branch -d feature-vulcan
强制删除
git branch -D feature-vulcan
8.多人协作
查看远程库的信息
git remote (-v)
但是,并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?
-
master
分支是主分支,因此要时刻与远程同步; -
dev
分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步; -
bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
-
feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
解决冲突:
git branch --set-upstream dev origin/dev
git pull
解决冲突后再提交
git add /git commit
git push origin dev