Git 如何推一次且不追踪?
我想将config.js像默认配置一样推送到repo。但当我推它时,添加到gitignore,当我尝试拉它时,它会删除我的config.js。如何正确操作?将包含config.js的提交推送到远程repo后,您可以告诉Git停止检查更改,方法是:Git 如何推一次且不追踪?,git,github,gitlab,Git,Github,Gitlab,我想将config.js像默认配置一样推送到repo。但当我推它时,添加到gitignore,当我尝试拉它时,它会删除我的config.js。如何正确操作?将包含config.js的提交推送到远程repo后,您可以告诉Git停止检查更改,方法是: git update-index --skip-worktree path/to/config.js 如果您想稍后提交对它的一些更改,您需要首先告诉Git重新开始检查它,方法是: git update-index --no-skip-worktree
git update-index --skip-worktree path/to/config.js
如果您想稍后提交对它的一些更改,您需要首先告诉Git重新开始检查它,方法是:
git update-index --no-skip-worktree path/to/config.js
请注意,这只适用于您的本地存储库―克隆repo的每个人都必须运行相同的命令才能停止跟踪对config.js文件的更改,这可能是问题,也可能不是问题
一种常见的替代解决方案是这种方法,即在单独的文件(例如config.js.default)中提交默认配置,并使用脚本将该文件复制并重命名为config.js(如果该文件不存在)。将包含config.js的提交推送到远程repo后,您可以告诉Git停止检查更改,方法是:
git update-index --skip-worktree path/to/config.js
如果您想稍后提交对它的一些更改,您需要首先告诉Git重新开始检查它,方法是:
git update-index --no-skip-worktree path/to/config.js
请注意,这只适用于您的本地存储库―克隆repo的每个人都必须运行相同的命令才能停止跟踪对config.js文件的更改,这可能是问题,也可能不是问题
一种常见的替代解决方案是这种方法,即在单独的文件(例如config.js.default)中提交默认配置,并使用脚本将该文件复制并重命名为config.js(如果该文件不存在)。我建议另一种解决方案: 将config.js添加到.gitignore,并将其从repo中完全删除 将config.js.template文件添加到repo中,并使用默认值 在自述文件中,也可能是安装脚本的一部分,让其他用户将config.js.template复制到config.js并填写其值 这样,您就不会错误地将更改添加到config.js中,并将其创建作为引导过程的一部分
<> P>有一种方法告诉Git对一个文件进行不变的处理,但我认为在与它格格不入之后不值得。 < P>我提出另一个解决方案: 将config.js添加到.gitignore,并将其从repo中完全删除 将config.js.template文件添加到repo中,并使用默认值 在自述文件中,也可能是安装脚本的一部分,让其他用户将config.js.template复制到config.js并填写其值 这样,您就不会错误地将更改添加到config.js中,并将其创建作为引导过程的一部分
<> P>有一种方法告诉Git对待一个文件没有变化,但我认为它不值得在它摔跤之后。 < P>一个解决方案,更接近手到您的尝试解决方案,虽然我不会真正推荐的是使用:
git update-index --assume-unchanged <file>
请记住,这些更改不会传播到远程设备。因此,对于每个克隆,您都必须明确地告诉git假定文件没有更改。一个与您尝试的解决方案更接近的解决方案,尽管我并不真正推荐使用:
git update-index --assume-unchanged <file>
请记住,这些更改不会传播到远程设备。因此,对于每个克隆,您都必须明确地告诉git假定某个文件没有更改