在Git中提交前解决冲突

3
我从SVN转到Git。在SVN中,当两个开发人员同时更改同一文件(来自同一文件版本)时,最后提交的人将得到一个冲突标记,在提交其更改之前解决冲突。在Git中,通常的做法是最后提交/推送的人解决冲突并生成第三个提交,然后推送原始和合并提交。
是否可以在SVN风格下,在进行本地提交之前合并服务器更改,然后进行单个提交(不带冲突)?为简化起见,假设两个开发人员都使用主分支的本地副本而非其他分支。
我知道这是一个重复的话题,但大多数人没有理解重点。
3个回答

5
如果你执行git pull --rebase,那么你可以解决冲突,并使用你的新更改只做一个提交。这样你就不会有原始提交和合并两个提交:只有一个更新后的提交,它解决了冲突,并包含了所有新代码。

嘿,我不知道那个选项的存在。但是没错,我本来要说的是我喜欢先执行git pull命令,然后在本地进行rebase操作,最后再push上去。 - Edward Falk

0

是的,这是可能的。第二个提交者可以拉取更改并将其合并为原始提交的一部分,但实际上没有必要这样做。您可以在git中重做任何提交所包含的更改。事实上,使用cherry-picking,您可以根据需要合并和拆分提交。


0

Git 解决冲突: 保存其他分支的文件:

$ git checkout --theirs /path/to/file_with_conflicts

保存当前分支的文件:

$ git checkout --ours /path/to/file

记得提交更改


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