是否可以拥有自定义.gitignore?只读访问?

Bla*_*man 71 git gitignore

我在团队环境中工作,并且已经存在.gitignore文件.

我想在.gitignore文件中添加更多项目,但我不想在其中检查此文件.可以设置仅适用于我的自定义忽略文件吗?

此外,我想在我们的服务器上给某人只读访问私有git存储库,如果我将他们的SSH密钥添加到我们的服务器,他们将像其他人一样获得完全访问权限.如何将其限制为只读,不允许提交.

Fre*_*Foo 113

  1. 将您的私人忽略规则放入.git/info/exclude.见gitignore(5).
  2. 对于只读访问,使用git-daemon,一个web服务器,或者Gitosis的,或Gitolite.

  • @Blankman:把它放在项目根目录*中的`.git/info/exclude`*中. (7认同)
  • 一个有用的使用方法:首先 -> `ln -s .git/info/exclude .personalGitignore` 然后我们可以将 `# ln -s .git/info/exclude .personalGitignore \n .personalGitignore` 添加到 .gitignore (2认同)

Jak*_*ene 18

我知道我的谈话有点迟,但你可能想考虑使用

git update-index --assume-unchanged [ FILE ]
Run Code Online (Sandbox Code Playgroud)

正如git帮助文档所述:

当"假定未更改"位打开时,git停止检查工作树文件是否可能进行修改,因此您需要手动取消设置该位以在更改工作树文件时告诉git ...

强调我的.它继续说

此选项可用作粗略文件级机制,以忽略跟踪文件中未提交的更改(类似于.gitignore对未跟踪文件的更改).如果需要在索引中修改此文件,例如在提交中合并时,Git将失败(优雅); 因此,如果上游更改了假定未跟踪文件,则需要手动处理该情况.

所以请记住,您必须了解对这些文件所做的任何上游更改.

如果您想再次开始跟踪文件,您只需使用即可

git update-index --no-assume-unchange [ FILE ]
Run Code Online (Sandbox Code Playgroud)

我希望这有助于这篇文章的未来观众.


Jes*_*gan 6

就像 Fred Frodo 所说,您可以将私有排除规则放在.git/info/exclude存储库中。

如果您想将相同的排除规则应用于计算机上的所有存储库,您可以将以下内容添加到.gitconfig用户目录中的文件中。

[core]       
    excludesfile = /home/<myusername>/.gitexclude 
Run Code Online (Sandbox Code Playgroud)

然后将您的排除模式添加到~/.gitexclude.