git : 헤드를 분리하지 않고 분기 전환
메인 브랜치 (마스터)와 일부 실험적인 작업을위한 브랜치가있는 github에 저장소가 있습니다. 나는 약간의 커밋을하고 실험적인 브랜치로 밀어 넣었고 모든 것이 잘되었습니다.
이제 다른 컴퓨터에서 내 저장소 (git clone repository )를 복제 한 다음 실험용 브랜치 (git checkout branchname ) 로 전환하려고 하지만이 작업을 수행 할 때마다 머리가 분리되고 변경 사항을 푸시 할 수 없습니다. 내가 뭘 잘못하고 있죠? 나는 어딘가에 근본적인 자식 개념을 놓치고 있다는 느낌이 들지만 임의의 자식 맨 페이지를 읽는 것은 나에게 단서를주지 못한다.
나는 git을 처음 접했기 때문에 내가 바보라면 미안하지만 문서에서 내 머리를 다시 붙이는 데 도움이되는 것을 찾을 수 없습니다.
편집하다
추적 지점의 개념은 내가 놓친 것입니다. 이제 그 개념을 이해 했으므로 모든 것이 명확합니다. 개인적으로 나는 git branch --track
구문이 git checkout -b branch-name origin/branch-name
.
도와 주셔서 감사합니다!
# first time: make origin/branchname locally available as localname
git checkout -b localname origin/branchname
# othertimes
git checkout localname
git push origin
편의상 localname 및 branchname에 동일한 문자열을 사용할 수 있습니다.
체크 아웃 origin/branchname
할 때 실제로 브랜치를 체크 아웃하지 않았습니다. origin/branchname
"원격"이름이며 다음을 사용하여 목록을 얻을 수 있습니다.
branch -a
색상을 활성화하면 로컬 분기는 하나의 색상이되고 원격 분기는 다른 색상이됩니다.
스위치로 전환하여 작업 할 수 있으려면 먼저 원격 분기를 로컬로 추적해야합니다.
git clone git@github.com:abc/def.git
cd def
이제 추적 분기를 만듭니다.
git branch --track experimental origin/experimental
git checkout experimental
그런 다음 거기에서 일한 후 간단히 github로 푸시하십시오.
git push
Kent의 답장을 확장하려면 복제를 수행 한 후 (원격은 포함되지 않음) 복제 한 저장소에서 활성화 된 분기 (귀하의 경우 마스터) 만 가질 수 있습니다.
따라서 먼저 원격 실험 브랜치를 추적하기 위해 새 브랜치를 생성해야합니다.
$ git branch experimental origin/experimental
그런 다음 확인하십시오.
$ git checkout experimental
그러나 Kent는 정확합니다.이 두 명령을 결합 할 수 있습니다.
$ git checkout -b experimental origin/experimental
Git 2.23 (2019 년 8 월)에서는 다음 명령을 사용합니다.git switch
동일한 이름의 원격 지점이있는 경우 자동으로 추적됩니다.
$ git switch new-topic
Branch 'new-topic' set up to track remote branch 'new-topic' from 'origin'
Switched to a new branch 'new-topic'
참고 URL : https://stackoverflow.com/questions/471300/git-switch-branch-without-detaching-head
'program story' 카테고리의 다른 글
사용자 암호 정리 (0) | 2020.08.27 |
---|---|
엘릭서가 할 수 있지만 얼랭이 할 수없는 일이 있나요? (0) | 2020.08.27 |
속성 또는 CSS로 이미지 너비 / 높이? (0) | 2020.08.27 |
OSGi, Java 모듈성 및 Jigsaw (0) | 2020.08.27 |
Xcode에서 전 처리기 기호를 정의하는 방법 (0) | 2020.08.26 |