programing

원격 분기를 '연결'합니다.

newsource 2023. 4. 25. 22:27

원격 분기를 '연결'합니다.

원격 저장소에는 다음과 같은 다양한 분기가 포함되어 있습니다.origin/daves_branch다음을 참조하십시오

$ git branch -r
origin/HEAD -> origin/master
origin/daves_branch
origin/master

어떻게 전환하면 되나요?daves_branch로컬 저장소에 저장하여 추적합니다.origin/daves_branch무슨 일입니까

노력했습니다.

$ git fetch origin daves_branch
$ git checkout daves_branch

업데이트: Git 스위치를 사용합니다.

아래에 기재된 모든 정보는git switch 정확하지만 작업을 단순화하는 새로운 명령이 추가되었습니다.

만약이다daves_branch원격 저장소에 있지만 로컬 분기에는 없습니다. 이겁니다.

git switch daves_branch

지점이 로컬에 없기 때문에 자동으로 지점이 됩니다.switch네, 그렇습니다.그런 다음 원격 지점 추적도 자동으로 설정합니다.

주의하세요.daves_branch에 존재하지 않습니다.git fetch먼저 사용하세요.switch요.


원본 게시물입니다.

원격 분기를 추적하는 로컬 분기를 만들어야 합니다.다음 명령은 원격 분기 오리진/daves_branch를 추적하는 daves_branch라는 로컬 분기를 만듭니다.변경 사항을 푸시하면 원격 분기가 업데이트됩니다.

Git의 최신 버전은 다음과 같습니다.

git checkout --track origin/daves_branch

--track줄임말이에요.git checkout -b [branch] [remotename]/[branch]여기서 [remotename]은 오리진이고 [remotename]은(는) 두 배, 이 경우 daves_model입니다.

Git 1.5.6.5의 경우 다음이 필요했습니다.

git checkout --track -b daves_branch origin/daves_branch

Git 1.7.2.3 이상의 경우 이 정도면 충분합니다(좀 더 일찍 시작되었을 수도 있지만, 이것이 제가 빠르게 찾을 수 있는 가장 빠른 확인 사항입니다).

git checkout daves_branch

최신 Git 버전에서 이 명령은 로컬 분기를 만들지 않으며 '분리된 HEAD' 상태로 전환됩니다.지역 지사를 경우, 지사를 사용하세요.--track네, 그렇습니다.

자세한 내용은 여기를 참조하십시오: 3.5 Git 분기 - 원격 지점, 지점 추적

나는 ...을 사용하였습니다.

git fetch <remote> <rbranch>:<lbranch>
git checkout <lbranch>

...어디요...어디에<rbranch>원격 분기 또는 소스 참조입니다.<lbranch>추적하려는 아직 존재하지 않는 로컬 분기 또는 대상 참조이며 원격 분기 또는 소스 참조와 동일한 이름을 지정하고자 합니다.이는 다음 설명의 옵션 아래에 설명되어 있습니다.<refspec>요.

Bash는 너무 똑똑해서 원격 지점의 처음 몇 글자 뒤에 탭을 누르면 첫 번째 명령이 자동으로 완료됩니다.즉, 로컬 지점의 이름을 지정할 필요도 없습니다. Bash는 자동으로 원격 지점의 이름을 복사합니다.고마워요, 배쉬!

또한 이와 유사한 Stack Overflow 게시물의 답변에서 알 수 있듯이 에서 로컬 지점의 이름을 지정하지 않으면 다음과 같습니다.fetch, 을 사용해서 확인해보시면 만들 수 있습니다-b깃발입니다. 즉, git fetch <remote> <branch>이어집니다git checkout -b <branch> <remote>/<branch>제 첫 번째 답변과 정확히 일치합니다저장소에 원격이 하나만 있는 경우 다음과 같은 작업을 수행할 수 있습니다.git checkout <branch>나나고 후에fetch로컬 지사를 만들어 줄 것입니다.예를 들어 방금 리포지토리를 복제했는데 원격에서 추가 분기를 체크아웃하려고 합니다.

제 생각에 몇몇 문서들은 다음과 같습니다.fetch는 에서 말 그대로 복사되었을 수 있습니다.특히 에 대한 섹션입니다.<refspec>옵션이 동일합니다.하지만, 나는 그것을 믿지 않습니다.fetch콜론의 목적지 쪽을 비워두면,fetch 아무 것도 안 할 거예요

참고: 다음을 참조하십시오.git fetch <remote> <refspec>줄임말입니다.git fetch <remote> <refspec>:따라서 아무 것도 할 수 없을 것입니다.git fetch <remote> <tag>똑같아요.git fetch <remote> <tag>:<tag>이렇게 하면 리모콘을 복사할 수 있습니다.<tag>네, 그렇습니다.

