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