2012-03-28 3 views

답변

7

서로의 의미가 무엇인지 모르겠지만 개별 목록 (예 : 모든 수정 된 파일)을 원하면 git ls-files에 올바른 플래그 (수정 된 파일은 -m)를 사용할 수 있습니다. 이 모든 정보를 한꺼번에 원하면 git status --porcelain을 사용하여 스크립트 해석이 가능한 상태 출력을 얻을 수 있습니다.

+0

힘내 상태가 원격 저장소에 추가 된 새 디렉토리/파일을 나열하지 않습니다. 그거야? – Jean

+0

@alertjean : "새로운"이란 무엇을 의미합니까? 그들은 untracked입니까? 추가되었지만 커밋되지 않았습니까? 그들은 무엇인가? –

+0

감사합니다, 이것은 내가 찾고있는 것입니다. 이제는 할 수 있습니다. 'geany $ (git ls-files -m)' – mwfearnley

9

은 당신이 아마 원하는 것은 같은 것입니다 :

git fetch  # update what you know about the remote repo 
git diff --name-status master origin/master 

그러나 당신이 당신의 질문에서 diff를 할 정확히 지사에게 꽤 어렵다. 이 작업을 수행하는

7

한 가지 방법은 whatchanged 명령입니다 :

$ git whatchanged 

이 각 트리에서 커밋뿐만 아니라 세부 사항을보고 할 수 있습니다에 대해 변경하는 파일을 보여줍니다. 예를 들어 자식 상태 --porcelain

을 사용 git help whatchanged

23

이 파일을 나열하는 가장 좋은 방법을 살펴보십시오 : 를 이전에 삭제 된 파일을 제거하려면 :

git status --porcelain | awk 'match($1, "D"){print $2}' | xargs git rm 
+0

끝에있는 마지막 파이프를 제거하는 것은 삭제 된 파일을 나열하는 좋은 방법입니다. 매우 긴 git 상태이고 특정 상태를 걸러 내고 싶을 때 유용합니다. – IanVS

5

를 사용하여 건조 실행 (git add의 -n) 옵션 : 명령 01

git add -A -n

+0

그래, 그게 내가 원했던 그거야! – Doug

1

사용 태그

예 : 커밋과

git diff v1.0.1 v1.0.2 --name-status 

예 :

git diff b79810fc4d be69e41d1c --name-status 

는 자신의 상태와 모든 업데이트 된 파일 목록이 표시됩니다 : M이 - D 수정은 - A 삭제 - 추가

0

받는 사람 다만 현재 변경된 파일의 이름과 상태를 파일을 얻을 당신은 간단하게 할 수 있습니다

git diff --name-status

이 같은 베어 출력을 얻을 것이다 : 이제

M  a.txt 
M  b.txt 

, 파이프 cut에 출력이 압축을 풉니 다 두 번째 열 :

git diff --name-status | cut -f2

그런 다음 당신은 그냥 파일 이름이있을 것이다 :

a.txt 
b.txt 
관련 문제