【问题标题】:How do I undo a git pull from another branch and resolve merge conflict?如何撤消另一个分支的 git pull 并解决合并冲突?
【发布时间】:2021-04-02 09:49:39
【问题描述】:

在 Visual Studio 2019 中,我正在处理名为“feature/ABC-subpage-edits”的本地存储库分支,该分支是从具有最新更改的远程存储库“master”分支中提取的。我对至少 4 个文件进行了更改(我们称它们为 subpage1.html、subpage2.html、subpage3.html、subpage4.html)。在我提交、暂存并将我的更改推送到 BitBucket 并向“开发”分支(QA 站点)发出请求批准后...subpage3.html 出现了需要解决的合并冲突。

Bitbucket 发出以下警告: 无法合并此拉取请求。 您需要解决冲突才能进行合并。更多信息。

我点击“更多信息”并告诉我这样做:

第 1 步:签出源分支并合并来自目标分支的更改。解决冲突。

git checkout feature/ABC-subpage-edits
git pull origin Development

第 2 步:解决合并冲突后,相应地暂存更改,提交更改并推送。

git commit
git push origin HEAD

第 3 步:合并更新的拉取请求。

我确实做到了:

git checkout feature/ABC-subpage-edits
git pull origin Development

我使用 Visual Studio 2019 中的合并冲突编辑器进入文件“subpage3.html”以修复合并冲突,然后单击接受合并以完成更改。

但问题是,当我进行“git pull origin Development”时,它会将一大堆其他修改过的文件作为分阶段更改放入我的本地存储库中来自“Development”分支的现在在我的本地 repo 分支“feature/ABC-subpage-edits”中。

我想知道如何撤消“git pull origin Development”命令并将我的本地 repo 分支返回到之前的状态,只需要我的更改?有没有办法回溯这种变化?

如何正确修复“subpage3.html”中的合并冲突,而不从开发分支中拉出所有其他更改,只需修复一个存在冲突的文件并将该更改提交到拉取请求?

【问题讨论】:

  • 不要使用 pull,使用 git fetch 然后在进行合并或变基或其他操作之前检查您从源获得的内容

标签: git repository bitbucket pull undo


【解决方案1】:

git reset 是你的朋友

git reset --keep HEAD@{1}

【讨论】:

  • 如果我正确理解了这个命令,这会将我的本地分支重置为我在拉取请求中与之冲突的上一个提交(只有我的更改),对吧?我执行了此命令并执行了 git status 并且 Development 分支更改仍然在我的本地 repo 分支中,与以前相同。我不确定这个命令做了什么。我该如何摆脱这些?
【解决方案2】:

如果我的理解正确,取决于你处理事情的方式,我看到两个选项:

  1. 我建议你先检查Development clean。然后通过合并或变基将您的更改应用到feature/ABC-subpage-edits。
  2. 既然您从master 分支出来,您应该将它合并回master。然后将新更改应用到单独的分支。
master -- Development
   |
   |----- feature/ABC-subpage-edits

选项 2 是我的建议

【讨论】:

    猜你喜欢
    • 2018-08-04
    • 1970-01-01
    • 2018-06-27
    • 2011-08-10
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    相关资源
    最近更新 更多