Bitbucket Git重置

6

我已经执行了以下git命令:

git reset --hard hash
git push -f

本地一切正常,'hash'提交之后没有看到其他的提交。在推送之后也一切正常,没有出现任何错误,但是在Bitbucket中我的代码库的主面板(概述)上仍然显示最后的提交。我不理解这是为什么,我是否已经重置了远程仓库呢?

2个回答

5
问题在于您的 SHA 值没有改变,所以 Git 并没有真正更新 BitBucket 上的远程内容。重置后的历史记录仍然存在,您可以执行 git pull 命令,本地仓库将获取所有后续提交。
在执行 git reset --hard HASH 后,执行 git reset HEAD~(注意:这是软重置),然后重新提交更改。这将为提交生成一个新的 SHA 值,当您强制推送更改时,BitBucket 上的树应该会按照您的期望进行更新。 警告: 这将更改历史记录,如果有其他人从仓库中拉取了代码,可能会引起麻烦。这不应该是撤消远程分支更改的常规工作流程,您应该使用 git revert 命令。

0

git reset并不会删除提交记录;如果你的意图是删除提交记录,这个命令并不适用。它会重置本地机器上当前的工作树(已暂存的修改将被提交)。


有没有办法删除提交或清除Bitbucket历史记录? - malcoauri
或者重置远程树以隐藏提交 - malcoauri
git revert 可以撤销指定的提交(不包括合并提交)。除此之外,最好的方法是重新开始。 - jackyalcine
另外,如果您想恢复到旧状态,您可能需要使用 git reset --merge <SHA1> - jackyalcine
重新开始的话,就需要删除你的本地历史和远程仓库,然后重新初始化 Git 仓库。 - jackyalcine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接