仅存储部分当前已修改的文件

21

我有很多变更的文件,想要仅存储其中一些已修改的文件。

比如,我的代码库大致如下:

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

      modified: main.cpp
      modified: MyClass.h
      modified: MyClass.cpp

我想只存储MyClass.hMyClass.cpp这两个文件。

我找到了这个问题,但被接受的答案似乎是错误的,得票最多的答案需要交互地添加每个hunk /文件。

有没有一种简单的方法来存储特定的一组文件? 最好是通过单个命令完成,而无需交互式地逐个选择文件或暂存/取消暂存东西。


你看过 https://stackoverflow.com/q/49886083/2541573 吗? - jub0bs
1
我还没有,但这仍然需要你交互地选择一组更改在 git stash --patch 中,对吧? - Increasingly Idiotic
1个回答

45

我发现git stash push可以很容易地存储多个文件。

要从示例中stash文件,命令如下:

 git stash push MyClass.h MyClass.cpp

哪个储存了MyClass.hMyClass.cpp,但不管main.cpp.

这个答案的编辑中发现。


1
不错的发现。我之前忽略了git stash push - jub0bs
4
“git stash push -- <paths>” 很好用,但要小心使用:它有一个恶性的问题会移除未被追踪的文件,在 Git 2.16.2 之前没有修复。 - torek
这也建议在你的问题中链接到的QA中:https://dev59.com/m3A75IYBdhLWcg3w6Nhj#45693541 - 1615903
1
也适用于目录 git stash push lib/ - Adverbly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接