30

我使用 TortoiseGit 1.8.3。我更改了其中一个文件:Makefile,但我不想在 Git Commit 中每次都将它提交给我。我将它添加到“删除并添加到忽略列表”中,但它没有帮助。如何使提交中未提供我已更改的某些文件?

我想要,Makefile 在远程存储库中是只读的,我可以在本地编辑它,然后 TortoiseGit 不向我提供提交它。

我想要的 Git-bash:https ://www.kernel.org/pub/software/scm/git/docs/git-update-index.html

4

4 回答 4

64

TortoiseGit 1.8.15,Git 2.6.1 的答案。无需回到命令行,所有功能都可以直接在 TortoiseGit 中使用。我试图总结如何访问此功能的各种方式。我假设读者知道“假设不变”是什么意思。这是有关此功能的简单文档。--assume-unchanged或关于git ls-files的原始文档。


将文件标记为“假定未更改”

Tortoisegit中有三种可能性:在Commit对话框中,Working Tree对话框(检查修改)或Log Messages对话框中(仅在Working dir changes选择条目时)。从这些对话框之一执行以下操作:

  • 右键单击文件并选择条目Assume Unchanged


Windows 资源管理器中的任何文件列表执行以下操作:

  • 右键单击文件并选择属性
  • 转到Git标签
  • 勾选条目Assume valid/unchanged

从文件中删除“假设不变”标志(撤消上述操作):

TortoiseGit只允许从工作树对话框中删除标志(检查修改)。

  • 在对话框的左下角:确保勾选选项Show ignore local changeds flagged files
  • 所有带有assumed validorskip worktree标志的文件都将显示在正常更改的文件下方
  • 右键单击文件并选择Unflag as skip-worktree or assume-unchanged


Windows 资源管理器中的任何文件列表执行以下操作:

  • 右键单击文件并选择属性
  • 转到Git标签
  • 取消勾选条目Assume valid/unchanged
于 2015-10-29T11:09:46.080 回答
30

如果我正确解释了这个问题,Alex 想知道如何撤消--assumed-unchanged使用 Tortoise Git 完成的操作。

你不需要使用命令行 Git 来解决这个问题:

  1. 导航到您在 Windows 资源管理器中执行此操作的文件,
  2. 右键单击并选择属性,
  3. 选择 Git 选项卡,您应该会在“假定有效/未更改”旁边看到一个复选框。
  4. 取消选中它,它不会被向前的提交忽略。

在此处输入图像描述

于 2014-03-12T17:06:27.887 回答
7

批准的答案很好,但如果您在这里寻找对话和选项,您会得到一个简短的帮助:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

于 2019-06-01T13:22:40.150 回答
3

如果它没有帮助,那么您需要转到命令行界面,并检查:

我想要,Makefile 在远程存储库中是只读的,我可以在本地编辑它,然后 TortoiseGIT 不向我提供提交它。

这是不同的:

你需要:

git update-index  --really-refresh --no-assume-unchanged Makefile

这将使任何本地修改对Makefilegit “不可见”,同时保持Makefile在源代码控制之下。

如果您希望您的本地修改器抵抗 agit reset,请执行;

git update-index --skip-worktree Makefile
于 2013-05-28T05:35:08.130 回答