𝖄𝕺🌎𝕿𝕽𝕺¥

𝖄𝕺🌎𝕿𝕽𝕺¥

𝕴 𝖉𝖔 𝖒𝖆𝖌𝖎𝖈
github

記一次 Git 移除某個不該提交的文件

方法一: git rebase -i 修改提交#

rebase 到之前提交#

$ git rebase -i HEAD~15    // rebase到往前15條提交的位置
$ git rebase -i <58361c2...>    // rebase 到某次特定提交
$ git rebase -i --root // 修改根提交(第一次提交)

編輯器中會列出:

pick abc1234 Initial commit
pick def5678 Add something else
...

把你想修改的第一個提交改為:

edit abc1234 Initial commit

從該提交中移除你不該提交的文件:

git reset HEAD secret.txt
git restore --staged secret.txt
git commit --amend
git rebase --continue

修改 commit#

git commit --amend

強制推送#

git push --force

方法二(替代):git filter-repo 彻底清除文件历史(適合處理多個提交中都出現的文件)#

git filter-repo 的下載不講了。

如果該文件不僅出現在第一次提交中,而且後續提交中也修改過,建議使用以下一種:

git filter-repo --path secret.txt --invert-paths

python -m git_filter_repo --path secret.txt --invert-paths --force
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。