将文件保存在git存储库中并忽略本地编辑/删除

时间:2017-08-29 21:12:11

标签: git

我的git中有一个文件:

dir1/.thisfile

.thisfile的内容是"您好" 现在我希望当用户执行git clone他们拥有此文件时。 之后,我希望用户删除文件或在本地编辑文件的内容,但我希望git忽略它。

我如何实现这一目标? 我把文件放在我的.gitignore中,但是当我删除它或更改它时它就被暂存了。 Gitignore似乎只适用于我的gitrepo中没有的文件。

3 个答案:

答案 0 :(得分:0)

我不完全确定我完全理解你,但是如果你想暂时隐藏文件,使其不被包含在提交中,你可以使用:

git update-index --assume-unchanged <file>

...并在需要时将其更改回来:

git update-index --no-assume-unchanged <file>

希望这有帮助。

答案 1 :(得分:0)

如果您的文件是repo,则无论.gitigore中是否提及该文件。克隆存储库的每个用户都将获取该文件,但由于它列在.gitigore上,因此除非它们被.gitigore删除,否则他们无法再次提交该文件。

然后将文件上传到repo并将其添加到.gitigore。如果您想跟踪本地文件check这个问题。

答案 2 :(得分:0)

一般来说,如果您希望全局忽略这些文件,必须将它们添加到全局repo git.ignore 。我没有看到任何内置的实现您的要求的方法,但您可以使用以下方法来实现。

在将文件dir1 / .thisfile推送到您的仓库之前,将名称更改为例如

  

DIR1 / .thisfile.model

  

DIR1 / .thisfile.example

或任何你喜欢的东西,只要它是不同的和有意义的。

推送文件,然后将原始文件名(dir1 / .thisfile)添加到全局git.ignore 。现在,用户将始终拉出该文件,但显然会标记出一个出色的名称。如果他们想制作&#34;生产&#34;使用它(无论是什么),他们需要在本地将名称更改为原始名称。如果他们这样做,不用担心,它已经被忽略了。