如果文件被识别为未更改,如何强制Git提交文件

如果文件被识别为未更改,如何强制Git提交文件,git,Git,我有2个二进制文件,其中 完全一样大小 完全相同的修改日期 完全相同的创建日期 但是 不同内容 如果我用另一个文件替换一个文件, git无法将此文件识别为已更改 文件系统:NTFS,操作系统:Windows 7,Git版本:1.9.0 (我的解决方法是编辑此新文件以获得新的修改日期,但我保留相同的内容) 如何强制Git提交新文件?您可以随时这样做 git rm --cached <file> git add <file> git-rm——缓存 git添加 这会

我有2个二进制文件,其中

  • 完全一样大小
  • 完全相同的修改日期
  • 完全相同的创建日期
但是

  • 不同内容
如果我用另一个文件替换一个文件, git无法将此文件识别为已更改

文件系统:NTFS,操作系统:Windows 7,Git版本:1.9.0

(我的解决方法是编辑此新文件以获得新的修改日期,但我保留相同的内容)

如何强制Git提交新文件?

您可以随时这样做

git rm --cached <file>
git add <file>
git-rm——缓存
git添加

这会将新文件放入索引中,而不管以前有什么。

可能是您意外地为文件路径设置了“假定未更改”位

当“假定未更改”位处于启用状态时,Git将停止检查工作树文件是否存在可能的修改,因此您需要手动取消设置该位,以便在更改工作树文件时通知Git

要取消设置“假定未更改”位,请键入:

git update-index --no-assume-unchanged <file>
git更新索引——无假设不变

touch file.dat;git add file.dat
-基本上,强制git识别文件可能已更改,以便它能够准确地检查文件是否确实已更改…谢谢,这很快,可能也适用于SVN。我没有设置为“假定未更改”。好主意,但不幸的是,这并不能解决问题。谢谢,我会接受这一点,尽管这感觉更像是一个解决办法,而不是一个解决方案。与使用touch(twalberg建议)相比,我将使用touch,因为在“rm”和“add”之后,文件处于未备份状态,而在“touch”之后,文件处于未暂存状态。您确实添加了文件吗?它应该在
git rm--cached
之后取消跟踪,并在
git add
之后暂存。你说得对。git之后rm--cached:在git之后删除add:为提交而暂存或在触摸之后:不为提交而暂存取决于我想要得到什么,我将使用这两种方法之一。