Git 正在删除一个被忽略的文件
几天前,我注意到有一个提交的文件在.gitignore中也被忽略了。这是该站点的主配置文件,我的开发副本不知何故已经提交 为了删除该文件,我创建了一个commit,删除了.gitignore中的行,并删除了相关文件。然后我创建了另一个提交,将.gitignore行添加回Git 正在删除一个被忽略的文件,git,gitignore,Git,Gitignore,几天前,我注意到有一个提交的文件在.gitignore中也被忽略了。这是该站点的主配置文件,我的开发副本不知何故已经提交 为了删除该文件,我创建了一个commit,删除了.gitignore中的行,并删除了相关文件。然后我创建了另一个提交,将.gitignore行添加回 但是现在,每当这些提交应用到某人的环境时,他们忽略的配置文件就会被删除!我如何修复回购协议,使其不再发生?你真的不能。如果您当前的头提交跟踪该文件并将其包含在内,而后续的提交没有跟踪该文件,那么Git将通过删除该文件来应用此差异
但是现在,每当这些提交应用到某人的环境时,他们忽略的配置文件就会被删除!我如何修复回购协议,使其不再发生?你真的不能。如果您当前的头提交跟踪该文件并将其包含在内,而后续的提交没有跟踪该文件,那么Git将通过删除该文件来应用此差异,因为这就是历史记录中发生的情况。如果要保存该文件,可以在签出新版本之前临时重命名它,以防止Git删除它,也可以使用
Git checkout oldcommit--config.file
签出它的旧版本
.gitignore
文件的作用不是阻止在存储库中添加或删除任何内容。它只影响Git检测未跟踪文件的机制,例如,通过从Git status
的输出中隐藏被忽略(但未跟踪!)的文件。但这不会阻止您明确地从存储库中添加或删除文件
也就是说,您不必从
.gitignore
中删除该行即可从存储库中删除该文件。您可以使用git rm--cached config.file
来取消跟踪它;无需物理删除该文件,也无需触摸gitignore。如果该文件已在您的存储库中,我将检查: