0


【git】git解决冲突

git解决冲突

1.概述

  • git解决冲突有两种办法: 1. rebase2. merge
  • 先说结论,解决冲突时尽量使用rebase。原因是因为rebase可以使得提交历史更加清晰,代码更加健壮。
  • rebase与merge的区别: 1. rebase:重定义起点,相当于将冲突分支整体“迁移”至另一分支上。2. merge:聚合分支,将冲突分支和另一分支“聚合”合并至新节点上。在这里插入图片描述 (图片出处见参考)

2.rebase使用

  • 背景:分支diverge之后,直接git push会失败(类似于上图)。此时需要合并分支解决冲突。
  • 使用: 1. git pull --rebase:down代码到本地。重定位到没有冲突的节点;本地此节点之后的commit代码都被暂时取消。2. 解决冲突。发生冲突的文件会被红色感叹号标记;发送冲突的代码会用>>、==、<<符号记录。通过删除冲突代码解决冲突。3. 提交文件。git add 修改冲突后的文件。4. 继续rebase。git rebase --continue。合并分支的节点继续前移,直到下一个冲突节点,然后重复2、3步骤继续解决冲突,直到解决所有冲突。5. 完成rebase。解决所有冲突后,被暂时取消commit的代码将自动重新恢复conmmit状态。6. git push。重新提交代码。
  • 解决冲突示例: 以下为例,上半部分是master分支的修改,下半部分是develop分支的修改,删除develop部分,保留上半部分即可。
<<<<<<<<<<<<<< Head
This is master.
==========
This is develop.
>>>>>>>>>>>>> Develop

3.rebase相关命令

  • git rebase --continue:继续解决冲突。
  • git rebase --skip:跳过这一次的本地的有冲突的commit。
  • git rebase --abort:放弃rebase,恢复到之前状态。
  • git stash:将当前暂存或未暂存(没有commit)的代码储藏起来。
  • git stash pop:将储藏的代码释放。

4.参考

参考1:git merge和git rebase的区别, 切记:永远用rebase
参考2:git的冲突解决–git rebase之abort、continue、skip

标签: git github

本文转载自: https://blog.csdn.net/fantasty9413/article/details/126728899
版权归原作者 fantasty9413 所有, 如有侵权,请联系我们删除。

“【git】git解决冲突”的评论:

还没有评论