20

我有一个 git repo,其中包含一些 XSLX 文件。我每隔一段时间就用 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中所见 ,没有成功。

4

3 回答 3

20

要测试 的模式.gitignore

git ls-files -ix '.~lock*'

要查看是否有任何缓存的 aka staged aka tracked aka 添加的文件与忽略模式匹配(因此可能是错误添加的),

git ls-files -ic --exclude-standard

正如@NevikRehnel 指出的那样,git 不会忽略跟踪的文件。要取消跟踪文件,

git rm --cached path/to/it

这会将它从下一次提交中删除,但是从早期历史记录中删除文件的唯一方法是重写,例如git commit --amend,如果它只是最后一次提交,git rebase -i如果你只有少数工作要做或git filter-branch批量工作。这些都没有真正改变旧的历史,它们添加了新的历史并切换任何当前分支来引用它。旧的历史还在,没有其他的裁判被移动。

于 2013-10-06T18:24:32.847 回答
4

答案(正如您在评论中发现的那样):*.~lock*.gitignore文件中添加就可以了

此外,如果使用Git for Windows,请务必将.gitignore文件命名为.gitignoreNOT .gitignore.txt,如果使用 Windows 资源管理器重命名或创建文件,Windows 会尝试强制使用它。为此,请使用文本编辑器保存它,而不是尝试在 Windows 资源管理器中重命名它(在此处查看更多信息)。

如果您不小心.txt在末尾添加了扩展名,它将无法工作,并且 git 不会将文件作为文件正确读取.gitignore

有关更详细的 gitignore 格式说明,以及了解如何指定要忽略的文件和文件夹的语法,请参阅我在我的eRCaGuy_dotfiles.gitignore存储库中的文件中的注释和示例。

于 2018-02-25T05:52:38.883 回答
-1

如果您尝试了上述解决方案但没有成功,请查看此链接,它帮助我解决了问题: 排除 LibreOffice 锁定文件

实际上,我最终制作了一个 .gitignore 文件,尽管最初我打算将它们添加到 git“排除”文件中。但是我认为该解决方案也可能适用于此。

基本上,这个想法是关闭并重新启动 libreOffice 并“cd”出你的 git repo 并再次回到它以使更改生效。

我希望这可以帮助其他人解决这个问题。

于 2017-04-14T07:07:35.817 回答