【问题标题】:What are the circumstances when an overwrite happens in a git merge, instead of a conflict?在 git 合并中发生覆盖而不是冲突的情况是什么?
【发布时间】:2018-09-17 14:10:56
【问题描述】:

我注意到有时代码会因我们团队之间的合并而被覆盖,我不能 100% 确定最好的方法不会发生这种情况。

一个例子是我们有master,还有一些分支a。我很好奇将a 合并到master 和将master 合并到a 之间的区别,当它覆盖某些内容时,让我们知道存在冲突。

我也想知道最好的方法是什么,我知道我们可以 git stash/apply,但是如果分支已经提交了更改怎么办。我对 rebase 进行了一些研究,但一切都表明 rebase 可能很危险。

【问题讨论】:

  • 当你将一个分支合并到另一个分支时,如果双方修改了同一个文件,就会出现合并冲突。那么你想做什么,通过保留一侧版本或使用 stash、rebase 等来替换 git merge 来解决冲突?

标签: git merge version-control rebase


【解决方案1】:

我知道我们可以 git stash/apply,但是如果分支已经提交了更改怎么办。我对 rebase 进行了一些研究,但一切都表明 rebase 可能很危险。

stash 和 rebase 都使用与合并相同的合并后端,因此如果在合并期间发生任何事情,则可能在该操作期间发生

但是,合并保留了“真实”的历史记录,因此如果出现错误,您可以返回合并点并分析问题所在。据我所知,合并不应该自行完成。所以除非有具体的例子,否则没什么好说的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    相关资源
    最近更新 更多