我正在将我的文件合并到远程仓库。
当我推动它时,我会遇到合并冲突。奇怪的是,这些都是我从未在我的分支中触及的所有文件(但这可能是另一篇文章)。
我git checkout --theirs
到所有这些文件。
然后我git commit
。
但我不确定接下来该做什么。
如果我git push
我只是在同一个文件中遇到另一个合并错误。
git merge --continue
对我的git版本不起作用。
有人知道我接下来要做什么吗?
答案 0 :(得分:3)
@ sajib-khan在你的案例的教科书程序中是正确的 但我觉得这里还有更多。
首先,请注意在Git中,不可能发生 merge 冲突 on push。唯一可能阻止这段历史的案例 你试图更新一个远程分支这样做是你的事实 历史记录不完全包含该远程分支的当前历史记录¹。 换句话说,如果您打算更新的分支结束 这个提交序列
…→C→D→E
你无法用最终的历史记录更新它,如
…→C→D→X→Y→Z
因为您的文章只包含C
和D
,但不包含E
。
推
…→C→D→E→X→Y→Z
反而会很好。
所以可能你的问题很简单,就在你忙的时候 合并某人已设法通过更多提交更新远程分支 你自然需要再次将你的工作与远程工作相协调。
让我再次强调一下:Git 从不远程合并 - 它只会更新 分支和标签与发送的内容。这样做时,它确保了何时 一个分支更新,它“添加”更新 - 也就是说, 新的更改只会附加到一系列提交中 目前由分支机构指出即将更新。
第二,“怪异”的情况,你只有“非你的”文件被标记为
在冲突中可能表明你正面临着EOL的混乱:比如说,有人
将唯一LF
s(Unix样式的行尾标记)更改为CR+LF
个序列
(Windows EOL标记)并承诺改变;对你来说这看起来像
整个文件冲突,因为当然,这些文件中的每一行都是
改变。因此,我试着调查是否确实如此。
第三,请不要考虑使用共享远程存储库 作为一些战斗你无论如何都必须赢。如果你有一个神秘的冲突, 就像你一样,停下来调查。
从git fetch
开始,然后检查已出现的提交
在远程分支上,因为它和你的本地分支
分歧。比如说,如果我们谈论“主人”,那就
git log origin/master ^master
这意味着«告诉我刚出现的“主”分支是什么 “原产地”回购不在我当地的“主”分支上»。 看看那些提交有什么变化。
如果你无法理解冲突的原因,那就找到谁 收回该回购或其承载的项目并将此问题提交给他们 寻求解决方案。
试图避开问题会导致像those这样的案件对每个人都不利。
¹好吧,除了自定义存储库挂钩,它们是运行的程序 由Git在数据交换的特定点,可用于验证传入 如果需要,以任何方式处理数据并使正在进行的推送操作失败。