我有一个巨大的提交,我选择了。挑选现在会产生一系列冲突(在工作树中)。 现在我想提交所有暂存(成功合并)的更改,而不必解决所有冲突。
天真我一直认为,提交只会在舞台上发挥作用,但是当我尝试时,我得到的信息是,如果不解决冲突我就无法提交。
有人可以向我解释发生了什么以及如何解决它。
答案 0 :(得分:0)
您必须解决冲突,因为只有当git无法自动合并分支时才会发生冲突。它们主要发生在2个单独的提交中修改同一行时。
示例强>
主分支:
L1. git
L2. is
L3. awesome
分支A和B从主分支
分支出来提交x应用于分支A
L1. git
L2. is not
L3. awesome
DIFF
git
-is
+is not
awesome
提交y应用于分支B
L1. git
L2. isn't
L3. awesome
DIFF
git
-is
+isn't
awesome
当您合并分支A 并尝试将分支B 之后合并到master中时,git无法决定为L2添加什么。在解决冲突的同时,你必须做出决定。
如何解决冲突
最简单的解决方法是选择要保留的文件版本。
选择当前分支(HEAD)上的文件版本
git checkout --ours <filename>
选择另一个分支上的文件版本(您从中拉出/摘取的分支。可能是远程分支):
git checkout --theirs <filename>
或者您可以逐个编辑文件并删除冲突标记(<<<<<<<
,=======
,>>>>>>>
)并选择要使用的版本
之后您需要通过执行以下操作将其标记为已解决:
git add <filename>
提示:您可以使用.
作为文件名来选择当前目录下的所有文件。