在Git中只暂存修改过的文件(不删除)的更简单方法

在Git中只暂存修改过的文件(不删除)的更简单方法,git,Git,我的工作分支中有一堆已删除的文件,我还不确定是否要提交这些文件。我需要根据需要提交修改过的文件 这就是我想到的: git add `git status | grep modified | cut -f2 | cut -f4 -d' '` 这个答案与此类似,但也不是更好: 那么有没有更简单的解决方案呢?只需使用git-add——不是全部。(git v.2.0+)或git-add.(git v.1.x)。这将拾取通过遍历当前目录可以找到的任何文件,其中自然不包括已删除的文件 当然,这也会拾取任何

我的工作分支中有一堆已删除的文件,我还不确定是否要提交这些文件。我需要根据需要提交修改过的文件

这就是我想到的:

git add `git status | grep modified | cut -f2 | cut -f4 -d' '`
这个答案与此类似,但也不是更好:

那么有没有更简单的解决方案呢?

只需使用
git-add——不是全部。
(git v.2.0+)或
git-add.
(git v.1.x)。这将拾取通过遍历当前目录可以找到的任何文件,其中自然不包括已删除的文件

当然,这也会拾取任何未跟踪的文件。如果需要避免这些,那么可以使用更复杂的表达式。它与您的类似,但它使用了用于编写脚本的输出(因此更稳定,更容易解析):


这个问题的重点并不简单,但从机械上讲,它不太可能破裂。接受。@Ziglr:git add.肯定更简单,只要你没有未跟踪的文件。但是,是的,我在存在未跟踪文件的情况下使用的命令并不简单,但更可靠。因为2.0+版本
git add.
也会选择删除的文件。旧式
git-add.
的新替代品是
git-add——不是全部。
注意
diff-files
与顶级git-repo目录相关,但
git-add
与当前目录相关。因此,如果您不在顶级目录中,此命令将不起作用。
git diff-files -z --diff-filter=M --name-only --relative | xargs -0 git add