【发布时间】:2010-12-31 07:11:12
【问题描述】:
首先,我是 Git 新手。
我使用 Finder 在我的 Mac 上本地删除了一堆文件。我希望我删除的文件不再显示在当前分支中,但它们确实如此。
任何 Git 用户都知道更新索引的命令吗?
【问题讨论】:
首先,我是 Git 新手。
我使用 Finder 在我的 Mac 上本地删除了一堆文件。我希望我删除的文件不再显示在当前分支中,但它们确实如此。
任何 Git 用户都知道更新索引的命令吗?
【问题讨论】:
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch deletefile.name' --prune-empty --tag-name-filter cat -- --all
git commit -m "Removed deletefile.name"
git push origin master --force
将 deletefile.name 替换为要删除的文件。更详细的解释请看好文章https://help.github.com/articles/remove-sensitive-data
【讨论】:
我不知道自从之前的答案以来这是否已经添加到git中,但我只是使用了
git add -u
git commit -m "Removed some files"
达到同样的目的。
【讨论】:
我认为这将是一种更简单的方法来做你想做的事:
git add . -A
那么你就这样做:
git commit -m "removed some files"
如上所述。
【讨论】:
bash 中写了别名来执行上述操作。太棒了。
git help add 会告诉您-A 的含义并列出所有其他开关。
您可以查看已删除的文件,这些文件仍被“跟踪”:
git ls-files --deleted
要从分支中删除文件,您可以执行以下操作:
git ls-files --deleted -z | xargs -0 git rm
来自man git-rm:
从索引中删除文件,或者从工作树和索引中删除文件。 git-rm 不会仅从您的工作目录中删除文件。 (没有删除文件的选项 13 仅来自工作树,但仍将其保留在索引中;如果你想这样做,请使用 /bin/rm。)
最后,要提交“删除”,请执行以下操作:
git commit -m "removed some files"
【讨论】:
git commit -m "removed some files"