2013-10-08 25 views
5

我做這個混帳命令:到位桶的git重置

git reset --hard hash 
git push -f 

所有的好地方,我沒有看到「哈希」之後的任何提交提交。推之後一切都很好,沒有錯誤,但在我的倉庫(Overview)的Bitbucket主面板上,最後一次提交仍然存在。我不明白,我是否重置遠程存儲庫?

回答

4

問題是你的SHA沒有改變,所以Git並沒有真正更新BitBucket上的遠程。您重置的位置之後的歷史記錄仍然存在,您將可以執行git pull,並且您的本地回購將獲得所有稍後的提交。

做完git reset --hard HASH後,做一個git reset HEAD~(注意:這是一個軟復位)然後重新提交更改。這將爲提交生成一個新的SHA,並且當您強制推送您的更改時,BitBucket上的樹應按預期更新。

警告 這種情況正在改變歷史,如果有其他人已經從回購拉,就會造成麻煩。這不應該是撤消遠程分支上的更改的正常工作流程,您應該使用git revert

0

git reset不會刪除提交;如果這是你的意圖。它會在本地機器上重置當前工作樹(階段性更改以提交)。

+0

有沒有辦法刪除提交或清除bitbucket歷史? – malcoauri

+0

或重置遠程樹來隱藏提交 – malcoauri

+0

'git revert'可以撤銷指定的提交(不合並提交,但是)。除此之外;你最好的選擇是重新開始。 – jackyalcine