Git rebase(如果没有冲突)否则 Git 合并。

3
当我的分支与主分支没有冲突时,我更喜欢使用git rebase,因为它可以保持简单的历史记录。
但是当存在冲突时,有时候rebase会让我为每个远程提交解决冲突,这增加了工作量。而且,如果存在冲突,则冲突解决可能会引入新的错误,因此在这种情况下,我更喜欢使用merge,它可以清楚地记录我开始编码的位置、做了什么以及如何解决冲突。
所以我会继续执行:
git fetch -> git rebase 

另外,如果有任何冲突:

git rebase --abort
git merge

我发现自己每天要做这件事好几次。有没有内置的方法可以实现这个功能?还是我应该创建一个git别名?

1个回答

5

我更喜欢手动检查传入的提交,然后再决定是使用rebase还是merge。但 实际上可以通过自动化来实现,使用git rebase命令完成rebase将以零(成功)状态退出,如果未完成,则以非零(失败)状态退出。因此,您可以编写一个小型shell脚本或适用作shell别名的单行命令:

git fetch && { git rebase || { git rebase --abort && git merge; } }

该命令要求运行git fetch,如果成功,则运行括号中的一系列命令:

  • git rebase,如果成功,则不执行其他操作;或者

    • git rebase --abort,如果成功,则执行git merge

(内部花括号实际上并不需要,因为&&在sh和bash中绑得更紧密。这里更多是为了表达意图的清晰。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接