即使在git中搞砸了,只要是git,就没问题
干了什么让人吃惊的事情
git rebase –hard で必要な変更も消してしまった。
Source Treeだと現在のブランチをこのコミットまでリセット、(ブランチ名)をこのコミットまで戻すをHardで実行
必要なブランチを削除してしまった
など。。。
“git reflog是什么?”
git reflog 是一个可以查看 Git 操作记录的命令。
$ git reflog
c2344c123 (HEAD -> develop, origin/develop, origin/HEAD) HEAD@{0}: pull origin develop: Fast-forward
b452355c0 HEAD@{1}: checkout: moving from master to develop
d52edfc46 HEAD@{2}: checkout: moving from develop to master
b153446c9 HEAD@{3}: reset: moving to b953044c833ad515f06be9ba9c32111a353b65f3
根据上面的日志,Git操作被执行如下。
-
- b953044c833ad515f06be9ba9c32111a353b65f3のコミットにリセット
-
- developブランチからmasterブランチにチェックアウト
-
- masterブランチからdevelopブランチにチェックアウト
- developブランチでpull
重置操作
通过之前的git reflog命令确认操作记录后,可以使用git reset –hard命令来回到一次操作失败之前的状态,从而恢复到操作失败之前的状态。
git reset --hard HEAD@{1}
总结
-
- 追加したファイルをプッシュする前にgit resetで消してしまった
- プッシュ前にブランチを削除してしまった
即使在Git上搞砸了,也可以通过Git基本上进行恢复。
在困难时,请尝试使用git reflog。