我试图合并两个分支,这就是我所做的和发生的事情:
Abdulla (Master) new-git-project1
$ git merge sidebar
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
Abdulla (Master *+|MERGING) new-git-project1
$ git merge sidebar
error: Merging is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
Run Code Online (Sandbox Code Playgroud)
我是新手,所以我能得到简单的答案。
jsa*_*ryd 10
您遇到了合并冲突。这意味着 Git 无法自动确定如何合并两个分支。Git 要求您手动进行合并,并在此过程中为您提供一些帮助,告诉您它无法自动合并哪些文件,以及这些文件中的哪些更改有问题。
运行git status。它将输出未合并文件的列表。这些文件将包含类似于以下内容的冲突标记:
foo
<<<<<<< HEAD
BAR
=======
bar baz
>>>>>>> foo
qux
Run Code Online (Sandbox Code Playgroud)
这意味着HEAD(或者,您当前所在的提交或分支)已将一行更改为BAR,并且分支foo已将同一行更改为bar baz。
根据您的喜好编辑这些冲突中的每一个,确保您没有剩余的冲突标记。例如,如果您更喜欢BAR上面示例中的版本,您只需编辑文件,使其看起来像:
foo
BAR
qux
Run Code Online (Sandbox Code Playgroud)
保存每个文件并随时添加。
# (edit <file>)
git add <file>
Run Code Online (Sandbox Code Playgroud)
有一些工具可以为您完成文件编辑部分,有些人发现它们比手动编辑文件更容易使用。
完成后,运行git status以确保没有更多未合并的文件。然后,git commit如果您对结果满意,请运行以完成合并。
Git - Basic Branching and Merging提供了有关合并冲突的更多信息。
解决此问题的一种不同且通常* 更明智的方法是首先将另一个分支(在本例中sidebar)重新设置在您将其合并到的分支之上(在本例中为master):
git checkout sidebar
git rebase master
Run Code Online (Sandbox Code Playgroud)
您可能仍然会遇到冲突,但有时在此处修复它们会更容易。过程与上述相同,编辑文件,添加它们,提交。完成后,运行git rebase --continue以继续 rebase 过程。
然后,最后你可以在没有冲突的情况下合并分支:
git checkout master
git merge --no-ff sidebar
Run Code Online (Sandbox Code Playgroud)
该--no-ff是可选的; 有了它你会得到一个合并提交来表示你合并了一个分支,没有它你的历史将是线性的,没有合并提交。
在合并之前重新设置基准的一个好处是在实际合并中永远不会有合并冲突,这意味着合并提交永远不会引入除了被合并分支中的提交已经引入的更改之外的更改。这使历史更容易理解。
变基的一个缺点是提交应用在代码的新状态之上。这意味着您需要检查每个提交以查看它仍然做正确的事情。花一点时间这样做是一个好主意,以避免将来出现意外。
* 在重新调整具有合并的分支时避免或至少要小心。Rebase 吃合并。避免改变他人的提交也是一个好主意。更改的作者通常是最了解如何正确解决任何合并冲突的人,因此如果可能,最好委托解决冲突。
小智 1
此消息意味着两个分支上的 index.html 发生了一些不完全相同的更改。所以存在合并冲突。因此,您必须使用像 meld 这样的合并工具来解决这些冲突。在这里,您必须决定必须在此分支上保留哪些更改。解决这些冲突后,您必须提交本地更改,然后将其推送到远程 git 存储库。您可以参考下面的链接来解决冲突。 https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/
| 归档时间: |
|
| 查看次数: |
23508 次 |
| 最近记录: |