원격 지점을 로컬로 복사하려는 경우에만 도움이 되지만, 반드시 즉시 확인할 필요는 없습니다.그렇지 않으면, 이제 승인된 답변을 사용할 것입니다. 이 답변은 체크아웃 설명의 첫 번째 섹션과 나중에 설명되는 옵션 섹션에 자세히 설명되어 있습니다.--track원라이너니까.글쎄요...원라이너 같은 거요, 왜냐면 당신은 여전히 도망쳐야 하기 때문이죠git fetch <remote>

참고: 순서는 다음과 같습니다.<refspecs>(출처:destination)은 Git 1.7 이전의 기괴한 원격 분기 삭제 방법을 설명합니다.즉, 대상 refspec에 아무것도 푸시하지 않습니다.

로컬이 아닌 원격에만 존재하는 새 원격 지점을 "체크 아웃"하려는 경우 다음과 같이 하십시오.

git fetch origin
git checkout --track origin/<remote_branch_name>

이것은 오리진에서 가져오기를 원한다고 가정합니다.그렇지 않으면 오리진을 원격 이름으로 바꿉니다.

분기를 로컬로 가져옵니다.

git fetch origin <branchName>

해당 분기로 이동합니다.

git checkout <branchName>

로컬이 아닌 원격으로 존재하는 myBranch를 체크아웃하려면 다음과 같이 하십시오.

git fetch --all
git checkout myBranch

이런 메시지를 받았어요

Branch myBranch set up to track remote branch myBranch from origin
Switched to a new branch 'myBranch'

사용하세요.git branch -a로컬 및 원격 지점 모두) 또는 (로컬 및 원격 지점)입니다.git branch -r(원격 분기만) 모든 원격 및 해당 분기를 볼 수 있습니다.그런 다음 '하다, 하다, 하다'를 하면 됩니다.git checkout -t remotes/repo/branch이겁니다.

또한 git-ls-remote 명령이 있어 해당 원격의 모든 참조와 태그를 볼 수 있습니다.

제목과 질문이 혼동되었습니다.

  • 원격 분기를 가져옵니다.
  • 제 동료가 구체적으로 어떻게 그 지점을 당길 수 있을까요?

원격 지점에서 작업할 수 있는 방법이나 원격 지점을 Git Checkout하려면 어떻게 해야 합니까?라고 묻는다면, 보다 간단한 해결책은 다음과 같습니다.

Git(>= 1.6.6)로 다음을 사용할 수 있습니다.

git checkout <branch_name>

로컬인 경우입니다.<branch_name>찾을 수 없지만 일치하는 이름을 가진 추적 분기가 정확히 하나의 원격에 있습니다. 이 분기는 다음과 같습니다.

git checkout -b <branch_name> --track <remote>/<branch_name>

Git 체크아웃은 설명서를 참조하십시오.

친구를 위해:

$ git checkout discover
Branch discover set up to track remote branch discover
Switched to a new branch 'discover'

원격에 있는 분기를 가져오는 가장 간단한 방법은 다음과 같습니다.

git fetch origin branchName
git checkout branchName

다음 기능을 사용하여 원격에 이미 있는지 확인할 수 있습니다.

git branch -r

원격 분기를 로컬로 가져오고 원격 분기를 자동으로 추적합니다.

다음을 사용합니다.

git checkout -b serverfix origin/serverfix

이것은 Git이 다음과 같은 약자를 제공할 정도로 흔한 작업입니다.

git checkout --track origin/serverfix

사실, 이것은 너무 흔해서 그 지름길로 가는 지름길도 있습니다.체크아웃하려는 지점 이름이 존재하지 않고 (a) 하나의 원격에만 있는 이름과 정확히 일치하는 경우 Git은 사용자를 위해 추적 지점을 만듭니다.

git checkout serverfix

원격 지점과 다른 이름으로 로컬 지점을 설정하려면 첫 번째 버전의 로컬 지점 이름을 사용하면 됩니다.

git checkout -b sf origin/serverfix

자 이제 지역 지사인 now 、 now 、 역 、 。sf자동으로 꺼냅니다.origin/serverfix요.

출처: Pro Git, 제2판 Scott Chacon과 Ben Straub이 작성했습니다. 가독성을 위해 잘랐습니다.

[빠른 답변입니다]

여러 가지 대안이 있으며, 제가 가장 좋아하는 것은 다음과 같습니다.

- 대안 1:

git fetch --all
git checkout YourBranch

