etc./StackOverFlow

원격 Git 브랜치를 어떻게 체크아웃합니까?

청렴결백한 만능 재주꾼 2021. 9. 23. 22:52
반응형

질문자 :Juri Glass


test with git push origin test 라는 브랜치를 공유 저장소에 푸시했습니다. git branch -r 분기를 볼 수 있습니다.

test 분기를 확인하려고 합니다.

난 노력 했어:

  • 아무것도하지 않는 git checkout test

  • git checkout origin/test* (no branch) 합니다. 혼란스럽습니다. 어떻게 "지점 없음"에 있을 수 있습니까?

원격 Git 브랜치를 어떻게 체크아웃합니까?



답변자 : hallski


하나의 리모컨으로

Jakub의 답변은 실제로 이것을 개선합니다. Git 버전이 1.6.6 이상이고 리모컨이 하나만 있으면 다음을 수행할 수 있습니다.

 git fetch git checkout test

사용자 masukomi가 주석에서 지적했듯이 git checkout test 는 리모컨이 여러 개인 경우 현대 git에서 작동하지 않습니다. 이 경우 사용

 git checkout -b test <name of remote>/test

또는 속기

 git checkout -t <name of remote>/test

>1개의 리모컨 사용

원격 브랜치에서 로컬로 작업을 시작하기 전에 아래 답변에서 설명한 대로 가져와야 합니다.

분기를 가져오려면 다음을 수행하기만 하면 됩니다.

 git fetch origin

이것은 당신을 위해 모든 원격 브랜치를 가져올 것입니다. 다음을 통해 결제 가능한 지점을 확인할 수 있습니다.

 git branch -v -a

원격 브랜치를 손에 넣은 상태에서 이제 관심 있는 브랜치를 확인하여 로컬 작업 복사본을 제공해야 합니다.

 git checkout -b test origin/test

또한 차이점을 공유하고 가져오는 방법과 가져오는 방법이 어떻게 다른지 알아보기 위해 아래 이미지를 만들었습니다.

여기에 이미지 설명 입력



답변자 : Jakub Narębski


참고: 최신 Git(>= 1.6.6 )을 사용하면 다음을 사용할 수 있습니다.

 git checkout test

('origin/test'가 아니라 'test'임에 유의) DWIM -mery를 수행하고 로컬 브랜치 'test'를 생성합니다. 이 브랜치에 대한 업스트림은 원격 추적 브랜치 'origin/test'가 됩니다.


git branch 출력의 * (no branch) 는 "분리된 HEAD" 상태(HEAD가 커밋을 직접 가리키며 일부 로컬 분기에 대한 기호 참조가 아님)라는 이름 없는 분기에 있음을 의미합니다. 이 이름 없는 브랜치에서 커밋을 한 경우 현재 커밋에서 항상 로컬 브랜치를 생성할 수 있습니다.

 git checkout -b test HEAD

** 편집 (저자가 아닌 편집자에 의해) **

이 답변을 현대화하는 것으로 보이는 아래에 묻힌 댓글을 찾았습니다.

@Dennis: git checkout <non-branch> , 예를 들어 git checkout origin/test 는 분리된 HEAD/이름 없는 분기의 결과를 가져오는 반면 git checkout test 또는 git checkout -b test origin/test 결과는 로컬 분기 test (원격 추적 분기 포함) origin/test as upstream ) – Jakub Narębski 14 1월 9일 8:17

git checkout origin/test 강조



답변자 : ndim


이 경우 원격 test 분기를 test 분기를 만들고 싶을 것입니다.

 $ git branch test origin/test

이전 버전의 git 에서는 명시적인 --track 옵션이 필요했지만 지금은 원격 분기에서 분기할 때 기본 옵션입니다.



답변자 : Corey Ballou


수락 된 답변 이 작동하지 않습니까?

첫 번째 및 선택된 답변은 기술적으로 정확 하지만 원격 저장소에서 모든 객체와 참조를 아직 검색하지 않았을 가능성이 있습니다. 이 경우 다음 오류가 수신됩니다.

 $ git checkout -b remote_branch origin/remote_branch

