2

Master HEAD 有一些更改,我正在尝试将我当前的本地更改与 Head 合并。
假设我有冲突的更改。git只是拒绝pull

它说我有冲突的更改,所以在这种情况下,我希望它告诉我有冲突的文件,但它希望我恢复我的本地更改然后拉

     Master 
     /    \
  branch1  branch2 (local)
      \
   Master 

当 branch2 尝试向 master 提交更改时失败。在这种情况下我该怎么办?手动将文件复制到某个位置,拉然后使用 winmerge 合并文件?还是有更好的合并方式?

当我执行 agit pull时,它声明 - 本地更改将被覆盖,因此在拉取之前存储或提交更改。

当我stashcommit更改,然后pull stash pop失败说明工作副本中的更改将被覆盖。

顺便说一句,在任何一种情况下,我都没有看到有冲突的文件,即使我尝试了变基。

4

2 回答 2

3

这个问题的答案隐藏在文档中的普通视图中。来自git help merge


如何解决冲突

看到冲突后,您可以做两件事:

  • 决定不合并。您需要的唯一清理是将索引文件重置为 HEAD 提交以反转 2. 并清理 2. 和 3. 所做的工作树更改;git merge --abort可用于此。

  • 解决冲突。Git 将标记工作树中的冲突。将文件编辑成形状并将git add它们编辑到索引中。用来敲定git commit交易。

您可以使用多种工具解决冲突:

  • 使用合并工具。 git mergetool启动图形合并工具,它将帮助您完成合并。

  • 看看差异。 git diff将显示三向差异,突出显示 HEAD 和 MERGE_HEAD 版本的更改。

  • 查看每个分支的差异。 git log --merge -p <path>将首先显示 HEAD 版本的差异,然后是 MERGE_HEAD 版本。

  • 看看原件。 git show :1:filename显示共同祖先,git show :2:filename显示 HEAD 版本,并git show :3:filename显示 MERGE_HEAD 版本。

于 2012-08-24T19:50:43.083 回答
1

看起来使用 GIT 的最佳方式是拥有分支。

分支 1
GIT Commit
GIT PUSH
GIT MERGE master(获取更新的更改)

分支 2
GIT 提交
GIT PUSH


GIT 合并分支 1
GIT 合并分支 2

我不认为有任何其他方式。如果我错了,请纠正我?

这是正确的吗?如果是的话,在这种情况下使用分支很顺利!

于 2012-08-25T09:33:04.200 回答