git checkout master # first get back to master
git checkout experiment -- app.js # then copy the version of app.js
# from branch "experiment"
git 하나의 파일 변경을 취소하는 방법 도 참조하십시오 .
2019 년 8 월 업데이트, Git 2.23
새로운 명령 git switch
과 git restore
명령을 사용하면 다음 과 같습니다.
git switch master
git restore -s experiment -- app.js
기본적으로 작업 트리 만 복원됩니다.
당신은뿐만 아니라 인덱스를 업데이트 할 경우 (파일 내용을 복원 의미 와 하나의 명령으로 인덱스에 추가)
git restore -s experiment --staged --worktree -- app.js
# shorter:
git restore -s experiment -WS -- app.js
Jakub Narębski 가 주석에서 언급 한 것처럼 :
git show experiment:path/to/app.js > path/to/app.js
SO 질문 " Git의 특정 개정판에서 단일 파일을 검색하는 방법? "에 설명 된대로, 리포지토리 의 루트 디렉토리에서 전체 경로를 사용해야합니다.
따라서 그의 예제에서 Jakub이 사용한 경로 /to/app.js.
서리가 언급에서 언급 했듯이 :
가장 최근의 app.js 상태 만 얻을 수 있습니다
그러나 git checkout
또는의 git show
경우 SO 질문 " git gui의 파일의 git checkout 개정 "에 설명 된 것처럼 실제로 원하는 개정을 참조 할 수 있습니다 .
$ git show $REVISION:$FILENAME
$ git checkout $REVISION -- $FILENAME
$ FILENAME은 버전 파일 의 전체 경로 입니다.
$REVISION
다음과 같이 될 수 있습니다 git rev-parse
:
experiment@{yesterday}:app.js # app.js as it was yesterday
experiment^:app.js # app.js on the first commit parent
experiment@{2}:app.js # app.js two commits ago
등등.
schmijos 는 주석에 다음을 추가합니다 .
당신은 또한 은닉에서 이것을 할 수 있습니다 :
git checkout stash -- app.js
이것은 두 가지에서 일하고 있고 커밋하지 않으려는 경우에 매우 유용합니다.