치명적: git checkout: 경로 업데이트는 분기 전환과 호환되지 않습니다.
커밋으로 확인할 수 없는 'origin/remote_branch'를 체크아웃하려는 건가요?

해결책

이 메시지를 받으면 git checkout remote_branch git fetch origin 수행해야 합니다. 여기서 origin 은 원격 저장소의 이름입니다. 다음은 응답이 포함된 전체 예입니다.

 $ git fetch origin remote: Counting objects: 140, done. remote: Compressing objects: 100% (30/30), done. remote: Total 69 (delta 36), reused 66 (delta 33) Unpacking objects: 100% (69/69), done. From https://github.com/githubuser/repo-name e6ef1e0..5029161 develop -> origin/develop * [new branch] demo -> origin/demo d80f8d7..359eab0 master -> origin/master $ git checkout demo Branch demo set up to track remote branch demo from origin. Switched to a new branch 'demo'

보시다시피 git fetch origin 실행하면 아직 로컬 시스템에서 추적하도록 설정되지 않은 원격 분기가 검색되었습니다. 거기에서 이제 원격 분기에 대한 참조가 있으므로 git checkout remote_branch 를 실행하기만 하면 원격 추적의 이점을 얻을 수 있습니다.



답변자 : Sahil kalra


위의 솔루션을 시도했지만 작동하지 않았습니다. 이것을 시도하면 작동합니다.

 git fetch origin 'remote_branch':'local_branch_name'

local_branch_name 새 로컬 분기(아직 존재하지 않는 경우)를 만들고 그 안에 있는 원격 분기를 추적합니다.



답변자 : tacaswell


이것은 이름이 지정되지 않은 원격 원격에 대한 DWIM 입니다( 문서 ):

 $ git checkout -t remote_name/remote_branch

새 리모컨을 추가하려면 먼저 다음을 수행해야 합니다.

 $ git remote add remote_name location_of_remote $ git fetch remote_name

첫 번째는 Git에 원격이 존재한다고 알리고 두 번째는 커밋을 가져옵니다.



답변자 : matanster


사용하다:

 git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>

내 양성의 경우 다른 답변은 현대 Git에서 작동하지 않습니다. 원격 분기가 새로운 경우 먼저 당겨야 할 수도 있지만 그 경우를 확인하지 않았습니다.



답변자 : Alireza


기본적으로 분기가 표시되지만 아직 로컬 사본이 없습니다...!

지점을 fetch 합니다...

분기를 가져오고 체크아웃하기만 하면 아래의 한 줄 명령을 사용하여 수행할 수 있습니다.

 git fetch && git checkout test

나는 또한 방법에 당신이 차이를 공유 할 수 아래의 이미지, 모양 만들어 fetch 작업을하고 또한 서로 다른 얼마나 pull :

자식 가져오기



답변자 : Madhan Ayyasamy


Git 리포지토리를 복제하려면 다음을 수행합니다.

 git clone <either ssh url /http url>

위의 명령어는 모든 브랜치를 확인하지만 master 브랜치만 초기화됩니다. 다른 브랜치를 체크아웃하려면 다음을 수행하십시오.

 git checkout -t origin/future_branch (for example)

이 명령은 원격 분기를 확인하고 로컬 분기 이름은 원격 분기와 동일합니다.

체크아웃 시 로컬 지점 이름을 재정의하려면:

 git checkout -t -b enhancement origin/future_branch

이제 로컬 브랜치 이름은 enhancement 이지만 원격 브랜치 이름은 future_branch 입니다.



답변자 : uma


당신은 시도 할 수 있습니다

 git fetch remote git checkout --track -b local_branch_name origin/branch_name

또는

 git fetch git checkout -b local_branch_name origin/branch_name


답변자 : Mohideen bin Mohammed


먼저 다음을 수행해야 합니다.

git fetch # 브랜치 이름을 모르는 경우

 git fetch origin branch_name

둘째, 다음을 통해 로컬로 원격 분기를 체크아웃할 수 있습니다.

 git checkout -b branch_name origin/branch_name

-b 는 선택한 원격 분기에서 지정된 이름으로 새 분기를 만듭니다.



