只推送某些文件一次

Only push certain files once

我有一个 git 服务器存储库。 该服务器需要一些文件,但这些文件只需推送一次。 因此,当有人编辑它时,不必将其推送到 github,但当有人下载​​存储库时,他们应该得到未编辑的文件。

服务器需要这些文件到运行,但是对于每个人来说这些文件都是不同的,这就是为什么我不希望它再次被推送。

我该怎么做?

这些文件更改应该被 git 远程存储库忽略,因为它们需要本地管理。您必须将这些文件的路径添加到 .gitignore 文件。如果您已经提交并推送了文件的原始版本,当有人克隆存储库时,它将收到原始文件,没有任何本地更改。

How to add gitignore file

How to ignore certain files

如果您还没有提交文件,我会说将文件名添加到您的 .gitignore 文件中,例如:

<filename>.<extension>

所以如果文件是 package.json:

package.json

通配符可以使用 *

*.json

或如 AoeAoe 所述:您可以稍后使用 git add --force 添加文件以否决 .gitignore 文件。

现在,如果你的文件内容只是 10 条配置规则,我会说:用它创建一个模型并将其写在你的 readme.md 中,并指示你的同事创建他们的自己的,否则,您应该遵循更新部分中的建议。

更新:Edward Thompson 所述:.gitignore 不适用于上传的文件 你将被迫使用 git update-index

强制文件不更新:

git update-index --assume-unchanged path/to/file

再次启用更新:

git update-index --no-assume-unchanged path/to/file

最好从索引[1]中删除文件:

git rm --cached <file>

.gitignore 的目的是从不跟踪,也从不首先将文件添加到索引。

[1] Making git "forget" about a file that was tracked but is now in .gitignore