忽略隐藏文件 git

5

我在GitHub存储库中添加了以~结尾的文件,现在我想要将它们删除。

例如,我添加了以下文件:

README.md

以及文件

README.md~ 

还添加了。

请问需要帮忙吗?


那么你到底想要什么?是删除它们(git rm),防止它们再次被添加(man gitignore),还是重写你的历史记录,使它们似乎从未被添加过? - Schnouki
重写历史记录,使它们似乎从未被添加,并将它们从当前存储库中删除! - glarkou
3个回答

10

如果您要忽略所有以~结尾的文件,则应将此内容添加到您的存储库顶级中的.gitignore文件中(与.git目录并列)。

# Ignore all emacs backup files
*~

如果要更改历史记录并删除README.md~文件,你可以手动使用git rebase --interactive或尝试使用git filter-branch

$ git filter-branch --prune-empty --index-filter 'git rm --cached --ignore-unmatch README.md~' HEAD

非常感谢!在放置.gitignore后,我运行了git filter-branch --prune-empty --index-filter 'git rm --cached --ignore-unmatch README.md~' HEAD。这解决了所有问题! - glarkou

2
你应该使用gitignore来忽略那些你不希望出现在仓库中的文件。
要删除这些文件,你可以使用
git rm README.md~

然后像平常一样提交。

有没有办法删除以 *~ 结尾的所有文件。我如何将其添加到 .gitignore 文件中?谢谢。 - glarkou
你可以尝试这样做:git rm *~然后将其添加到你的 .gitignore 文件中:*~ - Matt Healy

0

如果你想重写历史,最简单的方法可能是使用 git rebase -i

  1. 使用 git rm 删除文件,将 *~ 添加到你的 .gitignore 文件中,并提交你的更改
  2. git rebase -i 在添加该文件之前的提交
  3. 在你的文本编辑器中,在添加文件的提交后面放置你最后一次提交的行,并将 "pick" 改为 "fixup"
  4. 保存、退出,观察魔法发生
  5. 仔细检查你的历史记录,然后执行 git push -f

...或者你可以使用 这个问题 中提到的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接