답변자 : priyankvex


다음 명령을 사용합니다.

 git checkout --track origin/other_remote_branch


답변자 : sreekumar


명령

 git fetch --all git checkout -b <ur_new_local_branch_name> origin/<Remote_Branch_Name>

와 같다

 git fetch --all

그리고

 git checkout -b fixes_for_dev origin/development

development 에서 latest fixes_for_dev 를 생성합니다.



답변자 : Eugene Yarmash


원격 브랜치의 이름으로 git checkout 을 실행하기만 하면 됩니다. Git은 원격 브랜치를 추적하는 로컬 브랜치를 자동으로 생성합니다.

 git fetch git checkout test

그러나 해당 브랜치 이름이 둘 이상의 원격에서 발견되면 Git이 어느 것을 사용할지 모르기 때문에 작동하지 않습니다. 이 경우 다음 중 하나를 사용할 수 있습니다.

 git checkout --track origin/test

또는

 git checkout -b test origin/test

2.19 에서 Git은 이러한 모호성을 해결할 때 기본값으로 사용할 원격을 지정하는 checkout.defaultRemote



답변자 : Kris


origin 원격 이외의 다른 항목에 있는 경우 다음을 수행하고 싶습니다.

 $ git fetch $ git checkout -b second/next upstream/next

upstream next 분기를 second/next 라는 로컬 분기로 체크아웃합니다. 즉, next라는 로컬 브랜치가 이미 있으면 충돌하지 않습니다.

 $ git branch -a * second/next remotes/origin/next remotes/upstream/next


답변자 : brianyang


이 답변 중 어느 것도 나를 위해 일하지 않았습니다. 이것은 효과가 있었다:

git checkout -b feature/branch remotes/origin/feature/branch



답변자 : alisa


오류가 표시되는 상황에 갇혔습니다 error: pathspec 'desired-branch' did not match any file(s) known to git. 위의 모든 제안에 대해 저는 git 버전 1.8.3.1을 사용 중입니다.

그래서 이것은 나를 위해 일했습니다 .

 git fetch origin desired-branch git checkout -b desired-branch FETCH_HEAD

뒤에 설명은 원격 분기를 가져올 때 FETCH_HEAD로 가져왔다는 것입니다.

 $ git fetch origin desired-branch From github.com:MYTEAM/my-repo * branch desired-branch -> FETCH_HEAD


답변자 : Inder Kumar Rathore


git fetch && git checkout your-branch-name



답변자 : Thushan


git remote show <origin name> 명령은 모든 분기(추적되지 않은 분기 포함)를 나열합니다. 그런 다음 가져와야 하는 원격 분기 이름을 찾을 수 있습니다.

예시:

 $ git remote show origin

다음 단계를 사용하여 원격 분기를 가져옵니다.

 git fetch <origin name> <remote branch name>:<local branch name> git checkout <local branch name > (local branch name should the name that you given fetching)

예시:

 $ git fetch origin test:test $ git checkout test


답변자 : webdevguy


git branch -r 해당 분기 이름이 Git의 로컬 분기 목록에 없기 때문에 개체 이름이 유효하지 않다고 말합니다. 다음을 사용하여 원본에서 로컬 분기 목록을 업데이트합니다.

 git remote update

그런 다음 원격 지점을 다시 확인하십시오.

이것은 나를 위해 일했습니다.

나는 git fetch 가 원래 포스터가 원했던 것이 아닌 모든 원격 분기를 끌어온다고 믿습니다.



답변자 : Pranav


원격에서 가져오고 분기를 체크아웃합니다.

 git fetch <remote_name> && git checkout <branch_name>

예:

git fetch origin && git 체크아웃 기능/XYZ-1234-알림 추가



답변자 : oldman


다른 남자들과 여자들이 해결책을 제시하지만 아마도 나는 당신에게 이유를 말할 수 있습니다.

아무것도하지 않는 git checkout 테스트

Does nothing is not equal doesn't work 터미널에 'git checkout test'를 입력하고 Enter 키를 누르면 메시지가 나타나지 않고 오류가 발생하지 않습니다. 내가 맞아?

