Development Tip

이전 브랜치를 git checkout하는 방법이 있습니까?

yourdevel 2020. 10. 2. 23:24
반응형

이전 브랜치를 git checkout하는 방법이 있습니까?


나는 일종의 cd -git에 해당하는 것을 원합니다 . 내가 지점에 master있고 체크 아웃을 foo한다면, 나는 git checkout -돌아가고 싶은 master것을 타이핑 할 수 있고, 돌아갈 때 다시 타이핑 할 수 있기를 바랍니다 foo.

이와 같은 것이 있습니까? 구현하기 어려울까요?


로부터 1.6.2에 대한 릴리스 노트

@{-1}마지막 분기를 참조하는 방법입니다. 이는
객체 이름이 예상되는 곳뿐만 아니라 분기 이름이 예상되는 모든 곳에서 허용되며 마치 분기 이름을 입력 한 것처럼 작동합니다.
예 : git branch --track mybranch @{-1},, git merge @{-1}
git rev-parse --symbolic-full-name @{-1}예상대로 작동합니다.

git checkout -git checkout @{-1}.


오늘날이를 수행하는 가장 간단한 방법은 다음과 같습니다.

git checkout -

... 다음의 별칭입니다.

git checkout @{-1}

git checkout 빼기

이에 대해 더 알고 싶다면 여기에 전체 기사를 썼습니다. Checkout The Previous Branch In Git .


@Karl이 지적하고 git checkout매뉴얼에서 :

특별한 경우, N 번째 마지막 분기의 "@ {-N}"구문은 분리하는 대신 분기를 체크 아웃합니다. "@ {-1}"과 동의어 인-를 지정할 수도 있습니다.

이 경우 git checkout -둘 다 git checkout @{-1}작동합니다.

내가 믿는 가장 가까운 git reflog최신 moving from branch1 to branch2구문 분석 git checkout branch1


git checkout @{-N}작동 하는 메커니즘을 이해하기 위해 이전 답변에 더 자세한 정보를 추가하십시오 . 그것은 당신이 당신의 출력을 구문 분석 할 수 있어야 자신에 비슷한 구현하고 싶었 그렇다면, 체크 아웃 역사를 검사 할 reflog를 산책 git reflog을 찾고 checkout:라인. git 소스 sha1_name.c, 특히 함수 에서 구현을 확인할 수 있습니다 interpret_nth_prior_checkout.


나는 이전 지점을 확인하기 위해 같은 생각 으로이 질문에 착수했습니다. 에서 ohmyz사용 하고 Mac있습니다. 아래 명령이 나를 도왔습니다.

$ gco -
$ git checkout -

가장 많이 사용되는 솔루션은 다음과 같습니다.

git checkout @{-N}

여기서 N-결제 내역에서 다시 이동할 지점의 단계 수입니다.


다음은 다른 답변에서 제공 하는 git checkout -git checkout @{-1}솔루션 을 설명하는 Git 문서의 일부에 대한 포인터입니다 .

  • When specifying a Git revision for any command, @{-<n>}, e.g. @{-1} means “the nth branch/commit checked out before the current one.” The documentation for git checkout <branch> reiterates: “You can use the @{-N} syntax to refer to the N-th last branch/commit checked out using git checkout operation.”

  • For the <branch> argument of git checkout, “you may also specify ‘-’ which is synonymous to ‘@{-1}’.”


Git version 2.23 introduced the git switch command which you can use to do that (and more). Quoting the official documentation:

Switch to a specified branch. The working tree and the index are updated to match the branch. All new commits will be added to the tip of this branch.

특정 경우 git switch -에는 이전에 있었던 지점으로 돌아가도록 발행 할 수 있습니다 . 동일한 명령을 다시 실행하여 첫 번째 분기로 돌아갈 수 있습니다.

PS 그것은 당신이 이미 (난 당신이 질문을 이후 7 년이있어 의미) 그렇게하는 방법을 알고하지 않는 것이 아니지만, 공통의 해결이 명령이 적은 초보자 혼란과 친절 혼란을 사용할 때 발생한다 git checkout.

참고 URL : https://stackoverflow.com/questions/7206801/is-there-any-way-to-git-checkout-previous-branch

반응형