当前位置: 首页 > 知识库问答 >
问题:

git 提交 .忽略假设不变 [重复]

白迪
2023-03-14

我有一个文件,我已在签出时标记为假设不变。大多数命令(例如,diffadd./code>、commit-a)都遵守这一点,但出于某种原因,该命令似乎忽略了标志:

git commit .

这是个bug吗?如果没有,在这种情况下有没有一个标志来改变git的行为?

(我在 2.25.1 中的 git 版本,这应该很重要。


共有1个答案

于恺
2023-03-14

Git的假设不变标志用于提高具有缓慢lstat(2)调用的系统的性能。当您设置此位时,您promise根本不会更改文件。如果您正在更改文件,那么您必须取消设置该位以通知Git它已更改。这只是性能优化。

如果您尝试忽略对跟踪文件的更改,Git 常见问题解答非常清楚这是不可能的:

Git没有提供这样做的方法。原因是,如果Git需要覆盖这个文件,比如在结帐时,它不知道对文件的更改是珍贵的,应该保留,还是无关紧要的,可以安全地销毁。因此,它必须走安全的路线,并始终保存它们。

尝试使用 git update-index 的某些功能很诱人,即假设不变和跳过工作树位,但这些不能为此目的正常工作,不应该以这种方式使用。

常见问题解答为配置文件推荐了一种方法:

如果您的目标是修改配置文件,将文件签入存储库通常会很有帮助,存储库是一个模板或一组默认值,然后可以根据需要进行复制和修改。第二个修改过的文件通常被忽略,以防止意外提交。

 类似资料:
  • 我已经读了几遍这方面的文档,我仍然不能完全理解这些不同命令之间的区别。也许这只是我,但是文档可以更清晰: http://git-scm.com/docs/gitignore https://help.github.com/articles/ignoring-files 此外,许多关于这一主题的评论似乎使用了“索引”、“promise”和“跟踪”这几个词,这使得这三个词之间的区别不那么明显。 我目前

  • 当本地文件变更以后,可以通过VCS —> Git —> Commit File 弹出提交变更窗口. 当然,分支合并过后也会弹出提交变更窗口. 配置提交信息 提交变更窗口中你可以选择Change list,也可以选择要提交的变更文件,默认是全选的. 在Author中选择或者输入作者名字.选择Amend commit(修订提交)会在Commit Message中添加上一次的提交信息. 在提交之前,你还

  • 问题内容: 我正在使用此代码来计算忽略周末的两个日期之间的差异: 我还有一个名为table1的表,其中存在“日期”列(其类型为“ DATE”),其中记录了假期的所有日期。 示例表1: 我正在尝试使我的代码检查该表,并且如果一个日期在上面的两个日期之间,则它在输出中为-1天。 问题答案: 如果将其划分为以下任务,则应该很容易: 生成所有使用两个给定日期之间的日期 行生成 方法如图所示。 忽略周末的日

  • 我的文件似乎被Git忽略了-文件是否已损坏?Git期望哪种文件格式、区域设置或区域性? 我的: 的输出: 我希望和不出现在“未跟踪文件”列表中。 我应该从哪里开始寻找解决这个问题?

  • 问题内容: 我有一个使用Subversion进行版本控制的设置文件。每个人都有该文件的副本,我需要永远不要提交它。但是,就像我说的那样,已经有一个副本受版本控制。我的问题是: 如何在不删除每个人的文件的情况下从版本控制中删除此文件,然后将其添加到忽略列表中,以使其不会提交? 我正在使用linux命令行svn。 问题答案: 进行干净签出,然后添加忽略文件。然后提交。其他所有人都必须小心(一次),下次

  • 我正在尝试撤消提交并复制提交,但当我使用时 (有人向我解释)出现了这个问题:更多?当有人向我解释的时候。声明没有提到。这意味着什么?我需要添加其他东西来撤销我的提交吗?