Linux 如何在拉取后恢复到以前的提交,而不丢失以前的更改?

Linux 如何在拉取后恢复到以前的提交,而不丢失以前的更改?,linux,github,Linux,Github,我用新实现的代码测试了本地端的更改,一切正常。一旦我提交了更改并将这些更改推送到GitHub,我就从Linux上的服务器中的存储库中取出了这些更改。重建服务器失败,因为它遇到错误 如何恢复到上一次拉取而不丢失刚才拉取的更改?您可以通过执行 git复位头~k--soft 其中k是自所需提交之后的提交次数 (使用git log并选择一个特定的提交,如果不想计数,则使用其哈希而不是HEAD~k) 然后你可以对他们做任何你想做的事。例如: 使用git stash将它们隐藏起来 在另一个分支上提交并推送

我用新实现的代码测试了本地端的更改,一切正常。一旦我提交了更改并将这些更改推送到GitHub,我就从Linux上的服务器中的存储库中取出了这些更改。重建服务器失败,因为它遇到错误


如何恢复到上一次拉取而不丢失刚才拉取的更改?

您可以通过执行

git复位头~k--soft

其中
k
是自所需提交之后的提交次数 (使用
git log
并选择一个特定的提交,如果不想计数,则使用其哈希而不是
HEAD~k

然后你可以对他们做任何你想做的事。例如:

  • 使用git stash将它们隐藏起来
  • 在另一个分支上提交并推送它们,以便您可以在本地工作站上拉取它们并继续处理它们:

    通过执行

    git checkout -b newBranch
    git commit
    git push
    
    在服务器上,最后在本地工作站上进行git pull。
    (尽管无论如何,您应该在本地工作站上保留它们,至少在拉取之前是这样)


或者,如果您不想更改当前分支,只想构建代码的工作版本,请使用。

您可以通过执行

git复位头~k--soft

其中
k
是自所需提交之后的提交次数 (使用
git log
并选择一个特定的提交,如果不想计数,则使用其哈希而不是
HEAD~k

然后你可以对他们做任何你想做的事。例如:

  • 使用git stash将它们隐藏起来
  • 在另一个分支上提交并推送它们,以便您可以在本地工作站上拉取它们并继续处理它们:

    通过执行

    git checkout -b newBranch
    git commit
    git push
    
    在服务器上,最后在本地工作站上进行git pull。
    (尽管无论如何,您应该在本地工作站上保留它们,至少在拉取之前是这样)

或者,如果您不想更改当前分支,只想构建代码的工作版本,请使用。

  • 您可以通过以下方式获取提交历史记录:
  • 然后,您可以使用
  • 您可以通过以下方式获取提交历史记录:
  • 然后,您可以使用
git checkout 3ef0d...