很多人有一個大膽的想法,如何清空某個分支裡面所有的 commit 呢?還有一個場景,不熟悉 Git 的程式設計師門新建分支基於某個分支建立的,但是可能這個分支的歷史 Commits 是不需要的。那麼,下面我就說一下如何將分支的歷史 Commits 清空吧!
新建一個空白分支
首先,你應該切換到你需要清空的分支,然後執行 (我們擬定為 test
吧):
git checkout --orphan null_branch
然後你會發現,你分支下的所有檔案都成了待新增狀態,我們可以直接執行 git add -A
新增,然後先存在 null_branch
中 git commit -am "Init commit."
刪除舊本地分支
git branch -D test
刪除是為了將
null_branch
重新命名為之前的分支名稱
然後執行重新命名為之前的分支名稱:
git branch -m test
進行強制提交到遠端倉庫
git push -f origin test
可能遇到的問題
如果你使用過 GitHub 或者 SourceTree 可能會遇到:
This repository is configured for Git LFS but `git-lfs` was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/pre-push.
這樣的錯誤,很簡單,執行 rm -rf .git/hooks/pre-push
刪除這個 hook 即可。