例如, 想要删除一个叫做 Rakefile 的文件, 请在相应 repository 顶层输入一下命令:
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch Rakefile' \
--prune-empty --tag-name-filter cat -- --all
其中 Rakefile 需要给出完整的路径地址. 之后你本地的 .git 信息中就再也不包含 Rakefile 的信息了.
之后, 你需要把本地仓库 push 到 Github, 此时输入:
git push origin --force --all
这样便可以强行将仓库同步到远端. 此时你会发现本地文件夹并没有减小, 可以采取的办法是删除本地文件夹, 然后重新 clone 一次即可.
更换 Git 远程仓库:
git remote rm origin
git remote add origin git@github.com:Liutos/foobar.git
push 到远程仓库:
git push origin master
Comments