저는 Bash 스크립트를 작성하고 있습니다. 태그를 체크 아웃 한 다음 체크 아웃을 시작한 곳으로 되돌아 가고 싶습니다.힘찬 밀어주고 싶습니까? 즉, 마지막 상태를 확인하십시오.
나는 git co [email protected]{1}
을 시도했지만, master에서 시작하면 master의 commit SHA로 되돌아 간다.
Git에는 pushd
& popd
과 같은 것이 있습니까? 스크립트에서
저는 Bash 스크립트를 작성하고 있습니다. 태그를 체크 아웃 한 다음 체크 아웃을 시작한 곳으로 되돌아 가고 싶습니다.힘찬 밀어주고 싶습니까? 즉, 마지막 상태를 확인하십시오.
나는 git co [email protected]{1}
을 시도했지만, master에서 시작하면 master의 commit SHA로 되돌아 간다.
Git에는 pushd
& popd
과 같은 것이 있습니까? 스크립트에서
git checkout @{-1}
이며, 이는 git checkout -
으로 축약 될 수있다.
From the manpage: N 번째 브랜치 마지막 체크 아웃 (대신 탈착) 분기 구문 . 도 지정할 수 있습니다. - 동의어는 "@ {- 1}"인 입니다.
, 첫 번째 (this answer 작성 등) 현재의 지점 저장 : 다음
branch_name="$(git symbolic-ref HEAD 2>/dev/null)" ||
branch_name="(unnamed branch)" # detached HEAD
branch_name=${branch_name##refs/heads/}
이동하고 당신이 수행 할 작업을 수행
git checkout -b tag_branch tag_name
에 원하는 태그를 체크 아웃 해당 지점을 다시 체크 아웃하면 이전 지점을 다시 체크 아웃합니다.
git checkout $branch_name
그게 전부입니다.
편집 : 당신이 방법 PUSHD/popd 명령이하는 명시 적으로 기록을 보존하지 않으려면 wnoise의 제안이 작동합니다. 만약 당신이 (그리고 보통의 checkout
가 당신의 LRU에 영향을 미치기를 원하지 않는다면) :
나는 당신이 원하는대로 할 수있는 것을 모릅니다. 그러나 뭔가 함께 해킹하기가 어렵지 않습니다. 그 라인들. git-foo
파일을 PATH에 추가하면 새로운 git foo
명령이 나타납니다.
#!/bin/bash
SUBDIRECTORY_OK=1
. $(git --exec-path)/git-sh-setup
REF=$(head -n1 $GIT_DIR/.pushd)
[ -n "$REF" ] || die "No refs to pop"
git checkout "$REF" && sed -i -e '1d' $GIT_DIR/.pushd
이 굉장 :
그리고
git-popd
: 같은,git-pushd
는 볼 수 있었다! 그 간단한 방법 +1. – eckes'git checkout -1' 명령을 git의 어느 버전에서 할 수 있습니까? 이것은 git 1.7.1에서 작동하지 않으며 man 페이지는'git checkout-'이'git checkout @ {- 1}'과 같습니다. –
@Mark Longair : None. 나는 잘못 생각했다. 그 점을 지적 해 주셔서 감사합니다. 나는 그것을 고쳐 줄 것이다. – wnoise