로컬이 아닌 원격으로 존재하는 분기를 사용하여 이 대안을 사용합니다.

- 대안 2:

git checkout -b 'YourBranch' origin/'YourRemote'

아마도 이것이 가장 간단한 방법일 것입니다.

다음과 같은 간단한 명령을 사용합니다.

git checkout -b 'your_branch' origin/'remote branch'

제가 도움이 된 건요.

1) 사용 가능한 모든 원격 분기(예: 'remote-branch-name')를 봅니다.

git branch -r

2) 원격 지점 이름을 사용하여 로컬 지점을 만듭니다.

git fetch && git checkout 'remote-branch-name'
git fetch

git branch -r

git checkout <branch_name>

원격 지점을 한 번에 가져오고 체크아웃할 수도 있습니다.

git fetch && git checkout the-branch-name

입력했습니다.

git checkout <branch_name>

그리고 얻었어요

Branch <branch_name> set up to track remote branch <branch_name> from origin.
Switched to a new branch '<branch_name>'

간단히 시도해 보십시오.

git pull origin your_branch_name

때때로 마스터 브랜치를 만지작거리지 말고 원격 브랜치만 작동하도록 요청받습니다.원격 지점만 있으면 됩니다.

따라서 마스터 없이 원격 지점만 복제하려면 다음과 같이 하십시오.

git clone url --branch remote_branch_name

여기서 remote_module_name은 원격 지점의 이름입니다.

예를들면,

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git --branch v3.15

이렇게 하면 원격 분기의 이름을 사용하여 원격 분기를 로컬 분기에 복제합니다.

이제 코드를 커밋하고 를 누르면 해당 지점에만 코드가 제출됩니다.

단계는 다음과 같습니다.

  1. git fetch origin아니면요?git fetch --all모든 원격 분기를 로컬로 가져온 다음 이 옵션을 사용하여 처리할 수 있습니다.

  2. git checkout --track origin/<The_remote_branch you want to switch over>

그런 다음 이 분기에 대해 작업하면 해당 분기에 있는지 확인할 수 있습니다.

git branch

현재 속해 있는 분기가 표시됩니다.

모든 원격 분기를 가져오려면 다음과 같이 입력하십시오.

git fetch --all

리모컨이 git@xyz라고 가정해 보겠습니다.git 그리고 당신은 그것의 random_branch를 원합니다.프로세스는 다음과 같아야 합니다.

  1. 먼저 다음을 기준으로 원격지 목록을 확인하십시오.

    git remote -v

  2. 위의 명령 출력에 git@xyz.git 리모컨이 없는 경우 다음을 사용하여 추가합니다.

    git remote add xyz git@xyz.git

  3. 이제 다음 방법으로 원격지의 내용을 가져올 수 있습니다.

    git fetch xyz

  4. 이겁니다.

    git checkout -b my_copy_random_branch xyz/random_branch

  5. 이겁니다.

    git branch -a

로컬 지점 my_copy_random_branch는 원격의 random_branch 지점을 추적합니다.

복제한 저장소가 경우입니다.--depth 1그러면 나열된 많은 명령이 작동하지 않습니다.예를 들어 여기를 참조하십시오.

% git clone --depth 1 https://github.com/repo/code
Cloning into 'code'...
cd code
remote: Counting objects: 1778, done.
remote: Compressing objects: 100% (1105/1105), done.
remote: Total 1778 (delta 87), reused 1390 (delta 58), pack-reused 0
Receiving objects: 100% (1778/1778), 5.54 MiB | 4.33 MiB/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.
Checking out files: 100% (1215/1215), done.
% cd code
% git checkout other_branch
error: pathspec 'other_branch' did not match any file(s) known to git.
% git fetch origin other_branch
remote: Counting objects: 47289, done.
remote: Compressing objects: 100% (15906/15906), done.
remote: Total 47289 (delta 30151), reused 46699 (delta 29570), pack-reused 0
Receiving objects: 100% (47289/47289), 31.03 MiB | 5.70 MiB/s, done.
Resolving deltas: 100% (30151/30151), completed with 362 local objects.
From https://github.com/repo/code
 * branch            other_branch-> FETCH_HEAD
% git checkout other_branch
error: pathspec 'other_branch' did not match any file(s) known to git.
%

이 경우 저장소를 다시 눕히지만 git spear clone(clone --depth) misss remote branchs와 같은 다른 기법이 있을 수 있습니다.

git fetch --all & git checkout <branch name>

git fetch && git checkout <your friend's branch name>요령을 부려야 합니다

여러분도 확인해보십시오..git/config파일, 특히 해당 원격에 대해 가져올 때 어떤 추적이 있는지 확인하십시오.

