git push --force 的后悔药: git reflog

向远程临时分支推送内容,偶尔会遇到部分代码忘记提交的情况,这个时候可以在本地回退修改后再提交。

git reset --soft HEAD^
... 修改 ... ... commit ...

重新推送到远程会失败,此时需要将--force或-f强制推送,远程分支的提交记录就和本地的一样了。

git push origin branch1 --force

如果发现远程分支选错,推送到了其它分支,或者想把远程推送恢复到首次推送的状态(强制推送之前的状态),可以使用reflog。

# 查看远程分支的reflog
git reflog show remotes/origin/branch1

d11110e (origin/branch1) remotes/origin/branch1@{0}: update by push
82ab282 remotes/origin/branch1@{1}: update by push
5333384 remotes/origin/branch1@{2}: update by push

# 找到丢失提交的哈希值,在本地回退
git reset --hard 82ab282

# 再次强制推送到远程
git push origin branch1 --force

 

  

posted @ 2024-10-16 14:33  卡卡什么卡  阅读(6)  评论(0编辑  收藏  举报