【教程】如何清空一個 Git 分支的所有 Commits

shiweidu發表於2018-01-03

很多人有一個大膽的想法,如何清空某個分支裡面所有的 commit 呢?還有一個場景,不熟悉 Git 的程式設計師門新建分支基於某個分支建立的,但是可能這個分支的歷史 Commits 是不需要的。那麼,下面我就說一下如何將分支的歷史 Commits 清空吧!

新建一個空白分支

首先,你應該切換到你需要清空的分支,然後執行 (我們擬定為 test 吧):

git checkout --orphan null_branch

然後你會發現,你分支下的所有檔案都成了待新增狀態,我們可以直接執行 git add -A 新增,然後先存在 null_branchgit 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 即可。

相關文章