분기를 변경하지 않고 다른 Git 분기에서 파일보기


620

해당 분기를 체크 아웃하지 않고 git 분기에서 파일을 열 수 있습니까? 어떻게?

기본적으로 분기를 항상 전환하지 않고 github 페이지 분기 에서 파일을 열 수 있기를 원합니다 . 수정하고 싶지 않고 그냥보고 싶습니다.


15
사실을 놓친 모든 답은 당신이 가진 파일의 전체 경로를 지정해야합니다 git show: stackoverflow.com/questions/610208/...stackoverflow.com/questions/2364147/...
VonC

15
요즘에는 git show a1b35:./file.txt상대 경로를 사용 하는 데 사용할 수 있습니다 .
Steve Bennett

2
@VonC-분기 인식 탭 완성에 감사합니다 :)
Luke Luke

더 흥미로운 차이점을 보여줄 수git diff <other_branch> <path>
투입 Sławomir Lenart

"a1b35"를 가진 위의 상대 파일 예제, 즉 분기 이름입니다. 물론 자체 분기 이름을 거기에 넣으십시오.
loneRanger

답변:


876

이것은 작동해야합니다 :

git show branch:file

여기서 branch 는 모든 참조 (branch, tag, HEAD, ...) 일 수 있으며 file파일 의 전체 경로입니다. 그것을 내보내기 위해 사용할 수 있습니다

git show branch:file > exported_file

또한 몇 가지 관련 질문에 대한 VonC 의 답변을 살펴보십시오 .

2015-01-19 업데이트 :

요즘에는을 사용하여 상대 경로를 사용할 수 있습니다 git show a1b35:./file.txt.


22
그리고 vim에서 파일을 열 수도 있습니다. git show branch:file | vim -( "|"파이프와 vim 명령 다음의 후행 대시에 주목하십시오.vim -
Greg Burghardt

3
@GregBurghardt 저에게 효과적인 것은 다음과 비슷합니다vim -c "set syntax=html" -
raphaëλ

2
솔직히이 답변을 두 번 이상 공표 할 수 있기를 바랍니다.
Vincent Fourmond

2
이것은 로컬 지점 만 표시하며 서버의 모든 지점을 표시하지는 않습니다.
William Entriken

3
@ FullDecent, 나는 origin/my_remote_branch이것으로 잘 사용할 수있었습니다 . 아니면 실제 서버 버전을 의미합니까? 당신이 그것을 원한다면, 당신은 git fetch먼저 해야합니다 .
rsmith54

53
git show somebranch:path/to/your/file

여러 파일을 수행하고 연결시킬 수도 있습니다.

git show branchA~10:fileA branchB^^:fileB

파일의 전체 경로를 제공 할 필요는 없습니다. 상대 경로는 다음과 같습니다.

git show branchA~10:../src/hello.c

로컬 디렉토리에 파일을 가져 오려면 (하나의 파일 만 되돌리기) 다음을 체크 아웃 할 수 있습니다.

git checkout somebranch^^^ -- path/to/file

38

파일 git gui browser <branch>을 살펴볼 수 있는 간단하고 초보자 친화적 인 방법 : 파일 의 내용을 탐색 할 수 있습니다.

의 파일 메뉴에도 git gui있습니다. 대부분의 다른 고급 GUI 래퍼 (Qgit, Egit 등)는 파일 찾아보기 / 열기를 제공합니다.


이 명령은 "git : 'gui'는 git 명령이 아닙니다. 'git --help'를 참조하십시오. 저는 초보자입니다.
Scott Biggs

2
실제로 작동합니다 (놀랍게도 git-scm.com/docs/git-gui 참조) -git 버전 2.5.2.windows.1을 사용합니다
anhoppe

이 답변은 매우 도움이되었습니다! 감사. Windows에서 git bash를 사용한다는 것을 언급해야합니다.
합병

레인저를 git gui로 사용할 수 있습니까?
acgtyrant

1
@ScottBiggs 당신은 초보자가 아니며 비표준 설정을 사용하고 있습니다.
Ashnur

20

Emacs를 사용하는 경우, C-x v ~현재 편집중인 파일의 다른 개정판 (태그, 분기 및 해시가 모두 작동 함)을 보려면 입력 하십시오.


Vim에서 이것을 얻는 방법이 있습니까? (플러그인을 사용할 수 있습니다.)
NHDaly

4

~/.gitconfig파일에 다음을 추가 하십시오

[alias]
  cat = "!git show \"$1:$2\" #"

그리고 이것을 시도하십시오

git cat BRANCHNAME FILEPATH

개인적으로 저는 콜론없이 별도의 매개 변수를 선호합니다. 왜? 이 선택은 checkout명령 의 매개 변수를 반영합니다.이 매개 변수는 다소 자주 사용하는 경향이 있으므로 기괴한 콜론으로 구분 된 show명령의 매개 변수보다 기억하기가 훨씬 쉽습니다 .


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