[英]Ignore tracked file changes
我有一个由 git 跟踪的文件config.txt
,它在git clone
上下载,但我不希望任何人更改并提交它,即如果有人更改该文件,我不希望他们的更改被跟踪因此提交 &不小心推了。
我仍然希望稍后能够添加config.txt
的潜在更改,但是以明确的方式(可能是git add -f config.txt
或其他)。
这样做的额外步骤也是不可取的,因此git update-index --skip-worktree
或git update-index --assume-unchanged
不是一个足够好的解决方案,因为它容易出现人为错误。
是否可以在 git 中这样做?
您不能忽略对 Git 中跟踪文件的更改。 Git 常见问题解答说明:
Git 没有提供执行此操作的方法。 原因是如果 Git 需要覆盖这个文件,例如在结帐时,它不知道对文件的更改是否宝贵并且应该保留,或者它们是否无关紧要并且可以安全地销毁。 因此,它必须采取安全路线并始终保护它们。
尝试使用 git 更新索引的某些功能是很诱人的,即假设不变和跳过工作树位,但这些不能正常工作,不应该以这种方式使用。
如果您的目标是使用配置文件,那么最好的做法是添加示例或模板文件,然后让用户将其复制到位或让脚本创建适当的文件。 然后,您应该忽略实际配置文件的位置,只签入示例或模板。
该问题的一种可能解决方案是在克隆存储库后“跳过”跟踪文件:
git update-index --skip-worktree <path-name>
不利的一面是,这需要所有用户在克隆存储库后执行额外的步骤,因此您可以将其添加到您的README
中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.