您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页版本控制系统Git进阶(二)

版本控制系统Git进阶(二)

来源:二三娱乐
上一篇

产生冲突

  • 创建分支featureA与分支featureB(注:还不懂怎么创建分支的请查看),然后使用git branch查看分支列表。
  • 使用命令git checkout featureA切换到featureA,并在git.txt 添加“add featureA”,然后commit 在此分支上。
  • 切换到主干分支master,并且使用git merge featureA,把featureA分支合并到master分支上。

    解析:上图 1 + 表示有git.txt 有一行添加进来。使用cat git.txt可以查看添加的内容,此处就不截图。
  • 切换到分支featureB上,使用命令cat git.txt查看git.txt的内容,此时是空的,在git.txt上第一行添加内容add featureB,再commit到分支上。
  • 切换到主分支master上,合并分支到featureB,看看提示。


解析:提示有冲突。打开git.txt看看有什么内容。


解析下,=======以上部分是当前HEAD的内容,一下部分是featureB的内容。我们理想的状态是这样

但是,为什么会那样?回想下,在分支featureA上添加内容到git.txt上时,是在第一行上添加的,而在分支featureB上添加内容到git.txt也是在第一行上的,合并的时候,出错了,第二次合并的时候,发现第一行有内容了,那么在fetureB的内容该放在哪里并不知道。此时应该解决冲突,手动去解决。

解决冲突

解决冲突很简单,打开git.txt编辑好后直接提交到master分支。使用git status查看冲突解决了。

删除分支

featureA分支与featureB分支做的功能已经完成,并且也合并到主分支中,那么就应该删除这两个分支,这是个良好的习惯,使用命令git branch -d <name>

压缩历史 git rebase -i

在合并特性分支之前,如果发现已提交的内容中有些许拼写错误等,不妨提交一个修改,然后将这个修改包含到前一个提交之中,压缩成一个历史记录。

  • 创建一个分支featureC



    作为featureC分支的功能实现,在git.txt,添加一行文字并且故意是写错的。


其实应该写“add featureC”,故意写错成featuuuC,然后使用命令git commit -am "add featureC"提交到分支上。

注意:此刻我是直接使用git commit -am,代替了 先add ,再commit。

  • 修改拼写错误
    修改刚刚的featuuuC为featureC,然后使用git diff,查看修改后的差别

然后提交。


  • 更改历史
    实际上,你可能不需要在历史记录中看到这两天记录,因为你提早发现了错误,并作出改正,所以可以把这两次提交的记录压缩成一次。使用命令git rebase - i HEAD~2进入到编辑器中。

接下来,将ec1a087 fix这条历史记录压缩到83e04a0这条记录中,只需要将ec1a087 fix 左侧的pick改为fixup,然后保存退出。

分支featureC的功能完成,这时候也应该删除了。

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务