例如, 想要删除一个叫做Rakefile的文件, 请在相应repository顶层输入一下命令:

git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch Rakefile' \
--prune-empty --tag-name-filter cat -- --all

其中Rakefile需要给出完整的路径地址. 之后你本地的.git信息中就再也不包含Rakefile的信息了.

之后, 你需要把本地仓库pushGithub, 此时输入:

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
2015-01-15 23:5126