我有一个配置文件,我想保留在远程存储库中,但我不想在我的计算机上跟踪它的更改。将它添加到.gitignore并不能解决问题。
我不想跟踪更改的原因是因为根据环境的不同,计算机应该有所不同。
答案 0 :(得分:83)
如果您想暂时停止跟踪文件,仍可以使用
git update-index --assume-unchanged <file>
// track changes again :
git update-index --no-assume-unchanged <file>
答案 1 :(得分:10)
如果是这种情况,则根本不应该对文件进行版本控制;你应该版本化该文件的模板。例如,如果配置文件是foo/config.txt
,那么您应该在存储库中具有带有示例(或空白)配置设置的版本化foo/config.txt.template
。 foo/config.txt
根本不应该在存储库中,应该使用.gitignore
忽略。
然后,在新克隆中,您只需将foo/config.txt.template
复制到foo/config.txt
并根据需要更改设置。
答案 2 :(得分:0)
您可以提交所有其他文件,并且仅对本地配置进行更改,您可以使用git提供的'stash'功能。
答案 3 :(得分:0)
您需要组合.gitignore文件和git rm --cached。 使用以下命令:
git rm --cached filename.txt
这将从索引中删除文件,但它会将其保存在您的存储库和工作区中。 应用rm --cached后,您需要提交更改才能生效。它会在您跟踪的更改中显示为已删除,但这只是因为它已从索引中删除。 注意:如果在将来的提交中再次对其进行更改,则必须运行:git rm --cached以从特定提交中取消对文件的更改。