git - merge 分支时如何防止更改被覆盖?

标签 git version-control merge branching-and-merging

我是 Git 新手(来自 Subversion 和 Bazaar)。

当我在一个分支上工作并进行提交时,从那时起,master 已经进行了一些提交,当我将我的分支 merge 到 master 中时,我发现了一些奇怪的情况:

  • 在我的提交和主控的提交中,我们都创建了具有相同路径的新文件。它决定用我的文件完全覆盖主文件,而不发出冲突警告!
  • 在两个分支中都已修改的预先存在的文件向我显示了冲突警告,并且为某些部分添加了内联注释,但对于其他部分,它实际上会在没有警告的情况下覆盖。<

我可以告诉 Git 对这些冲突更加严格吗?我不希望它在没有警告的情况下覆盖文件,如果它要评论文件供我检查,我希望它提供总差异的绝对评论。

如果没有,我就被迫确定自己修改过的文件,然后手动 merge 它们。

最佳答案

当我尝试第一个场景时,我得到以下输出:

Auto-merging conflicted
CONFLICT (add/add): Merge conflict in <filename>

您的第二种情况将在两个版本之间不同的行上产生冲突,但不会在仅在一个版本或另一个版本中更改的行上产生冲突。这是预期的行为。

Git 实际上比大多数其他 VCS 更好地处理此类冲突。您的流程中还有其他一些问题导致了问题。也许您有一些罕见的配置设置。也许您误解了在其中一个命令上使用的标志的含义。也许某些文件实际上尚未提交到您或您同事的工作目录中。也许你所在的分支与你想象的不同。找到一个准确的、可重现的、不符合您预期的命令序列,我们可以尝试从那里为您提供帮助。

关于git - merge 分支时如何防止更改被覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10214754/

相关文章:

Git 推送错误 '[remote rejected] master -> master (branch is currently checked out)'

git - 如何基于现有的 Github 分支创建新分支? (请阅读 - 试过初学者指南)

git - 如何从 git push -f 中恢复?

version-control - AWS Glue ETL 作业中是否可以进行版本控制?

python - 事后清理存储在源存储库中的 virtualenv 中的 .pyc 文件吗?

使用重命名文件的 Git rebase

list - 如何制作尾递归函数

python - 合并数据帧而不复制 python pandas 中的行

git - 本地 Git 存储库中的 Zeppelin Notebook 存储

svn - 具有 SVN 支持的 Mercurial 客户端 Windows