“hg cat”또는 “svn cat”의 git에 해당 최신 버전의

git 저장소에 보관 된 최신 버전의 파일 사본을 추출하여 일부 처리를 위해 스크립트에 전달하고 싶습니다. svn 또는 hg에서는 “cat”명령을 사용합니다.

지정된 개정판에있는 그대로 지정된 파일을 인쇄합니다. 개정이 제공되지 않으면 작업 디렉토리의 상위가 사용되고 개정이 체크 아웃되지 않은 경우 팁이 사용됩니다.

(hg 문서의 hg cat에 대한 설명에서 발췌)

git로이 작업을 수행하는 동등한 명령은 무엇입니까?



답변

git show rev:path/to/file

여기서 rev 는 개정판입니다.

git 및 svn 명령 비교는 http://git.or.cz/course/svn.html 을 참조하십시오 .


답변

다음과 같이 실행할 수있는 “git cat-file”이 있습니다.

$ git cat-file blob v1.0:path/to/file

여기서 ‘v1.0’을 원하는 브랜치, 태그 또는 커밋 SHA로 바꾼 다음 ‘path / to / file’을 저장소의 상대 경로로 바꿀 수 있습니다. 원하는 경우 ‘-s’를 전달하여 콘텐츠의 크기를 확인할 수도 있습니다.

이전에 언급 한 ‘show’가 거의 동일한 작업을 수행하지만 익숙한 ‘cat’명령에 더 가깝습니다.


답변

git show찾고있는 명령입니다. 문서에서 :

   git show next~10:Documentation/README
          Shows the contents of the file Documentation/README as they were
          current in the 10th last commit of the branch next.


답변

또한 브랜치 이름으로 작업하십시오 (1st p의 HEAD와 같은) :

git show $branch:$filename


답변

사용 git show에서와 같이, git show commit_sha_id:path/to/some/file.cs.


답변

github에 있는 git cat shell 스크립트를 작성했습니다.


답변

직접적인 대체물 이없는 것 같습니다 . 이 블로그 항목최신 커밋을 결정한 다음 해당 커밋의 파일에 대한 해시를 결정한 다음 덤프 하여 동일한 작업을 수행하는 방법을 자세히 설명합니다 .

git log ...
git ls-tree ...
git show -p ...

(블로그 항목에 오타가 있으며 위의 명령을 명령과 함께 사용 svn)