2017-04-24 873 views
0

我仍然在学习git并获取它的窍门。我只想在本地忽略文件到我的工作流程。我已经阅读了很多Q &就像这里和git文档一样,但他们没有提到或解释如何创建和访问.git/info/exclude文件以修改它。我没有这个文件,或者至少它不在git的根目录中,当我打电话ls -la命令查看我的本地存储库中的所有隐藏文件。我只看到.git,.gitignore和在存储库中看到的其他文件。如何创建/添加到.git/info/exclude文件以在本地忽略文件?

还有其他系统文件在每次编辑文件并对其进行编辑时都会一直显示为已修改。我最终不得不每次存储它以便能够提交/推送到远程存储库。

我试过使用像nano .git/info/exclude,cat .git/info/exclude这样的命令,假设我必须创建一个使其工作,但它说Error: No such file or directory。那么,如何访问该文件以开始在本地忽略它们,以使我的工作流程更轻松,更乏味?

而且,我跑的命令cd .git,我看到.git目录内的一些文件(但没有info/exclude文件夹):

enter image description here

注:我知道git update-index --assume-unchanged <file>git update-index --skip-worktree <file>其他手段忽略本地文件,但我有兴趣知道如何使用.git/info/exclude的方式。

+1

重新您最后请注意:如果你可以'git的更新索引--skip-worktree ''然后' *是在索引现在*,因此*不能被忽略*。忽略条目,无论放在哪里,现在都不起作用,因为该文件路径名称位于索引中。 – torek

回答

3

有两件事情:

首先,您很可能希望使用.gitignore而不是.git/info/exclude。它做同样的事情,除了它被检入回购和版本以及所有的工作文件。在大多数情况下,这将是所需的行为。如果您使用.git/info/exclude,那么只有该存储库的特定克隆将忽略指定的路径,并且如果忽略规则随您的代码演变而改变,那么您将无法跟踪哪些规则与)

但是,如果你真的想用.git/info/exclude ......好吧,你把它当作单个文件名来处理,但是(每个* NIX约定,它通过大多数git文档占据主导地位) )/是一个路径分隔符。所以在你的回购中你看到.git。然后

cd .git 

,如果你做一个ls有可能会看到info。如果没有

mkdir info 

然后你可以cd info和创建文件exclude

+0

谢谢。什么类型的文件是'exclude'?是一个'.txt'? – TheAmazingKnight

+1

文件类型和扩展名实际上是两个不同的问题(尽管有Windows约定)。它的类型是纯文本;它没有文件扩展名。 –

+0

好的,谢谢。在Mac上,我只需使用'touch exclude'命令创建文件,而无需命名任何扩展名。 – TheAmazingKnight