수색…
비고
많은 Git 명령은 인수로 개정 매개 변수를 사용합니다. 명령에 따라 특정 커밋을 나타내거나 커브에서 도달 할 수있는 모든 커밋을 git-log (1) 과 같이 리비전 그래프를 처리하는 명령으로 나타냅니다. 일반적으로 구문 설명에서 <commit>
또는 <rev>
또는 <revision>
으로 표시됩니다.
Git 개정 구문에 대한 참조 문서는 gitrevisions (7) 맨 페이지입니다.
아직이 페이지에서 누락되었습니다.
- [_]
git describe
출력 예 :v1.7.4.2-679-g3bee7fb
- [_]
@
혼자서HEAD
의 지름길로 -
@{-<n>}
, 예 :@{-1}
및-
@{-1}
의미하는 [_] - [_]
<branchname>@{push}
- [_]
<rev>^@
, 모든 부모<rev>
별도의 문서가 필요합니다.
- [_] 리포지토리와 인덱스의 블롭과 트리를 참조 :
<rev>:<path>
및:<n>:<path>
구문 - [_] 수정 범위는
A..B
,A...B
,B ^A
,A^1
및 수정 제한-<n>
,--since
객체 이름을 기준으로 수정 버전 지정
$ git show dae86e1950b1277e545cee180551750029cfe735
$ git show dae86e19
SHA-1 객체 이름, 전체 40 바이트 16 진수 문자열 또는 저장소에 고유 한 하위 문자열을 사용하여 개정 (또는 실제로 모든 객체 : 태그, 트리 즉 디렉토리 내용, 블롭 즉 파일 내용)을 지정할 수 있습니다.
기호식 참조 이름 : 분기, 태그, 원격 추적 분기
$ git log master # specify branch
$ git show v1.0 # specify tag
$ git show HEAD # specify current branch
$ git show origin # specify default remote-tracking branch for remote 'origin'
분기 기호 (예 : 'master', 'next', 'maint'), 태그 (예 : 'v1.0', 'v0.6.3-rc2'), remote- 지점 (예 : 'origin', 'origin / master') 및 현재 분기에 대한 'HEAD'와 같은 특수한 참조를 추적합니다.
심볼릭 참조 이름이 모호한 경우 (예 : 'fix'라는 이름의 분기 및 태그가있는 경우) (동일한 이름의 분기 및 태그는 권장되지 않음) 사용할 참조 유형을 지정해야합니다.
$ git show heads/fix # or 'refs/heads/fix', to specify branch
$ git show tags/fix # or 'refs/tags/fix', to specify tag
기본 수정본 : HEAD
$ git show # equivalent to 'git show HEAD'
'HEAD'는 작업 트리에서 변경 내용을 기반으로하는 커밋의 이름을 지정하며 대개 현재 분기의 심볼 이름입니다. 리비전 매개 변수를 사용하는 많은 명령 (전부는 아니지만)은 누락 된 경우 'HEAD'로 기본 설정됩니다.
Reflog 참조 : @ { }
$ git show @{1} # uses reflog for current branch
$ git show master@{1} # uses reflog for branch 'master'
$ git show HEAD@{1} # uses 'HEAD' reflog
ref, 대개 지사 또는 HEAD와 접미사 @
뒤에 대괄호 쌍 (예 : {1}
, {15}
)으로 묶인 서수를 붙여 로컬 저장소 에있는 해당 ref의 n 번째 이전 값을 지정 합니다 . 당신과 함께 최근 reflog 항목을 확인할 수 있습니다 git reflog
명령을, 또는 --walk-reflogs
/ -g
에 옵션 git log
.
$ git reflog
08bb350 HEAD@{0}: reset: moving to HEAD^
4ebf58d HEAD@{1}: commit: gitweb(1): Document query parameters
08bb350 HEAD@{2}: pull: Fast-forward
f34be46 HEAD@{3}: checkout: moving from af40944bda352190f05d22b7cb8fe88beb17f3a7 to master
af40944 HEAD@{4}: checkout: moving from master to v2.6.3
$ git reflog gitweb-docs
4ebf58d gitweb-docs@{0}: branch: Created from master
참고 : reflog를 사용하면 ORIG_HEAD
ref ( HEAD@{1}
과 거의 동일)를 활용하는 이전 메커니즘을 대체합니다.
Reflog 참조 : @ { }
$ git show master@{yesterday}
$ git show HEAD@{5 minutes ago} # or HEAD@{5.minutes.ago}
ref 다음에 {yesterday}
@
{yesterday}
, {1 month 2 weeks 3 days 1 hour 1 second ago}
또는 {1979-02-26 18:30:00}
와 같이 중괄호 쌍으로 묶인 날짜 지정이있는 접미사 @
가 뒤에 오는 경우 이전 시점 (또는 가장 가까운 시점)에서의 ref의 값. 주어진 시간에 로컬 참조의 상태를 조회합니다. 예를 들어, 지난 주에 지역의 '마스터' 지부에 있었던 내용.
날짜 지정자와 함께 git reflog
를 사용하여 로컬 저장소에서 특정 참조를 수행 한 정확한 시간을 조회 할 수 있습니다.
$ git reflog HEAD@{now}
08bb350 HEAD@{Sat Jul 23 19:48:13 2016 +0200}: reset: moving to HEAD^
4ebf58d HEAD@{Sat Jul 23 19:39:20 2016 +0200}: commit: gitweb(1): Document query parameters
08bb350 HEAD@{Sat Jul 23 19:26:43 2016 +0200}: pull: Fast-forward
추적 / 업스트림 브랜치 : @ {업스트림}
$ git log @{upstream}.. # what was done locally and not yet published, current branch
$ git show master@{upstream} # show upstream of branch 'master'
branchname (짧은 양식 <branchname>@{u}
)에 추가 된 접미사 @{upstream}
은 branchname에 의해 지정된 분기가 위에 빌드되도록 설정된 분기를 참조합니다 ( branch.<name>.remote
및 branch.<name>.merge
branch.<name>.remote
branch.<name>.merge
또는 git branch --set-upstream-to=<branch>
). 빠진 branchname은 현재 기본값으로 설정됩니다.
수정 범위 구문과 함께 여러분의 지사가 업스트림보다 먼저 커밋 (아직 업스트림에 있지 않은 로컬 저장소에서 커밋) 및 커밋 된 사항 (로컬 분기에 병합되지 않은 업스트림에서 커밋)을 확인하는 것이 매우 유용합니다. 양자 모두:
$ git log --oneline @{u}..
$ git log --oneline ..@{u}
$ git log --oneline --left-right @{u}... # same as ...@{u}
조상 사슬을 투입하십시오 : ^, ~ ~ 등
$ git reset --hard HEAD^ # discard last commit
$ git rebase --interactive HEAD~5 # rebase last 4 commits
접미어 ^
는 개정 매개 변수에 해당 커밋 객체의 첫 번째 부모를 의미합니다. ^<n>
은 <n> 번째 부모를 의미합니다 (예 : <rev>^
는 <rev>^1
과 동일합니다).
접미어 ~<n>
을 개정 매개 변수로 지정하면 명명 된 커밋 객체의 <n> 번째 조상 인 커밋 객체가 첫 번째 부모에만 이어집니다. 예를 들어 <rev>~3
은 <rev>^^^
와 같습니다. 간단히 말해 <rev>~
는 <rev>~1
의미하며 <rev>^1
또는 <rev>^
와 동일합니다.
이 구문은 구성 가능합니다.
심볼 이름을 찾으려면 git name-rev
명령을 사용하십시오 :
$ git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a
33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940
다음 예제에서는 --pretty=oneline
및 not --oneline
사용해야합니다.
$ git log --pretty=oneline | git name-rev --stdin --name-only
master Sixth batch of topics for 2.10
master~1 Merge branch 'ls/p4-tmp-refs'
master~2 Merge branch 'js/am-call-theirs-theirs-in-fallback-3way'
[...]
master~14^2 sideband.c: small optimization of strbuf usage
master~16^2 connect: read $GIT_SSH_COMMAND from config file
[...]
master~22^2~1 t7810-grep.sh: fix a whitespace inconsistency
master~22^2~2 t7810-grep.sh: fix duplicated test name
분기 및 태그를 역 참조 : ^ 0, ^ { }
경우에 따라 명령의 동작은 분기 이름, 태그 이름 또는 임의의 개정판이 제공되는지 여부에 따라 달라집니다. 후자가 필요할 경우 "참조 해제"구문을 사용할 수 있습니다.
접미어 ^
다음에 중괄호 (예 : v0.99.8^{commit}
)로 묶인 객체 유형 이름 ( tag
, commit
, tree
, blob
)은 <type>
유형의 객체가 될 때까지 반복적으로 <rev>
<type>
개체를 찾을 수 없거나 더 이상 참조 해제 할 수 없습니다. <rev>^0
은 <rev>^{commit}
의 약자입니다.
$ git checkout HEAD^0 # equivalent to 'git checkout --detach' in modern Git
접미사 ^
다음에 빈 중괄호 쌍 (예 : v0.99.8^{}
)을 v0.99.8^{}
비 태그 객체가 발견 될 때까지 재귀 적으로 참조를 v0.99.8^{}
합니다.
비교
$ git show v1.0
$ git cat-file -p v1.0
$ git replace --edit v1.0
와
$ git show v1.0^{}
$ git cat-file -p v1.0^{}
$ git replace --edit v1.0^{}
가장 젊은 일치 커밋 : ^ {/ }, : /
$ git show HEAD^{/fix nasty bug} # find starting from HEAD
$ git show ':/fix nasty bug' # find starting from any branch
콜론 ( ' :
') 다음에 슬래시 ( ' /
') 다음에 텍스트가 오는 커밋 메시지가 지정된 정규 표현식과 일치하는 커밋의 이름을 지정합니다. 이 이름은 막내 매칭이 어떤 심판에서 도달 할 수있는 커밋 반환합니다. 정규식은 커밋 메시지의 모든 부분과 일치 할 수 있습니다. 문자열로 시작하는 메시지를 일치 시키려면 예 :/^foo
사용할 수 있습니다. 특별한 순서 :/!
일치하는 것에 대한 수식어에 예약되고 있습니다. :/!-foo
는 음의 일치를 수행하고, :/!!foo
는 리터럴과 일치합니다! 문자 다음에 foo
옵니다.
접미사 ^
와 개정 매개 변수 다음에 슬래시가 오는 텍스트가 포함 된 중괄호 쌍 다음에 <rev>
에서 도달 할 수있는 가장 젊음과 일치하는 커밋을 반환하는 아래의 :/<text>
구문과 같습니다. ^
.