2

我暂时想为某个提交删除一些文件并运行:git update-index --assume-unchanged file_name在一堆文件上。

然后我关闭了终端,是否有办法取回我运行git update-index命令的文件的名称,以便我可以--not-assume-unchanged在它们上运行?

4

3 回答 3

4

要进一步扩展 Richard Michael 的答案,您可以简单地在 ls-files -v 输出的行首用 grep 查找小写字母

git ls-files -v|grep ^[a-z]

将只显示您假定未更改的文件

于 2013-06-05T20:05:08.463 回答
3

只需在树中的所有文件上运行它。默认是不假设不变。

你为什么首先运行它?如果要从提交中排除文件,只需git add手动运行所需的文件即可git commit。如果您将-a标志传递给,您只会获得所有修改过的文件git commit,所以不要这样做。

于 2012-09-17T19:59:22.683 回答
3

注意,我使用的是git --version1.8.1.2。

您可以通过以下方式确定为索引中的文件设置的位:git ls-files -v. assume-unchanged具有位集的文件具有小写标签。

不要将它与S对应于skip-worktree位的标记混淆(看起来s好像文件设置了assume-unchanged位)。

请参阅和选项部分git help update-index中有关标签本身的讨论。-t-v

例如:Gemfile已经skip-worktree 设置,我们还要设置assume-unchanged

$ git ls-files -v|grep Gemfile
S Gemfile
$ git update-index --assume-unchanged Gemfile
$ git ls-files -v|grep Gemfile
s Gemfile
于 2013-02-13T16:27:57.467 回答