[remote "randomRemote"]
    url = git@github.com:someUser/someRepo.git
    fetch = +refs/heads/*:refs/remotes/randomRemote/*

면면면면 it it가 있으면요.heads/*가리키며 말해요.randomRemote/*이렇게 하면 '달리다'를 볼 수 있습니다git fetch randomRemote, 모든 분기를 가져옵니다.

그럼 그 지점만 확인하시면 됩니다.

그렇지않으면,

  1. 이를 사용하여 원격 분기를 추적에 추가해야 합니다.여러분도 확인해보십시오..git/config네, 그렇습니다.네, 그렇습니다.

    git remote set-branches --add randomRemote randomBranch
    
  2. 려려를 실행합니다.git fetch randomRemote. 원격 분기를 가져옵니다 이겁니다.

  3. 이제 실행 가능합니다.git checkout randomBranch요.

모든 원격 분기를 로컬로 가져오고 새로 만든 로컬 분기로 전환하기 위한 단일 라인 명령을 제공합니다.

git fetch && git checkout discover

위 명령을 실행한 후 다음 메시지가 표시됩니다.

Switched to a new branch 'discover'
Branch discover set up to track remote branch discover from origin.

첫 번째 줄에는 가 새 지점으로 전환되었음을 나타냅니다. 왜 새 지점입니까?이미 원격에 있습니다!

하지만 실제로 로컬에서도 생성해야 합니다.원격 인덱스에서 분기를 가져와 사용자를 위해 로컬로 만듭니다.

여기 기기서서discover는 리포지토리의 원격 분기에서 생성된 새 입니다.discover요.

그러나 두 번째 줄은 첫 번째 줄보다 더 많은 정보를 제공합니다.

저희 지점은 같은 이름의 원격 지점을 추적하도록 설정되어 있습니다.

그래도요.git fetch 모든 분기를 로컬로 가져옵니다.하지만 당신이 도망친다면요git branch그뒤에 보면 '아까', '아까', '아까', '아까', '아까'만.master로컬 지점입니다.요?

원격지에 있는 지점마다 로컬로 만들어야 하기 에 이를 추적하려면 로컬로 만들어야 합니다.git checkout <branchname>이겁니다.

뛰면 됩니다.git checkout명령어를 실행할 수 있습니다.git branch이렇게 이야기합니다.

  1. 마스터 및 2. 로컬 목록에서 검색하십시오.

원격 지점을 이미 알고 있다면...

git remote
=> One
=> Two

br1.2.3.4와 같이 체크 아웃하고자 하는 지점 이름을 알고 있습니다.

git fetch One
=> returns all meta data of remote, that is, the branch name in question.

이제 지점만 체크하면 됩니다.

git checkout br.1.2.3.4

그럼 그걸로 새로운 가지를 만드세요.

git branch <name> --track origin/<name>

저장소를 다운받으면 됩니다.git clone <repo_url> -b <branch>복제 인증만), (복제 인증만), (복제 인증만), (복제 인증만) 수정해야 합니다.<repo_name>/.git/config파일의 가져오기 대상을 참조하는 행을 바꾸거나 수정합니다.[remote "origin"]명령어를 사용할 수 있는 섹션입니다.git fetch --all이겁니다.

[remote "origin"]
        url = <repo_git_url>
        fetch = +refs/heads/master:refs/remotes/origin/master

가져오기 매개 변수 지점을 다음과 같이 설정해야 합니다./heads/master요.

잘 부탁드립니다.git fetch --all왜냐하면 이게 다 가져올 테니까 시간이 오래 걸릴 거예요.

나뭇가지를 분리하기 위해 '깃 당기기'를 사용합니다.'lbranch'와 'rbranch'는 해독하기 어렵기 때문에 실제 저장소와 분기 이름을 사용해 보겠습니다.

다음을 사용합니다.

  • myteam.unfuddle.com = 원격 Git 서버입니다.
  • tlc = 저장소가 있는 프로젝트 계정을 삭제합니다.
  • daves_filength 원격 분기 이름 aves_filength = 원격 지점입니다.

    귀사 또는 동료는 지점 수에 관계없이 이 작업을 실행하여 지점만 끌어낼 수 있습니다.

    git init
    git pull git@myteam.unfuddle.com:myteam/tlc daves_branch:refs/remotes/origin/daves_branch
    
  • 간단한 명령어입니다.git checkout remote_branch_name원격 분기의 모든 변경 사항이 있는 로컬 분기를 만드는 데 도움이 됩니다.

    언급URL : https://stackoverflow.com/questions/9537392/git-fetch-a-remote-branch 입니다.