前言:文章内容全部截选自实验楼课程【Git 实战教程】,更多Git 使用介绍,上实验楼学习该教程即可~

git切换分支_git切换分支_git切换分支

一、分支合并

Git的分支可以让你在主线(分支)之外进行代码提交,同时又不会影响代码库主线。

分支的作用体现在多人协作开发中,比如一个团队开发软件,你负责独立的一个功能需要一个月的时间来完成,你就可以创建一个分支,只把该功能的代码提交到这个分支,而其他同事仍然可以继续使用主线开发,你每天的提交不会对他们造成任何影响。当你完成功能后,测试通过再把你的功能分支合并到主线。

1.分支

一个Git仓库可以维护很多开发分支。现在我们来创建一个新的叫 的分支:

$ git branch experimental

运行git 命令可以查看当前的分支列表,已经目前的开发环境处在哪个分支上:

$ git branch experimental* master

分支是你刚才创建的,分支是Git系统默认创建的主分支。星号标识了你当工作在哪个分支下,输入git 分支名可以切换到其他分支:

$ git checkout experimentalSwitched to branch 'experimental'

切换到分支,切换完成后,先编辑里面的一个文件,再提交()改动,最后切换回 “”分支:

# 修改文件file1
$ echo "update" >> file1
# 查看当前状态
$ git status
# 添加并提交file1的修改
$ git add file1
$ git commit -m "update file1"
# 查看file1的内容
$ cat file1
test
update
# 切换到master分支
$ git checkout master

查看下file1中的内容会发现刚才做的修改已经看不到了。因为刚才的修改时在分支下,现在切换回了分支,目录下的文件都是分支上的文件了。

现在可以在分支下再作一些不同的修改:

# 修改文件file2
$ echo "update again" >> file2
# 查看当前状态
$ git status
# 添加并提交file2的修改
$ git add file2
$ git commit -m "update file2 on master"
# 查看file2的内容
$ cat file2
test
update again

这时,两个分支就有了各自不同的修改,分支的内容都已经不同,如何将多个分支进行合并呢?

2.合并

可以通过下面的git merge命令来合并到主线分支:

# 切换到master分支
$ git checkout master
# 将experimental分支合并到master
$ git merge -m 'merge experimental branch' experimental

-m参数仍然是需要填写合并的注释信息。

由于两个修改了两个不同的文件,所以合并时不会有冲突,执行上面的命令后合并就完成了。

如果有冲突,比如两个分支都改了一个文件file3,则合并时会失败。首先我们在分支上修改file3文件并提交:

# 切换到master分支
$ git checkout master
# 修改file3文件
$ echo "master: update file3" >> file3
# 提交到master分支
$ git commit -a -m 'update file3 on master'

然后切换到,修改file3并提交:

# 切换到experimental分支
$ git checkout experimental
# 修改file3文件
$ echo "experimental: update file3" >> file3
# 提交到master分支
$ git commit -a -m 'update file3 on experimental'

切换到进行合并:

$ git checkout master
$ git merge experimental
Auto-merging file3
CONFLICT (content): Merge conflict in file3
Automatic merge failed; fix conflicts and then commit the result.

合并失败后先用git 查看状态,会发现file3显示为both ,查看file3内容会发现:

$ cat file3
test
<<<<<<>>>>>> experimental

上面的内容也可以使用git diff查看,先前已经提到git diff不加参数可以显示未提交到缓存区中的修改内容。

可以看到冲突的内容都被添加到了file3中,我们使用vim编辑这个文件,去掉git自动产生标志冲突的

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666

声明:1、本内容转载于网络,版权归原作者所有!2、本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。3、本内容若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!