如何在git中前往最新的远程/主分支提交记录?

3
我无意中把一个文件保存到了错误的分支上。然后我执行了 git reset --soft HEAD^,现在 git status 显示我落后了14个提交版本,并列出了一堆被修改且用红色标记的文件,还包括一些未跟踪的文件。
我不知道该怎么办。我试图去到远程仓库的最新提交版本,但在执行 git pull 后它说我的本地更改将被覆盖。
请帮忙。我不想让我的本地仓库变得更糟糕。我只想回到之前的状态,将编辑过的文件保存到正确的分支上并提交。

也许这个 -> https://dev59.com/Zm455IYBdhLWcg3wAvRI? - Gohn67
2个回答

3
如果您已更改本地分支,并且不想丢失任何更改,可以使用git-stash在尝试之前,建议您备份本地存储库。请按照以下步骤操作:
  1. git stash save 'local changes'。这将把您的本地更改保存在临时位置,并让您在当前分支上工作,而没有这些先前的更改。

  2. git pull <remote-name> <branch-name>。正如您已经知道的那样,它将从远程分支检索更新的提交,并应用于您的本地分支。

  3. git stash pop。这将恢复您在步骤1中所做的事情。它将对本地分支应用您以前保存的更改。如果发生任何冲突,您需要解决它们。完成后,您可能需要提交和推送-这取决于您。


1

不要惊慌

  1. 备份你的代码库。

  2. 使用git stash save命令来将你的更改存储到stash

  3. 然后,从远程分支中pull下来:git pull <remote> <wrong-branch>。这将使你的工作副本恢复到原始的分支HEAD状态。也就是说,这个分支在你开始修改之前的状态。

  4. 现在,使用git stash apply命令将存储的更改应用到你的工作副本中。Git会很聪明地忽略已经存在的提交,所以你的工作副本会和在错误的分支上提交之前一样。

  5. 现在切换到正确的分支,并像平常一样提交:

    git checkout <right-branch>
    git add [...]
    git commit -m "blah blah blah"
    

    如果你的更改集与正确的分支不兼容,则可能需要调整更改,但完成后,你的更改现在已经被提交到正确的分支上了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接