如何使用Git Bash合并“ git stash pop”冲突?

时间:2019-06-20 08:45:16

标签: git git-bash

我有一个foo.cpp文件。在master分支上有一个修改,

merge conflict test, make a master modification.

在同一行的分支br1上还有另一个修改,

merge conflict test, make a local modification and will stash it.

现在,我在br1上并存储本地修改,然后重新建立master分支的基础。

git rebase origin/master

然后我git stash pop进行本地修改,在这里得到了冲突,

<<<<<<< Updated upstream
merge conflict test, make a master modification.
=======
merge conflict test, make a local modification and will stash it.
>>>>>>> Stashed changes

这是问题所在。在Visual Studio上工作时,我知道可以在VS GUI中单击“合并”按钮来编辑冲突。之后,我可以git --continue经历这场冲突。

但是在当前情况下,我没有VS。我不怎么编辑冲突的命令。我可以在记事本中对其进行编辑,因为冲突很简单,但是我不知道如何将其标记为已解决。

1 个答案:

答案 0 :(得分:1)

弹出存储区后,可以运行git status以获取有关可以执行的某些操作的信息。解决冲突后,您可以添加文件以将冲突标记为已解决:

$ git checkout master
$ <make changes to file>
$ git add file
$ git commit -m "on master, make some changes to file"
$ git checkout -b b1 HEAD~
$ <make local changes to file>
$ git stash
$ git rebase master
$ git status
  On branch b1
  Unmerged paths:
     (use "git reset HEAD <file>..." to unstage)
     (use "git add <file>..." to mark resolution)

           both modified:   file

  no changes added to commit (use "git add" and/or "git commit -a")
$ <edit file to resolve conflicts>
$ git add file
$ git reset

git reset将取消暂存对该文件所做的所有更改。不必解决冲突,但是它将使您回到与隐藏和重新设置基准之前相似的状态。