【问题标题】:How to force Git to commit a file if it is recognized as unchanged如果文件被识别为未更改,如何强制 Git 提交文件
【发布时间】:2014-03-26 15:59:40
【问题描述】:

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

  • 大小一模一样
  • 修改日期完全相同
  • 创建日期完全相同

但是

  • 不同的内容

如果我用另一个文件替换一个文件, git 不会将此文件识别为已更改。

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

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

如何强制 Git 提交新文件?

【问题讨论】:

  • touch file.dat; git add file.dat - 基本上,强制git 识别文件可能已更改,以便准确检查它是否真的已更改...
  • 谢谢,这很快,可能也适用于 SVN。

标签: git


【解决方案1】:

你总是可以的

git rm --cached <file>
git add <file>

这应该将新文件放入索引中,而不管以前存在什么。

【讨论】:

  • 谢谢,我会接受这个,尽管这感觉更像是一种解决方法而不是解决方案。将此与使用触摸(由 twalberg 提出)进行比较,我将使用触摸,因为在 'rm' 和 'add' 之后,文件处于状态 unstracked ,而在 'touch' 之后,文件处于状态 未上演。
  • 你真的添加了文件吗?它应该在git rm --cached 之后未跟踪,在git add 之后暂存
  • 你是对的。在 git rm --cached 之后:要删除 在 git add 之后:为提交暂存 OR 在 touch 之后:不为提交暂存 根据我想要获得的内容,我将使用两者之一。
【解决方案2】:

也许你不小心为文件路径设置了“假设不变”位。

当“假设不变”位打开时,Git 停止检查工作树文件是否有可能的修改,因此您需要手动取消设置该位以告诉 Git 当您更改工作树文件时。

要取消设置“假设不变”位,请键入:

git update-index --no-assume-unchanged <file>

【讨论】:

  • 我没有设置为“假设不变”。好主意,但不幸的是这并不能解决问题。
猜你喜欢
  • 2020-03-13
  • 1970-01-01
  • 2021-06-28
  • 2021-09-14
  • 2018-06-29
  • 2016-07-05
  • 2017-02-19
  • 1970-01-01
  • 2015-11-29
相关资源
最近更新 更多