分支——Git使用(二)

项目开发时很难一条主线走到底,必不可免的要建立分支。修改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"
相关文章
相关标签/搜索