깃 (git) 명령을 신속시작 오래된 버전의 파일을 볼 수 있나요?

깃 (git) 을 볼 수 있나요 (command) (통칭 '또는' 또는 '$ $ 편집기에는 호출기는 덤프했습니다 stdout 에') 특정 버전의 특정 파일?

질문에 대한 의견 (1)

'쇼' 깃 (git) 을 사용할 수 있습니다.

$ git show REVISION:path/to/file

복귀시킴 수정번호 본인의 실제 수정번호 (이상이 될 수 있으며 Git 커밋합니다 SHA, 태그 이름, 분기로의 이름, 이름, 또는 다른 방법으로 상대 커밋합니다 커밋합니다 깃 (git) 에서 확인)

예를 들어, '에서' 4 전 버전의 파일을 보려면 src/main.c 커밋한 사용합니다.

$ git show HEAD~4:src/main.c

참고로, 패스 루트를 리포지토리를) 의 경우를 제외하고, 또는 ./ 상대 경로를 나타내십시오 ./ 시작됩니다. 심지어 Windows 용 git 슬래시 单捞磐啊 패스이므로 상대치 현재 디렉터리입니다. 자세한 내용은 맨페이지를 체크아웃합니다 장치당 '깃 (git) 표시'.

해설 (32)

이 일을 날짜별로 다음과 같습니다.

git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt

참고로, 여기서} {25-02-2013 에서 25-02-2013 '는' head@ &quot 헤드에게 &quot. 이 리포지토리를 (using 이 세로그) 이 아닌, 25-02-2013 이전 분기에 마지막 커밋합니다 &quot history".

해설 (6)

Gui 지스크 같은 경우 사용할 수 있습니다.

  1. 시작 지스크 호스트당:

지스크 /path/to/file

  1. 화면 위쪽에 있는 고르십시오 개전판이 의해 설명 또는 날짜. (예: 기본적으로 해당 수정번호, diff 화면은 아래 부분에 해당하는 &quot patch"; 라디오 단추).

  2. 선택한 개전판이 파일을 볼 수 있습니다.

  • &Quot 클릭하여 tree"; 라디오 단추. 이렇게 하면 루트 파일 보기) 에 진단트리는 리비전입니다.
  • 데이터베이스에구성원을 드릴다운할 절실해졌습니다.
해설 (5)

'커밋합니다 해시라고 지정할 수 있습니다' (종종 커밋합니다 eschweiler-clarke 'ID') 를 '쇼' 명령을 깃 (git).

간단히 말해서

깃 (git) 쇼 ',' commithash&gt :/path/to/file &lt.

Step by step

  1. 로그 파일 변경 내용을 볼 수 있는 모든 주어진 2 와 ['git / path / to / 로그 파일']
  2. 변화를 보여주는 것이라고 볼 수 있는 '등', '목록니다 커밋합니다 해시라고 커밋합니다 06c98.' (06c98. 현재 커밋합니다 해시보다)
  3. 해시라고 커밋합니다 복사합니다를 ''
  4. 깃 (git) 을 사용하여 표시 ',' 명령 '실행하십시오 &lt commithash&gt :/path/to/file 커밋합니다 해시보다' 3 단계의 &; 이 'path / to / 파일' 의 1 단계.
  • Note:* 추가 지정할 때 중요한 것 같다 ', 즉' 표시 './ 상대 경로를 b2f8be577166577c59b55e11cfff1404baf63a84:./flight-simulation/src/main/components/nav-horiz.html 깃 (git)'.
해설 (3)

또한, s & # 39 라고 짐 헌지커

파일의 수정번호 로 내보낼 수 있습니다.

git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt > old_fileInCurrentDirectory.txt

이렇게 하면 좋겠네요:)

해설 (0)

깃 (git) - p '가 아니라' 로깅합니다 보여줄 뿐만 아니라 각 커밋합니다 커밋합니다 로깅합니다 diff (커밋한 병합해야 제외). 그런 다음 누름에 '/' 와 '입력하십시오. 파일_이름 누름에 입력하십시오.'. 누름에 'n' 또는 'p' 가 다음 / 이전 발생. 이 파일의 변경 내용을 볼 뿐만 아니라 하면 커밋합니다 정보.

해설 (2)
  • 빠르게 확인할 수 있는 이전 개정을 file:* 차이를 &gt. 깃 (git) 쇼 ',' &gt 피렌임.t스트 - 1 마지막 버전의 파일을 비교합니다

&gt. 깃 (git) 쇼 ',' &gt 피렌임.t스트 - 2 마지막 개전판이 비교할 2

&gt. 깃 (git) 쇼 ',' &gt 필나미.t스트 - 3 마지막 3rd 마지막 개전판이 비교할

해설 (1)

이렇게 모든 버전의 파일을 사용할 수 있습니다 스크립트입니다 덤프하기 위한 별도의 파일:

예:

git_dump_all_versions_of_a_file.sh path/to/somefile.txt

내려받습니다 [스크립트입니다 여기서요] (https://stackoverflow.com/a/32849134/26510) 를 또 다른 유사한 질문에 대한 답을

해설 (3)
  • Helper 를 통해 여러 개의 파일을 페치할 주어진 개정 *

충돌 할 때, 이 도우미 병합해야 해결하십시오 매우 유용합니다.

#!/usr/bin/env python3

import argparse
import os
import subprocess

parser = argparse.ArgumentParser()
parser.add_argument('revision')
parser.add_argument('files', nargs='+')
args = parser.parse_args()
toplevel = subprocess.check_output(['git', 'rev-parse', '--show-toplevel']).rstrip().decode()
for path in args.files:
    file_relative = os.path.relpath(os.path.abspath(path), toplevel)
    base, ext = os.path.splitext(path)
    new_path = base + '.old' + ext
    with open(new_path, 'w') as f:
        subprocess.call(['git', 'show', '{}:./{}'.format(args.revision, path)], stdout=f)

[깃허브 업스트림으로] (https://github.com/cirosantilli/dotfiles/blob/a3fd52dab644a481b1736724c4fac7afcfd78317/home/bin/git-show-save).

사용법:

git-show-save other-branch file1.c path/to/file2.cpp

결과: 다음 컨테인먼트하는 대체 버전의 파일:

file1.old.c
path/to/file2.old.cpp

이렇게 하면, 불평, 및 파일 확장명과 렉시한테서 won& 쉽게 찾을 수 있도록 편집기에는 t # 39 의 이전 파일 그냥 옆에 새로운 하나.

해설 (4)