git 상태가 준비된 파일 만 표시하도록하는 방법


86

준비된 파일 이름 목록 만 얻고 싶습니다. 나는의 해당 플래그를 찾을 수 없습니다 --name-only에 대한 git status명령. 좋은 대안은 무엇입니까?

파일 목록은 php -l(PHP lint 구문 검사기) 로 파이프됩니다 .

솔루션 : 완전한 명령

git diff --name-only --cached | xargs -l php -l

3
해당 명령을 수동으로 실행하는 경우 사전 커밋 후크에 넣는 것처럼 들립니다. kernel.org/pub/software/scm/git/docs/githooks.html
MatrixFrog 2010

답변:


130

사용 git diff --name-only( --cached스테이징 된 파일을 가져 오기 위해 사용 )


14

받아 들여진 대답은 어떤 종류의 변경 사항 이 있었 는지 알려주지 않습니다 .

예, 구문 검사기가 아니라 준비되지 않은 파일로 가득 찬 저장소를 가진 평범한 사람이고 준비된 파일에 어떤 일이 발생하는지 여전히 알고 싶다면 다른 명령이 있습니다.

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


1. 내 버전 (2.25.0.windows.1)에서 "M"과 "D" 앞에 공백이 있습니다. 2. 다른 상태도 있습니다- "??" 어떻게 해석해야할지 모르겠습니다.
itsho

@itsho 공간은 그것이 준비되지 않았 음을 나타냅니다. 이 대답은 줄의 첫 번째 문자와 일치하기 때문에 정확합니다. 첫 번째 문자가 설정되면 준비된 파일입니다. 공백이면 무시됩니다.
Avner

1
이것은 천재입니다! -비슷한 일에 대한 git 플래그가 있어야합니다
Norfeldt

4

@ 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 '^??'"

다른 사람에게 유용 할 수 있습니다. 따라서 답변 스택에 추가하십시오.


1
일관된 색상을 위해 당신은 추가 할 수 있습니다 .처럼, 모두 2 초기 문자 색상을, 그렙에서 : grep '^\w.', grep '^\W.',grep '^\s.'
geekley

하지만 마지막 것은 필요 없습니다. 이미 두 개의 문자가 있습니다??
geekley

이제 수정되었습니다. 다시 한 번 감사드립니다
Norfeldt

0

코드 변경 사항이있는 스테이징 된 파일보기

git diff --staged   

또는 --staged와 동의어 인 --cached 사용

git diff --cached

또는 코드 변경없이 파일 이름 만보기

git diff --staged --name-only  

git-diff 매뉴얼

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.