2009-10-21 3 views
4

Windows에서 git (사실 msysgit) 1.6.4를 사용하고 있습니다. 대부분의 경우 일부 지사에서 일하고 있습니다. 지금은 매번 벚꽃 피우는 마스터로 돌아가고 싶습니다. 피쳐 브랜치에서 한 커밋을 선택합니다. 일반적으로 피쳐가 없어도 유용 할 수있는 유용한 버그 픽스이기 때문입니다. 내 워크 플로우는 다음과 같이 - 이것은 불필요하게 복잡한 경우, :-) 말해주십시오 :이 시점에서이전에 활성 분기로 변경하는 쉬운 방법이 있습니까?

 
git checkout -b mycoolfeaturebranch 
// hack away, implementing a feature and one bugfix (while I'm at it) 

git add file_with_bugfix.cpp 
git commit -m "Fixed bug 12345 // commit the bugfix 
git checkout master    // hop over to master 
git cherry-pick     // bring the bugfix into master 

, 나는 보통 기능에 대한 작업을 계속하기 위해 다시 내 기능 지점으로 도약하고자합니다. 불행히도, 내 지사 이름은 ('mycoolfeaturebranch'와 같이) 조금 길어지는 경향이 있으며 Windows에서 git branch name 탭 완성을 얻지 못했습니다.

유닉스 셸에는 cd -과 같은 것이 있습니다 (이전 디렉토리로 이동하여 두 디렉토리 사이를 전환하는 데 유용합니다)? git checkout -이 좋습니다. :-)

답변

4

:

  • "자식 체크 아웃 -" "{- 1} 자식 체크 아웃 @"에 대한 속기입니다.

시도해 보셨습니까?

+0

아! 이전 버전의 자식 버전을 사용해 보았지만 1.6.4 버전으로 업그레이드 한 이후에는 다시 시도하지 않았습니다. D' oh! 이것을 지적 해 주셔서 감사합니다! –

4

시도 :

git checkout @{-1} 

git rev-parse에서 :

특수 구조 @{-<n>}는 일 지사는 현재 이전에 체크 아웃을 의미합니다.

his answer Stefan Näwe에 의해 언급 된 바와 같이

:

"git checkout -"는 "git checkout @{-1}"의 단축형이다.

구문 @{-1}은 1.6.2 주변에있다하더라도, 그것은 Junio ​​C. 하마노가 back in February 2009 (강조 광산) 코멘트로는 완전히 효과적인 만 1.6.2 이후입니다 :

를 @ 이 활동을 시작하기 오래 전에 {-1} 구문이 추가되었지만 1.6.2에 있으며 은 " 지점 이름을 사용할 수 있음"으로 광고되었지만 실제로는이 아닙니다. .

나는 주장과 현실을 맞추기 위해 여러 곳을 고쳤다.
"git merge @{-1}"을 지금 사용 중입니다.


(주 : (a 중괄호 쌍 둘러싸인 서수 사양 접미사 @ 다음 @{<n>}

의 Ref 상이 그 예 {1}, {15}) 제 n을 지정 해당 참조의 이전 값
예를 들어 [email protected]{1}은 master의 직전 값이고 [email protected]{5}은 master의 5 번째 이전 값입니다.
이 접미어는 nif는 ref 이름 바로 다음에 사용되며 ref에는 기존 로그가 있어야합니다 ($ GIT_DIR/logs /).

비어있는 참조 부분을 사용하여 @ 구조를 사용하면 현재 분기의 reflog에서 가져올 수 있습니다.
예를 들어, 지점이 blabla 인 경우 @{1}[email protected]{1}과 같습니다. $ GIT/문서/RELNOTES-1.6.2.txt에서

)

+0

우수! 잘 작동합니다 - 불행히도 @ {- 1}은 입력하기가 다소 짜증납니다. 지금은 'git checkout @ {-1}'을 수행하는 'git cc'라는 별칭을 만들었습니다. 아니면 'git checkout @ {- 1}'의 별칭 인 'git checkout -'을 만드는 방법이 있습니까? –

+0

'git checkout -'는'git checkout @ {- 1}'처럼 작동합니다. '@ {- 1}'은 가장 일반적인'@ {- n}'의 특별한 경우, 즉 n 번째 마지막으로 체크 아웃 된 분기입니다. –

관련 문제