最近开始使用git ...只是注意到了我的文件的克隆,最后添加了'〜'...为什么会发生这种情况

时间:2009-04-29 10:59:53

标签: git commit ignore

我使用git在我的存储库中提交更改,

遵循这些步骤

git add .
git commit -m "message"

但注意到文件的克隆,其中进行了更改,也存在于存储库中 新文件末尾附加了“~”符号。

为什么会这样?我怎么能在将来阻止它呢? 另外一些关于如何用“〜”删除文件的想法会很棒

由于

3 个答案:

答案 0 :(得分:8)

您的编辑器正在生成FILENAME~形式的备份文件。 (Emacs这样做;否则可以说服它。)你没有要求git忽略以〜结尾的文件。使用git add .,你告诉git添加你没有要求它忽略的所有内容。

另见: gitignore

答案 1 :(得分:8)

要完成bendin's answer,请在工作目录中添加.gitignore文件,例如:

*~
*.bak
*.old

由于存在several levels of 'gitignore',因此必须添加并提交.gitignore文件才能保持“git clone”。

答案 2 :(得分:0)

  

关于如何用“〜”删除文件的一些想法会很棒

使用gitignore,您可以忽略尚未被跟踪的文件,但如果您添加了一个文件,并且稍后在.gitignore中将其匹配,则在内容发生更改时,它仍会被标记为已更新。

因此,从未来的提交中删除它的方法是使用:

git rm *~

另一方面,如果要从旧提交中删除临时文件,则应查看git filter-branch。如果您已经发布了您的仓库,请小心,因为此命令会重写历史记录,因此请备份您的仓库,并在选择此方式时了解您正在执行的操作。