2012-04-10 2 views
7

ls-tree과 동일한 방식으로 출력 할 수있는 방법을 찾고 있지만 작업 디렉토리에 있습니다. 내가 git ls-tree .을 실행할 때마다 fatal: Not a valid object name .git ls-tree 작업 디렉토리의 출력?

+0

'git ls-files' 아마도'-m'인가요? – Mikel

+1

git ls-tree -r HEAD –

답변

14

git ls-tree은 git refs에서만 작동합니다. ls-tree HEAD.

시도 git ls-files. -s 및/또는 -m 플래그가 필요합니다. 당신이 지적으로


git ls-files -s은 (개최 된 즉, 파일)을 인덱스에있는 파일을 나열합니다.

이론상으로는 색인을 엉망으로 만들 수 있으며 git ls-files -s을 실행 한 다음 복원 해보세요.

git commit 
git add . 
git ls-files -s 
git reset . 
git reset --soft HEAD^ 

간단한 테스트에서 작동하지만 모든 파일을 먹을 수 있습니다.

+0

고맙습니다. 나는 적절하게 말하면, 내가 요청한 것은 불가능하다고 생각한다. 그 이유는 작업 디렉토리에 파일에 해시 된 객체가 없기 때문입니다. 그러나 _index_에는'-s' 플래그를 사용하여 지적한대로 해쉬 된 객체가 있습니다. 이것은 정확히 같은 출력은 아니지만 다른 git 명령의 기능을 다시 작성하는 것을 원하지 않습니다. :) –

+0

당신이 암시하는 것처럼'-m'은 원하는 효과가없는 것 같습니다. 인덱스가 아닌 작업 디렉토리를 나열했습니다. 업데이트 된 답변보기 그리고 실제 데이터를 테스트하기 전에 테스트하십시오. :-) – Mikel

관련 문제