【问题标题】:How to manage a code merges on git with multiple users?如何管理多个用户在 git 上的代码合并?
【发布时间】:2014-11-01 07:57:21
【问题描述】:

Git 不会让任何人推送有合并冲突的分支。在我们目前的情况下,大约有 15 个冲突文件,其中一些是我的代码,一些是其他人的代码。最好是每个更改代码的人都对这些特定文件执行合并。 我们如何处理自己的文件来完成合并?

Unmerged paths:
    both modified:   foo.py        # This I should fix
    both modified:   bar.py        # This Jeff Atwood should fix
    both added:      bin/baz.py    # This Joel Spolsky should fix 
    both added:      bin/buzz.py   # This I should fix

除了让我们都坐在同一台计算机上,甚至通过 Tmux 坐在同一个终端上,每个人如何对他负责的文件执行合并?我对 bar.py 一无所知,而 Jeff 对于 foo.py 的工作原理一无所知。

【问题讨论】:

    标签: git merge conflict


    【解决方案1】:

    This gist 确实,我相信,你想要什么。基本上,你与--no-ff --no-commit 合并,解决冲突,然后reset head 取消添加合并的东西,然后add 只添加你想要的东西。

    【讨论】:

    • 谢谢可能有用,谢谢。底部有一条注释,显示了每个开发人员如何只合并他打算解决冲突的文件。这可能比要点的内容更可取。
    • 如果您的意思是git checkout mergeFrom list of files to move,那将用他的内容替换您的内容,而不进行合并。
    • 我希望每个用户能够只合并他要处理的文件,一旦需要合并的文件列表建立(git merge somebranchgit merge --abort);
    • 是的,只合并他要处理的那些文件是完全正确的。只需为每个文件运行git mergetool myFileXgit add myFileX。诀窍是防止git merge 自动提交所有文件,并取消暂存以防止提交您不想合并的文件。
    【解决方案2】:

    这里有一个解决冲突的工具,在解决冲突后,您可以合并该特定文件。 使用命令"git mergetool" 查找文件之间的差异并选择保留哪一个。这是git-mergetool 的文档。

    解决所有冲突后,您可以合并分支。

    【讨论】:

    • 谢谢山姆怀斯。合并工具将帮助我合并我负责的文件(foo.py、bin/buzz.py)。但是,它不允许我推送未合并的文件(bar.py、bin/baz.py),我无法合并这些文件。
    • 他不想解决所有冲突,只想解决foo.pybin/buzz.py 上的冲突。
    • 这个答案是题外话,因为它没有解决 OP 对不知道如何解决其他开发人员编码的文件中的冲突的担忧......
    • 没有工具可以决定保留哪些代码,删除哪些代码,这需要手动完成,之后您可以合并整个分支。您可以做的是让您的朋友解决他们的冲突,要求他们提交到您正在工作的同一分支,然后进行更新,然后您可以合并该分支。
    猜你喜欢
    • 2021-08-19
    • 2017-09-29
    • 2010-12-02
    • 1970-01-01
    • 2021-12-22
    • 2022-01-15
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    相关资源
    最近更新 更多