我有一个"参数"在回购邮件中存档,我已将其添加到.gitignore
,因此未对其进行跟踪。
我需要将其推送一次,以便它在回购中显示,但确保不跟踪它。这是因为我会不断修改它(因为它存储输入参数),我只想要在回购中显示默认版本。
如果我git add --force my_params.dat
文件被推送,但它会被跟踪,这是我不想要的。
实现这一目标的正确步骤是什么?我倾向于避免使用git update-index --assume-unchanged FILE_NAME
,因为我觉得它模糊了跟踪过程,但我并不严格反对使用它。
如果我必须使用问题How to make Git "forget" about a file that was tracked but is now in .gitignore?中的答案,我需要:
从.gitignore
推送文件并更改了.gitignore
将参数文件重新添加到.gitignore
并按
使用git rm --cached -r .
使用git add .
重新添加所有文件并将其推送
这不起作用,因为当我按时,从repo中删除参数文件。那不是我需要的。
答案 0 :(得分:7)
我认为这不是通过git打算也不可能的。
我建议分层加载 paraemter 文件。您要么加载parameters.file
,要么加载paramters.default.file
。 paramters.default.file
保留在git中,而parameters.file
则被忽略。
想要调整参数的用户需要为此目的创建文件parameters.file
(或者您可以在某些制作/设置过程中自动执行该过程)。
答案 1 :(得分:2)
似乎已经添加了新功能来支持这种情况
git update-index --skip-worktree <file>
来源:https://stackoverflow.com/a/20241145/2436737
更多信息:Git - Difference Between 'assume-unchanged' and 'skip-worktree'