0

我对 git 有一些问题。我有一个包含内容的文件 .gitignore:

uploads
.htaccess
robots.txt
etc..

我做了:

 git commit -a -m "GIT TEST"

并且 git 发送了我的文件:.htaccess 和其他(在 .gitignore 中)。为什么 ?如何取消此提交?(提交被推送到回购“git push origin master”)

4

1 回答 1

0

git如果文件在添加到 之前已经被跟踪.gitignore,则不会因为它.gitignore现在就被自动忽略。你需要

git rm --cached .htaccess
git commit

告诉git停止跟踪该文件。您可以在下一次提交和推送周期中执行此操作,但如果您确实需要修改最近的提交以删除文件,您可以执行以下操作:

git rm --cached .htaccess
git commit --amend
git push -f

(但请注意,如果其他人可能已经获取了“错误”提交 - 这会让他们感到悲伤)。如果有问题的提交不是最新的,而是更早的历史,您可以使用git filter-branch(确切语法的示例应该很容易找到)来完成相同的事情git push -f,但同样需要注意。

于 2013-01-15T16:24:27.043 回答