项目开发时很难一条主线走到底,必不可免的要建立分支。修改Bug或添加新特性时修改的未加验证的代码直接提交到主分支,绝对会让和你一块儿工做的小伙伴们崩溃,这时候建立分支就很必要了。git
在Git中建立分支的成本很低,并且支持本地分支,在本地分支上开发对其余小伙伴基本没有影响。blog
git branch是常规的分支管理命令。开发
首先建立一个git库,it
mkdir mygit cd mygit git init
建立了mygit文件夹,进入文件夹后,建立git库。ast
增长readme文件,class
echo "hello, my git." > readme.txt
提交,test
git add readme.txt git commit -m "init and add readme.txt"
使用git status,看一下当前库的状态,bug
$ git status On branch master nothing to commit, working directory clean
只有一个分支(branch)master,使用git branch命令查看,也是如此,项目
$ git branch -av #增长-av参数,输入全部分支的详细信息 * master 0e9691a init and add readme.txt
增长一个新的分支my_branch1,di
git branch my_branch1
切换到新分支,
git checkout my_branch1
修改readme.txt文件,
$ cat > readme.txt << EOF > hello, my git. > Git is very useful! > EOF
提交,
git add . git commit -m "test branch modify"
查看readme.txt文件,
$ cat readme.txt hello, my git. Git is very useful!
切换到master分支,
git checkout master
查看readme.txt文件,
$ cat readme.txt hello, my git.
从my_branch1分支切换到master分支后,readme.txt文件也被替换了。
将my_branch1分支下的修改合并到master分支,
git merge my_branch1
查看readme.txt文件,
$ cat readme.txt hello, my git. Git is very useful!
已经将my_branch1分支的修改合并到了master中,如今删除my_branch1分支,
$ git branch -d my_branch1 Deleted branch my_branch1 (was a937765).
在git中建立分支,基本没有什么成本,在修改bug或者添加新功能时,咱们能够尽情的建立分支修改。
多我的合做时,合并分支常常遇到冲突的状况,咱们来模拟一下,
建立分支my_branch2,
git branch my_branch2
切换到my_branch2分支,修改readme.txt文件,在其后追加,
git checkout my_branch2
echo "Git is very great." >> readme.txt
提交,
git add readme.txt git commit -m "test branch merge conflict"
切换到master分支,修改readme.txt文件,并提交,
git checkout master echo "git is great." >> readme.txt git add readme.txt git commit -m "test branch merge conflict"
合并my_branch2分支,
$ git merge my_branch2 Auto-merging readme.txt CONFLICT (content): Merge conflict in readme.txt Automatic merge failed; fix conflicts and then commit the result.
产生冲突了。
查看readme.txt文件,
$ cat readme.txt hello, my git. Git is very useful! <<<<<<< HEAD git is great. ======= Git is very great. >>>>>>> my_branch2
<<<<<<< HEAD与=======之间是master分支代码,=======与>>>>>>> my_branch2之间是my_branch2分支代码,咱们但愿保留my_branch2分支修改的代码,编辑readme.txt文件以下:
hello, my git. Git is very useful! Git is very great.
提交,
git add readme.txt git commit -m "test branch merge conflict"