我有一个包含一些XSLX文件的git repo。我每隔一段时间就用LibreOffice编辑它们。有时LibreOffice不会删除锁定文件(./folder/.~lock.filename.xslx#
)。这导致这些文件在每个git status
上都是新的。
我想git忽略它们。我在.gitignore
中尝试了以下操作,但似乎无效:
*.~lock*
.~lock*
*/.~lock*
有什么想法吗?
更新
也尝试过:
.~lock.*#
如http://lists.freedesktop.org/archives/libreoffice-commits/2012-December/040253.html所示 没有成功。
答案 0 :(得分:10)
测试.gitignore
,
git ls-files -ix '.~lock*'
要查看是否有任何缓存的已暂存的已跟踪又名为已添加的文件与忽略模式匹配(因此可能已添加错误),
git ls-files -ic --exclude-standard
正如@NevikRehnel指出的那样,git不会忽略被跟踪的文件。要取消跟踪文件,
git rm --cached path/to/it
将把它从下一次提交中取出,但是从早期历史记录中取出文件的唯一方法是重写例如git commit --amend
如果它只是最后一次提交,git rebase -i
如果您只有几个要做,或git filter-branch
进行批量工作。这些都没有实际改变旧历史,他们添加新的历史记录并切换任何当前分支来引用它。旧的历史仍然存在,没有其他的参考被移动。
答案 1 :(得分:0)
答案(正如您在评论中发现的那样):*.~lock*
文件中的 .gitignore
工作正常。
此外,如果使用Git for Windows,请确保将.gitignore
文件命名为“.gitignore”,而不是.gitignore.txt
,这是Windows试图强制执行的操作。为此,请使用文本编辑器rather than trying to rename it in Windows Explorer保存它。
如果您在最后意外地使用了.txt
扩展名,它将无法正常工作,并且git将无法正确读取该文件作为.gitignore
文件。
答案 2 :(得分:-1)
如果您尝试了上述解决方案并且无效,请查看此链接,它帮助我解决了这个问题: excluding LibreOffice lock files
我实际上最终制作了一个.gitignore文件,尽管最初我的意思是将它们添加到git“exclude”文件中。但是我认为解决方案也可能适用于此。
基本上我的想法是关闭并重新启动libreOffice并将你的git仓库“cd”掉,然后重新启动它以使更改生效。
我希望能帮助其他人解决这个问题。