Git还原本地提交

Wil*_*ill 53 windows git msysgit

我在Windows上的phpstorm上有一个git repo.我提交了一些更改集,然后将它们推送到我们的"中央仓库".在此之后,我又做了一些提交.我不再希望这些提交没有被推到中央回购.如何清理我的工作副本与中央仓库(原产地)相同?

Ste*_*ice 76

git reset --hard remotes/origin/HEAD
Run Code Online (Sandbox Code Playgroud)

  • 这对master很有用,但在分支上有问题: (14认同)

Kar*_*gan 53

git reset --hard remotes/origin/YOUR/BRANCH
Run Code Online (Sandbox Code Playgroud)

/HEAD你不会看到这个更好:

$ git status
On branch MY/BRANCH
Your branch and 'origin/MY/BRANCH' have diverged,
and have 1 and 1 different commit each, respectively.
Run Code Online (Sandbox Code Playgroud)

  • 这就是答案. (5认同)

seh*_*ehe 21

如果您对此确定并且没有任何本地未提交的更改:

git reset --hard origin/master
Run Code Online (Sandbox Code Playgroud)

origin/master你推到的分支在哪里.

ref-log仍然包含恢复的位,直到垃圾收集到期为止.要恢复还原,

git reset --hard HEAD@{1}
Run Code Online (Sandbox Code Playgroud)


uma*_*uma 14

您可以通过还原本地提交

git reset HEAD~N
Run Code Online (Sandbox Code Playgroud)

其中N用于恢复提交次数.一个例子:

如果你必须从本地恢复单个提交,那么你可以使用

git reset HEAD~1
Run Code Online (Sandbox Code Playgroud)

或者git重置HEAD ^