分支——Git使用(二)

项目开发时很难一条主线走到底,必不可免的要创建分支。修改Bug或添加新特性时修改的未加验证的代码直接提交到主分支,绝对会让和你一起工作的小伙伴们崩溃,这时候创建分支就很必要了。

在Git中创建分支的成本很低,而且支持本地分支,在本地分支上开发对其他小伙伴基本没有影响。

git branch是常规的分支管理命令。

首先创建一个git库,

mkdir mygit
cd mygit
git init

创建了mygit文件夹,进入文件夹后,创建git库。

增加readme文件,

echo "hello, my git." > readme.txt

提交,

git add readme.txt
git commit -m "init and add readme.txt"

使用git status,看一下当前库的状态,

$ 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,

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"

转载于:https://my.oschina.net/u/1052241/blog/209634

你可能感兴趣的:(git)