2016-08-03 131 views
0

提交被推送到分支random-tests,其中包含一些意外的敏感信息。該分支不會再被使用,所以我只是強制從遠程和本地刪除,認爲這將清除該分支中的任何提交。我錯了。即使分支本身不存在,提交仍然存在。Git在第一次提交時刪除分支時在遠程分支上提交提交

這是該分支從master分裂出來之前的第一次提交。由於分支被刪除並且是該分支上的第一個提交,我如何刪除有問題的提交而不影響其他內容?

+0

您是否有權訪問運行BitBucket的服務器?見https://confluence.atlassian.com/bitbucket/maintaining-a-git-repository-321848291.html – Owen

+0

你的意思是「提交還在那裏」? – larsks

+1

「提交仍然存在」,你的意思是「無法訪問」的提交?如果是這樣,那麼你可以簡單地[垃圾收集](http://stackoverflow.com/q/1904860/211627)。 – JDB

回答

0

如果你仍然看到這些提交,那麼他們不能只在那個random-tests分支上。總之,這裏的一個選項:

這裏說的是您最近提交的清單:

  • 錯誤提交
  • 好提交
  • 好提交

要清除從「壞的承諾」 Git的歷史記錄,你可以運行git reset --hard HEAD~1,它會將樹重置爲一次提交,並忘記曾經存在的「錯誤提交」。

要多一點謹慎做到這一點,你可以改爲運行git reset --soft HEAD~1,做一個git status去確保正確的文件是不分階段,然後運行git reset --hard復位到下一個提交,這將是最近的「好承諾。'

可能不是最好的解決方案,但它應該工作。希望幫助&是有道理的!

更新: 由於您修改了Git歷史記錄,因此在將其推送到遠程時會遇到問題,因此您必須執行git push origin branch -f才能強制啓動。

+0

是的,他們的確在「隨機測試」分支上。當我進入BitBucket時,他們不再顯示分支。我可以查看它們的唯一方法是直接進入我們的Slack #commits頻道中顯示的鏈接,例如:https://bitbucket.org/ouraccount/app/commits/e4de5130xfc3e57b79111a87d336582a710bc04e – eComEvo

+0

另外,如何運行'git reset'當我無法拉出有問題的分支?此外,我想要刪除的提交是該刪除分支上的第一個提交。 – eComEvo