是否可以'git status`只修改文件?

chr*_*lee 153 git

是否可以git status只显示已修改的文件?

问题是我有太多的阶段文件,我不想提交或gitignore此刻,我不能向上滚动.我在Ubuntu上设置了回滚限制.

Lil*_*ard 247

你不能这样做git status,但你可以git ls-files -m用来显示所有修改过的文件.

  • 虽然这是公认的答案,但它的信息不准确.您可以使用`git status |''git status'仅修改文件" grep modified`正如user23186在他们的回答中所指出的那样. (11认同)
  • 对我来说,`git ls-files -m`除了`git status |之外没有显示任何内容 grep modified`正在运行. (8认同)
  • 正如其他人所知,这只会显示尚未被修改的文件. (5认同)
  • 这显示了已修改的文件和已删除的文件。 (4认同)
  • 正如其他人指出的那样,这仅显示未暂存的文件。如果您想同时显示未暂存和暂存的文件,这是我见过的最佳答案:/sf/answers/2799642611/ (2认同)
  • @thdoan 有许多显示暂存文件的选项,尽管这个特定问题似乎想明确排除暂存文件。`git diff --name-only --diff-filter=M HEAD` 将只显示暂存和未暂存的修改过的文件,不过你应该查看 `--diff-filter` 上的文档以查看你可能会使用的其他过滤器类型想补充。 (2认同)

Tom*_*old 51

它看起来git status -uno只显示git正在跟踪的文件,而不显示目录中的任何其他内容.不完全是你要求的,但也许完成同样的事情(得到一个可读长度的git轨道文件列表).

  • @TomNysetvold,您实际上可能是指`git status -uno`(http://stackoverflow.com/questions/7008546/command-git-status-u-no-filters-tracked-files-also) (2认同)

小智 28

git status -s | awk '{if ($1 == "M") print $2}'
Run Code Online (Sandbox Code Playgroud)

  • 或者`awk'$ 1 =="M"{print $ 2}'` (3认同)

小智 27

对于修改过的文件

git status | grep modified:
Run Code Online (Sandbox Code Playgroud)


Zer*_*iti 13

git diff --name-only --diff-filter=M

  • 我推荐那些过滤器:`git diff --cached --name-only --diff-filter = ACMR`,它添加,复制,修改和重命名文件. (2认同)

mpe*_*man 7

git diff --name-only 也有效.


Kar*_*hik 7

您可以使用

$ git status -uno 
Run Code Online (Sandbox Code Playgroud)

仅列出修改过的文件。


小智 6

要列出修改的文件,请使用:

git ls-files -m
Run Code Online (Sandbox Code Playgroud)

如果您只需要基本名称(无路径),则可以使用 xargs 将每个结果逐行通过管道传输到基本名称命令:

git ls-files -m | xargs -L 1 basename
Run Code Online (Sandbox Code Playgroud)


Tec*_*ndz 5

我正在寻找相同的信息,发现以下提供了修改后的文件:

git status -uno
Run Code Online (Sandbox Code Playgroud)

  • `git status -uno --porcelain` 为解析脚本添加了不错的输出 (4认同)