如何在提交中提供我已更改的某些文件?

时间:2013-05-27 20:11:28

标签: tortoisegit

我使用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 个答案:

答案 0 :(得分:49)

回答TortoiseGit 1.8.15,Git 2.6.1。无需恢复命令行,所有功能都可直接在TortoiseGit中使用。我试图总结一下这个函数可以访问的各种方法。 我假设读者知道“假设未改变”意味着什么。 Here is easy documentation关于此功能。或者有关--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 validskip worktree标记的文件都会显示在正常更改的文件下方
  • 右键单击该文件,然后选择Unflag as skip-worktree or assume-unchanged


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

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

答案 1 :(得分:29)

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

您不需要使用命令行Git来解决此问题:

  1. 导航到您在Windows资源管理器中执行此操作的文件
  2. 右键单击并选择“属性”,
  3. 选择Git选项卡,您应该会看到&#34旁边的复选框;假设有效/未更改"。
  4. 取消选中它,不会因为前进的提交而被忽略。
  5. enter image description here

答案 2 :(得分:3)

如果没有用,那么你需要转到命令行界面,然后检查:

  

我想,Makefile在只读的远程存储库中,我可以在其中编辑它,然后TortoiseGIT不提供给我提交它。

这是不同的:

你需要:

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

这将使Makefile的任何本地修改对git保持不可见,同时将Makefile置于源代码管理之下。

如果您want your local modifs to resist a git reset,请执行;

git update-index --skip-worktree Makefile

答案 3 :(得分:0)

批准的答案很好,但是如果您正在寻找此处的对话和选项,则有个简短帮助:

enter image description here enter image description here enter image description here