我只想获取暂存文件名的列表。我找不到--name-only
该git status
命令的等效标志。有什么好的选择?
文件列表将通过管道传递到php -l
(PHP lint语法检查器)。
解决方案:完整的命令
git diff --name-only --cached | xargs -l php -l
Answers:
接受的答案不会让您知道在那里进行了哪些更改。
是的,如果您不是语法检查程序,而是一个普通的人,而这个普通人的仓库中存储了未暂存的文件,并且您仍然想知道暂存的文件将发生什么情况,那么还有另一个命令:
git status --short | grep '^[MARCD]'
导致类似:
M dir/modified_file
A dir/new_file
R dir/renamed -> dir/renamed_to
C dir/copied_file
D dir/deleted_file
显然,此文件已上演,并且在之后git commit
:
deleted_file
将被删除,
new_file
将被添加,
renamed_file
将成为renamed_to
。
这是简短格式输出的说明:https : //git-scm.com/docs/git-status#_short_format
受@ coffman21的答案启发,我在自己的计算机中设置了以下别名.zshrc
alias gst="git status"
alias gst-staged="git status --short | grep '^\w'"
alias gst-unstaged="git status --short | grep '^\W'"
alias gst-unstaged-tracked="git status --short | grep '^\s'"
alias gst-untracked="git status --short | grep '^??'"
它可能对其他任何人有用。因此,将其添加到答案堆栈中。
查看具有代码更改的暂存文件
git diff --staged
或使用--staged的同义词--cached
git diff --cached
或仅查看文件名而不更改代码
git diff --staged --name-only