我有两个本地git存储库,对应于名为quest
的远程存储库。一个本地存储库位于Windows机器上,我通过Cygwin运行git命令。另一个是在Linux系统上。
下面列出的具体例子涉及后一种情况。
我的主目录(.gitconfig
)中有一个/hhome/jj
文件,其中包含一个条目
[core]
excludesfile = /hhome/jj/.gitignore_global
指向全局.gitignore
文件,也在我的主目录中。
我正在尝试设置git来忽略此git存储库的matlab_stuff
子目录中的所有内容,现在和永远。该子目录的完整路径为/hhome/jj/gitroot/quest/matlab_stuff
。我以为我可以通过放下以下一行中的一行来实现这一目标
matlab_stuff/
/hhome/jj/gitroot/quest/matlab_stuff/
<{1>}中的,但它无效
我知道这还不足以使git忽略它已经跟踪的文件。为了消除那些我使用的东西,比如
~/.gitignore_global
在git update-index --skip-worktree <file-name>
子目录中的每个文件上。然后我删除了整个matlab_stuff
子目录。
一切似乎都很好。我可以对其他文件进行更改,提交它们并推送它们,而不会为其他用户搞乱全局存储库。
但是,只要我做了一个&#39; git pull&#39;在其他人将新文件推送到/hhome/jj/gitroot/quest/matlab_stuff
后,该子目录将被重新创建并放入新文件,这正是我希望避免的。
正在运行matlab_stuff
会显示正确的git config --global -l
条目,因此它并不像git不知道全局core.excludesfile
文件一样。
正如我所说,这在两个类似配置的本地git存储库中没有按预期工作。
为什么这不起作用和/或我该如何解决?