2017-08-29 40 views
0

我有一个文件,该文件是在我的git:保存文件的Git仓库,而忽略本地修改/删除

dir1/.thisfile 

.thisfile内容是“你好” 现在我想,当用户做git clone他们有这个文件。 之后,我希望用户删除文件或编辑本地文件的内容,但我希望这被git忽略。

我该如何做到这一点? 我已将该文件放在我的.gitignore中,但是当我删除它或更改它时,它将被暂存。 Gitignore似乎只适用于那些不在我的gitrepo中的文件。

+0

检查文档:https://git-scm.com/docs/gitignore 它有很多有用的信息,您正在尝试做什么 –

+0

可能的重复:https:// stackoverflow。com/questions/3319479/can-i-git-commit-a-file-and-ignore-its-content-changes – ZeekHuge

+0

它是应用程序的配置文件吗? – CodeCaster

回答

0

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

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

...并且改变回来,如果/当需要与:

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

希望这会有所帮助。

+0

此解决方案是否适用于所有用户?我想找到一种克隆用户的方式会产生一个特定的文件(并且他们可以删除这个文件或者在他们的本地git中编辑这个文件),但是这个特定文件的所有变化都会被git忽略。原来仍然在Git回购 – DenCowboy

+0

好了,现在我明白了。我的解决方案适用于您的索引,所以我想它不能解决您的问题。这个IMO没有内置的解决方案,但我有一个想法,我会发布一个单独的答案。 –

0

如果您有该文件回购,无论是否在.gitigore中提及。每个克隆回购的用户都会得到该文件,但因为它在.gitigore上列出,所以他们不能再次提交它,除非它们从.gitigore中被删除。

因此,上传文件回购,并将其添加到.gitigore。如果你想跟踪本地文件check这个问题。

0

一般来说,如果您希望文件在全球范围内被忽略,请将其添加到全球回购git.ignore。我没有看到实施您的要求的内置方式,但您可以使用以下方法来完成。

在将文件dir1/.thisfile推入您的回购之前,将名称更改为例如。

DIR1/.thisfile.model

DIR1/.thisfile.example

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

推送文件,然后然后将原始文件名(dir1/.thisfile)添加到全局git.ignore。现在,用户将始终提取该文件,但会清楚地标出一个突出的名称。如果他们想要使用“生产”(无论如何),他们需要在本地将名称更改为原始名称。如果他们这样做,不用担心,它已经被忽略了。

相关问题