대답이 '예'라면 원인을 알려드릴 수 있습니다.

원인은 작업 트리에 'test'라는 파일(또는 폴더)이 있기 때문입니다.

git checkout xxx 구문 분석되면

  1. Git은 xxx 를 브랜치 이름으로 보지만 test라는 브랜치는 없습니다.
  2. 그러면 Git은 xxx 가 경로라고 생각하고 다행히도(또는 불행히도) test라는 파일이 있습니다. 따라서 git checkout xxx xxx 파일의 모든 수정 사항을 버리는 것을 의미합니다.
  3. xxx 라는 파일도 없으면 Git은 몇 가지 규칙에 따라 xxx 를 생성하려고 시도합니다. 규칙 중 하나는 remotes/origin/xxx 가 있는 경우 xxx 라는 분기를 만드는 것입니다.


답변자 : Hasib Kamal


새로 생성된 브랜치를 얻으려면

 git fetch

다른 지점으로 전환하려면

 git checkout BranchName


답변자 : Keshav Gera


git checkout -b "Branch_name" [ B는 로컬 분기 생성을 의미함]

자식 분기 --모두

git checkout -b "당신의 지점 이름"

자식 분기

git pull origin "당신의 지점 이름"

마스터 브랜치에서 dev 브랜치로 성공적으로 체크아웃

여기에 이미지 설명 입력



답변자 : OzzyCzech


다음 Bash 스크립트를 사용하여 모든 원격 분기 추적을 시작할 수 있습니다.

 #!/bin/bash git fetch --all for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'` do git branch -f --track "$branch" "origin/$branch" done

다음은 한 줄 버전입니다.

 git fetch --all; for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`; do git branch --track "$branch" "origin/$branch" ; done ;


답변자 : Zahra Badri


모든 원격 지점을 얻으려면 다음을 사용하십시오.

 git fetch --all

그런 다음 지점에 체크 아웃하십시오.

 git checkout test


답변자 : M. Wojcik


나는 항상 한다: git fetch origin && git checkout --track origin/branch_name



답변자 : Sateesh


이 두 명령을 실행하기만 하면 됩니다.

 git checkout <branch-name> git pull <remote> <branch-name>


답변자 : hzpc-joostk


우리에게는 remote.origin.fetch 구성이 문제를 일으킨 것 같습니다. master 이외의 다른 원격 분기를 볼 수 없으므로 git fetch [--all] 이 도움이 되지 않았습니다. git checkout mybranch 또는 git checkout -b mybranch --track origin/mybranch 작동하지 않았지만 확실히 원격에 있었습니다.

이전 구성에서는 master 만 가져올 수 있었습니다.

 $ git config --list | grep fetch remote.origin.fetch=+refs/heads/master:refs/remotes/origin/master

* 를 사용하여 수정하고 원본에서 새 정보를 가져옵니다.

 $ git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*' $ git fetch ... * [new branch] ... ...

이제 원격 브랜치를 로컬에서 git checkout 할 수 있습니다.

이 구성이 로컬 저장소에서 어떻게 끝났는지 모릅니다.



답변자 : Ulysses Alves


원격 브랜치 이름이 특수 문자로 시작하는 경우 체크아웃 명령에서 그 주위에 작은 따옴표를 사용해야 합니다. 그렇지 않으면 git은 당신이 말하는 브랜치를 알지 못합니다.

#9773 이라는 이름의 원격 브랜치를 체크아웃하려고 했지만 아래 그림과 같이 명령이 제대로 작동하지 않았습니다.

여기에 이미지 설명 입력

어떤 이유로 날카로운 기호 (#)가 함께 할 수있는 뭔가가 수 있는지 궁금하고 내가 좋아하는, 작은 따옴표로 분기 이름을 둘러싼 시도 '#9773' 라텐보다는 다만 #9773 , 다행히도 잘 일했다.

 $ git checkout -b '#9773' origin/'#9773'


출처 : Here


출처 : http:www.stackoverflow.com/questions/1783405/how-do-i-check-out-a-remote-git-branch">

반응형