我想撤消我的git拉的帐户上不需要的提交远程原点,但我不知道我必须重置回哪个修订。
我怎么能回到git拉远端原点之前的状态呢?
我想撤消我的git拉的帐户上不需要的提交远程原点,但我不知道我必须重置回哪个修订。
我怎么能回到git拉远端原点之前的状态呢?
当前回答
这对我很管用。
git reset --hard ORIG_HEAD
撤销合并或拉取:
$ git pull (1)
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard (2)
$ git pull . topic/branch (3)
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD (4)
在Git中签出这个:HEAD和ORIG_HEAD。
其他回答
重置主分支:
git reset --hard origin/master
git reflog show将显示HEAD的历史。你可以用这个查出你被拉之前在哪里。然后你可以重置你的HEAD到那个提交。
这对我很管用。
git reset --hard ORIG_HEAD
撤销合并或拉取:
$ git pull (1)
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard (2)
$ git pull . topic/branch (3)
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD (4)
在Git中签出这个:HEAD和ORIG_HEAD。
或者让它比另一个答案更明确:
git pull
哎呦?
git reset --keep HEAD@{1}
1.7.1以上版本的git没有——keep。如果您使用这样的版本,您可以使用—很难—但这是一个危险的操作,因为它会丢失任何本地更改。
致评论者
ORIG_HEAD是HEAD的先前状态,由可能有危险行为的命令设置,以便于恢复它们。现在Git有reflog: HEAD@{1}大致相当于ORIG_HEAD (HEAD@{1}总是HEAD的最后一个值,ORIG_HEAD是危险操作前HEAD的最后一个值)
找到你想要提交的<SHA#>。你可以在github中找到它,或者在命令行输入git log或git reflog show,然后do git reset——hard <SHA#>