programing

리모트 Git 브랜치를 체크하려면 어떻게 해야 하나요?

closeapi 2023. 4. 16. 15:08
반응형

리모트 Git 브랜치를 체크하려면 어떻게 해야 하나요?

가 a called 라는 지점을 .testgit push origin test공유 저장소로 이동합니다.에는 지부탁드립니다.git branch -r 체크 해야 test도했습습니니다

  • git checkout test 것도 않다
  • git checkout origin/test* (no branch)

하나의 원격 저장소가 구성되어 있는지 또는 여러 개의 원격 저장소가 구성되어 있는지에 따라 답변이 분할되었습니다.그 이유는 단일 리모트 케이스의 경우 일부 명령어는 모호성이 적기 때문에 단순화할 수 있기 때문입니다.

Git 2.23 업데이트 완료: 이전 버전은 마지막 섹션을 참조하십시오.

1대의 리모트로

두 경우 모두 원격 저장소에서 가져와 최신 변경 내용이 모두 다운로드되었는지 확인합니다.

$ git fetch

그러면 원격 분기가 모두 가져옵니다.체크아웃에 사용할 수 있는 브랜치는 다음과 같습니다.

$ git branch -v -a

...
remotes/origin/test

「」로 .remotes/*리모트 브랜치의 읽기 전용 카피라고 생각할 수 있습니다.브런치에서 작업하려면 브런치에서 로컬브런치를 작성해야 합니다. 명령어 「Git」로 행해집니다.switch(Git 2.23 이후) 리모트브런치 이름을 지정함으로써 (리모트 이름을 제외한) 다음 절차를 수행합니다.

$ git switch test

추측하고 (「Git」를 「Git」로 로 할 수 ).--no-guess같은 이름의 리모트브런치를 체크하고 추적하려고 합니다.

여러 리모트 사용 시

원격 저장소가 여러 개 있는 경우 원격 저장소의 이름을 명시적으로 지정해야 합니다.

이전과 마찬가지로 최신 원격 변경 내용을 가져오는 것부터 시작합니다.

$ git fetch origin

그러면 원격 분기가 모두 가져옵니다.체크아웃에 사용할 수 있는 브랜치는 다음과 같습니다.

$ git branch -v -a

들고 .-c브런치를 하려면: "로컬브런치를 작성해야 합니다.

$ git switch -c test origin/test

의 방법에 자세한 은, 「」를 참조해 주세요.git switch:

$ man git-switch

차이점을 공유하고, 작업을 가져오는 방법 및 풀링의 차이점을 보기 위해 아래 이미지를 만들었습니다.

여기에 이미지 설명 입력

Git 2.23 이전

git switch2.23 2.23에 되었습니다.git checkout이치노

리모트 저장소를 1개만 사용하여 체크아웃하려면 다음 절차를 따릅니다.

git checkout test

리모트 저장소가 여러 개 설정되어 있는 경우는, 조금 길어집니다.

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

사이드노트:최신 Git(>= 1.6.6)을 사용하면,

git checkout test

('origin/test'가 아닌 'test'라는 점에 주의) 마법의 DWIM-mery를 실행하여 로컬브런치 'test'를 만듭니다.이 경우 업스트림은 리모트 트래킹브런치 'origin/test'가 됩니다.


* (no branch)git branchoutput은 이름 없는 브런치(detached HEAD) 상태(HEAD는 커밋을 직접 가리키며 일부 로컬브런치에 대한 심볼릭 참조가 아님)에 있음을 나타냅니다., 오프 상태로 수 있습니다.

git checkout -b test HEAD

코멘트에 제시된 보다 현대적인 접근법:

@@Denis:git checkout <non-branch>: " " )git checkout origin/test 브랜치는 되지만 HEAD/Named 브랜치는 분리됩니다.git checkout test ★★★★★★★★★★★★★★★★★」git checkout -b test origin/test 로컬 브랜치 " " " 가 됩니다.test 포함)origin/test업스트림으로) – Jakub Narkibski 2014년 1월 9일 8:17

를 합니다.git checkout origin/test

.test 「」를 하고 .test★★★★★★★★★★★★★★★★★★:

$ git branch test origin/test

의 이전 git--track리모트 브런치를 분기하고 있는 경우는, 이것이 디폴트입니다.

로컬 브런치를 만들고 로컬브런치로 전환하려면 다음 명령을 사용합니다.

$ git checkout -b test origin/test

수락된 답변이 효과가 없습니까?

처음 선택한 답변은 기술적으로 정확하지만 원격 저장소에서 모든 개체와 참조를 아직 가져오지 않았을 수 있습니다.이 경우 다음 오류가 표시됩니다.

$ git checkout -b remote_branch origin/remote_branch

fatal: git checkout: 업데이트 경로가 분기 전환과 호환되지 않습니다.
'리모트/리모트_리모트'는요?

솔루션

이 메시지를 .git fetch origin서 ''는origin는 리모트저장소의 이며, 실행 전 입니다.git checkout remote_branch하다

$ 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리모트 트래킹의 이점을 얻을 수 있습니다.

위의 해결책을 시도했지만 효과가 없었습니다.이것을 시험해 보세요, 효과가 있습니다.

git fetch origin 'remote_branch':'local_branch_name'

해, 「」라고하는 이름의 새로운(하지 않는 를합니다.local_branch_name★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★♪

이것에 의해, 이름이 붙여지지 않은 리모트의 DWIM(문서)이 실행됩니다.

$ git checkout -t remote_name/remote_branch

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

$ git remote add remote_name location_of_remote
$ git fetch remote_name

첫 번째는 Git에게 리모트가 존재함을 알리고 두 번째는 커밋을 가져옵니다.

용도:

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

다른 답변은 저의 양성적인 경우 현대 Git에서 작동하지 않습니다.리모트 브랜치가 신규인 경우는, 우선 풀 할 필요가 있을 가능성이 있습니다만, 그 케이스는 확인하지 않았습니다.

기본적으로 브랜치는 표시되지만 로컬 복사본은 아직 없습니다.

돼요.fetch★★★★★★★★★★★★。

브랜치를 가져와 체크 아웃 하는 것만으로, 다음의 1 행의 커맨드를 사용할 수 있습니다.

git fetch && git checkout test

하기 위해 , 어떻게 다른지 .fetch 다른가 입니다.pull:

가져오다

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.

항상 하고 있습니다.

git fetch origin && git checkout --track origin/branch_name

시도해 보세요

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

또는

git fetch
git checkout -b local_branch_name origin/branch_name

나는 그 광경을 보면서 꼼짝할 수 없는 상황에 처했다.error: pathspec 'desired-branch' did not match any file(s) known to git.위의 모든 제안에 대해 설명합니다.저는 GIT 버전 1.8.3.1입니다.Git 버전 1.8.3.1을 사용하고 있습니다.

그래서 이게 통했어.

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

뒤에 있는 설명은 리모트브런치를 취득했을 때, FETH_HEAD 에 페치 된 것을 알 수 있었습니다.

git fetch origin desired-branch

From github.com:MYTEAM/my-repo
    * branch            desired-branch -> FETCH_HEAD

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

git fetch # # If you don't know about branch name# 지점명을 모르는 경우

git fetch origin branch_name

다음으로 로컬 리모트브런치를 체크 아웃 할 수 있습니다.

git checkout -b branch_name origin/branch_name

-b선택한 원격 지점에서 새 지점을 생성할 것입니다.는 선택한 리모트브런치에서 지정된 이름으로 새 브런치를 만듭니다.

다음 명령을 사용합니다.

git checkout --track origin/other_remote_branch

명령어

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

Both will create a 둘 다 생성한다.latest fixes_for_dev부에서development

「 「 」를 만 하면 .git checkout리모트 브랜치의 이름을 지정합니다.Git은 리모트 브랜치를 추적하는 로컬 브랜치를 자동으로 만듭니다.

git fetch
git checkout test

단, 그 브랜치명이 여러 리모콘에서 발견되면 Git은 어떤 것을 사용해야 할지 모르기 때문에 동작하지 않습니다.이 경우 다음 중 하나를 사용할 수 있습니다.

git checkout --track origin/test

또는

git checkout -b test origin/test

2.19에서 Git은 이러한 애매함을 해소할 때 디폴트로 사용할 리모콘을 지정하는 구성을 학습했다.

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

가 다른 origin★★★★★★★★★★★★★★★★★★:

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

★★★★★★★★★★★★★★★★★★★★★★,nextupstreamsecond/next 충돌하지

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

나는 이 대답들 중 어느 것도 통하지 않았다.이것은 효과가 있었다:

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

git fetch && git checkout your-branch-name

다음과 같은 많은 대안이 있습니다.

  • 대안 1:

    git fetch && git checkout test
    

    그게 가장 간단한 방법이야.

  • 대안 2:

    git fetch
    git checkout test
    

    똑같지만 두 단계로 되어 있어요.

git branch -rGit의 로컬브런치 목록에 없기 때문에 오브젝트 이름이 유효하지 않다고 합니다.오리진에서 로컬 지점 목록을 업데이트합니다.

git remote update

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

이건 나한테 효과가 있었어.

는 어요를 믿는다.git fetch모든 외진 지점을 끌어모으는 거죠 원래 포스터가 원했던 건 그게 아니었어요

TL;DR

「」를 사용합니다.git switchgit checkout자세한 내용은 이 페이지를 참조하십시오.

나는 그 답이 쓸모없다고 생각한다.은 Git의 몇 했습니다.checkout로로 합니다.switch ★★★★★★★★★★★★★★★★★」restore

다음은 저의 요약입니다.

리모트 브랜치용으로 갱신하는 경우는, 리모트 브랜치를 「추적」하기 위해서 로컬 브랜치를 작성할 필요가 있습니다.로컬에서 원하는 모든 것을 업데이트하고 최종적으로 리모트로 푸시할 수 있습니다.저장소를 복제한 후 직접 원격 지점으로 체크아웃하면 Git에서 "detached HEAD" 상태와 다음 메시지가 나타날 수 있습니다.

Note: switching to 'origin/asd'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at d3e1083 Update a

리모트 브랜치를 추적하기 위해 로컬 브랜치를 작성하려면 어떻게 해야 할까요?

브런치를 리모트브런치를 하려면 , 「」를 합니다.git checkout <remote branch name> ★★★★★★★★★★★★★★★★★」git switch <remote branch name>가 있는 「」로 합니다.git checkout 메시지를 만, 「에러 메시지」는 「에러 출력은 다음과 같습니다.git switch!!적!!!!

예:

  1. 브런치를 하여 리모트브런치를 .remotes/origin/asdasd:

    $ git branch -a
    * master
      remotes/origin/HEAD -> origin/master
      remotes/origin/asd
      remotes/origin/ereres
      remotes/origin/master
      remotes/origin/zxc
    $ ls
    a  asd
    
  2. 하며, 은 Git를 합니다.git checkout

    $ git checkout asd
    fatal: 'asd' could be both a local file and a tracking branch.
    Please use -- (and optionally --no-guess) to disambiguate
    
  3. git switch!

    $ git switch ereres
    Branch 'ereres' set up to track remote branch 'ereres' from 'origin'.
    Switched to a new branch 'ereres'
    
    $ git branch -vv
    * ereres 3895036 [origin/ereres] Update a
      master f9e24a9 [origin/master] Merge branch 'master' of
    

리모트로부터 취득해, 브랜치를 체크 아웃 합니다.

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

예:

git fetch origin & git checkout 기능 / XYZ-1234 - 경보 추가

다른 남자들과 여자들도 답을 주지만, 왜 그런지 말해줄 수 있을 것 같아.

아무것도 하지 않는 git 체크 아웃 테스트

Does nothing 않다doesn't work그래서 단말기에 'git checkout test'를 입력하고 Enter 키를 누르면 메시지가 뜨지 않고 오류가 발생하지 않는 것 같습니다.내내???

만약 '그렇다'고 대답한다면, 나는 너에게 원인을 말할 수 있다.

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

git checkout xxx 분석 구문 분석,

  1. 에서 Git을 xxx처음에는 지점 이름으로 부르는데 test라는 이름의 지점이 없습니다.
  2. Git은 Git을 생각한다.xxx는 경로입니다.다행히(또는 불행히도) test라는 이름의 파일이 있습니다. ★★★★★★★★★★★★★★★★★.git checkout xxx의 변경을 파기하는 것을 의미합니다.xxxfilename을 클릭합니다.
  3. 이 「 」가 없는 .xxx어느 쪽이든, Git은 그 다음, Git를 생성하려고 할 것입니다.xxx가 '가지 '입니다.xxxremotes/origin/xxx재한한다

새로 만든 분기를 가져오려면

git fetch

다른 분기로 전환하려면

git checkout BranchName

git checkout - b "Branch_name" [B는 로컬브런치를 만듭니다]

git 브랜치 --모두

git checkout - b "지점명"

git 분기

git pull origin "브런치 이름"

마스터 분기에서 개발 분기로 체크아웃했습니다.

여기에 이미지 설명 입력

모든 리모트브런치를 취득하려면 , 다음의 순서를 사용합니다.

git fetch --all

다음으로 브런치를 체크합니다.

git checkout test

에게는 ★★★★★★★★★★★★★★★★★★★★★★★」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로컬 리모트브런치

이 구성이 어떻게 로컬 저장소에 저장되게 되었는지 알 수 없습니다.

그거 썼어.

git clean -fxd                         # removes untracked (new added plus ignored files)

git fetch
git checkout {branchname}

git reset --hard origin/{branchname}   # removes staged and working directory changes

언급URL : https://stackoverflow.com/questions/1783405/how-do-i-check-out-a-remote-git-branch

반응형