Git-暂时忽略对文件的微小更改

我正在寻找一种“隐藏”对Git中的几个文件所做的细微更改的方法,以便在对这些文件进行其他更改之前它们不会以git状态显示。

示例:我有一个Java文件,唯一的更改是删除了未使用的导入(贡献者在提交之前忘记了运行组织导入)。 现在,我删除了该导入,更改(显然)显示在git中。 由于我对该文件没有其他更改,因此我真的不喜欢将文件作为另一个(不相关的)更改的一部分提交或独立提交此更改。 当然,我可以还原更改,并且仅在需要对该文件进行更改时才应用它,但是我可能“有风险”忘记它。

是否存在用于此类任务的命令? 它会像假定不变的命令那样工作,但不是永久的。

如果没有这样的命令可用,正确的解决方法是什么?

提前致谢。

Zelgadis asked 2020-07-14T01:41:39Z
4个解决方案
62 votes

在我的用例中(在我的个人计算机上使用编辑的配置文件进行开发,在配置不变的另一台计算机上运行),这是我的解决方案:

开始忽略对文件的更改:

git update-index --assume-unchanged path/to/file

继续跟踪:

git update-index --no-assume-unchanged path/to/file
benroth answered 2020-07-14T01:42:12Z
5 votes

只是不要添加琐碎的更改。

最好在提交之前仔细检查添加的内容。

您甚至可以忽略文件中的某些更改,而使用添加

git add -p.

如果您使用gitx(R),则更加容易。

nes1983 answered 2020-07-14T01:42:47Z
3 votes

将尚未准备好的更改保留在单独的分支中。 git merge --no-ff这个分支根据需要在主要历史中进行了新的更改。

无论是正在进行的开发,还是临时的东西,甚至是永不包含在主要项目历史中的东西,同样的过程也同样有效。

是否/何时准备将分支的更改包括在主要历史记录中; 合并。如果没有,请将其保留在单独的分支中并继续进行基础调整。

(旁注:git merge --no-ff可能用于创建合并提交,即使可以进行快速合并-根据您的项目规则,这可能更可取)

jsageryd answered 2020-07-14T01:43:20Z
0 votes

有多种方法[虽然可能不干净整洁,但需要引起您的注意]

  1. 将相关文件添加到您的仓库中的.gitignore中,这样就不会显示要提交的文件。 准备提交文件时,请小心从git stash save中删除此文件
  2. 确保在提交其余更改时不要“暂存”文件。 您可能希望在git stash save上写一个包装程序,以确保像git stash popgit add .这样的命令都可以在除所涉及文件之外的所有文件上运行。 另一种选择是使用git guigit citool,在这里您可以直观地确保文件不在“暂存”区域中,因此永远不会提交
  3. 另一种方法是提交所有“可提交的”更改,然后提交唯一的工作文件git stash save。 稍后,当您准备更改文件时,可以git stash pop,然后继续工作并提交。

希望有帮助:)

Anshul answered 2020-07-14T01:43:59Z
translate from https://stackoverflow.com:/questions/13442130/git-temporarily-ignore-trivial-changes-to-files