提交被推送到分支random-tests
,其中包含一些意外的敏感信息。該分支不會再被使用,所以我只是強制從遠程和本地刪除,認爲這將清除該分支中的任何提交。我錯了。即使分支本身不存在,提交仍然存在。Git在第一次提交時刪除分支時在遠程分支上提交提交
這是該分支從master
分裂出來之前的第一次提交。由於分支被刪除並且是該分支上的第一個提交,我如何刪除有問題的提交而不影響其他內容?
提交被推送到分支random-tests
,其中包含一些意外的敏感信息。該分支不會再被使用,所以我只是強制從遠程和本地刪除,認爲這將清除該分支中的任何提交。我錯了。即使分支本身不存在,提交仍然存在。Git在第一次提交時刪除分支時在遠程分支上提交提交
這是該分支從master
分裂出來之前的第一次提交。由於分支被刪除並且是該分支上的第一個提交,我如何刪除有問題的提交而不影響其他內容?
如果你仍然看到這些提交,那麼他們不能只在那個random-tests
分支上。總之,這裏的一個選項:
這裏說的是您最近提交的清單:
要清除從「壞的承諾」 Git的歷史記錄,你可以運行git reset --hard HEAD~1
,它會將樹重置爲一次提交,並忘記曾經存在的「錯誤提交」。
要多一點謹慎做到這一點,你可以改爲運行git reset --soft HEAD~1
,做一個git status
去確保正確的文件是不分階段,然後運行git reset --hard
復位到下一個提交,這將是最近的「好承諾。'
可能不是最好的解決方案,但它應該工作。希望幫助&是有道理的!
更新: 由於您修改了Git歷史記錄,因此在將其推送到遠程時會遇到問題,因此您必須執行git push origin branch -f
才能強制啓動。
您是否有權訪問運行BitBucket的服務器?見https://confluence.atlassian.com/bitbucket/maintaining-a-git-repository-321848291.html – Owen
你的意思是「提交還在那裏」? – larsks
「提交仍然存在」,你的意思是「無法訪問」的提交?如果是這樣,那麼你可以簡單地[垃圾收集](http://stackoverflow.com/q/1904860/211627)。 – JDB