乐闻世界logo
搜索文章和话题

How can i git stash a specific file?

8 个月前提问
4 个月前修改
浏览次数73

5个答案

1
2
3
4
5

通常添加到我不想隐藏的索引更改,然后使用 --keep-index选项进行隐藏。

ba
git add app/controllers/cart_controller.php git stash --keep-index git reset

最后一步是可选的,但通常是您需要的。它从索引中删除更改。


警告

git stash --keep-index将所有内容推送到存储中,包括暂存的和未暂存的。--keep-index存储完成后,只保留索引。当您稍后弹出存储时,这可能会导致合并冲突。

2024年6月29日 12:07 回复

**编辑:**从 git 2.13 开始,有一个命令可以将特定路径保存到 stash: git stash push <path>。例如:

shell
git stash push -m welcome_cart app/views/cart/welcome.thtml

旧答案:

您可以使用git stash --patch(或git stash -p) 来完成此操作 - 您将进入交互模式,在该模式中您将看到每个已更改的块。n当您遇到要隐藏的文件时,用于y跳过您不想隐藏的文件,并q退出并保留剩余的文件。 a将把显示的帅哥和其余的帅哥藏在该文件中。

这不是最用户友好的方法,但如果您确实需要它,它可以完成工作。

2024年6月29日 12:07 回复

对于隐藏一个文件:

shell
git stash -- filename.txt

要在命令中给出消息而不是在提示时输入消息,请在文件部分之前添加 -m,例如git stash -m "stash-message" -- filename1.txt

对于存储多个文件:

shell
git stash -m "stash-message" -- filename1.txt filename2.txt…
2024年6月29日 12:07 回复

要添加到 svick 的答案中,该-m选项只是将一条消息添加到您的存储中,并且完全是可选的。因此,命令

shell
git stash push [paths you wish to stash]

是完全有效的。例如,如果我只想将更改存储在src/目录中,我可以运行

shell
git stash push src/
2024年6月29日 12:07 回复

如果您使用 Visual Studio 代码,则有一种更简单的方法来存储选定的文件。

  1. 确保您已经在 VSCode 中安装了GitLens扩展
  2. 转到源代码管理选项卡
  3. 选择您想要隐藏的文件
  4. 右键点击它,你会看到很多选项。单击**“隐藏更改”**

在此输入图像描述

  1. 现在它会要求您添加一些隐藏消息。添加易于理解的消息并按 Enter 键。

在此输入图像描述

2024年6月29日 12:07 回复

你的答案