source

리모트 서버에서 특정 브랜치를 꺼냅니다.

gigabyte 2023. 4. 24. 23:25
반응형

리모트 서버에서 특정 브랜치를 꺼냅니다.

칩시다.xyz 해야 xyz원격 서버(예: GitHub)에서 기존 브랜치에 병합합니다.xyz제역지 포포???

Push branchs to Git에 대한 답변은 "! [rejected]"라는 오류와 "non fastforward"를 나타냅니다.

그러나 에러 「![거부]」와 「빠르지 않다」가 표시된다.

Git은 브랜치 변경 사항을 현재 마스터로 병합할 수 없기 때문입니다. 지점을 master 싶다other-branch 다음 중 하나:

$ git pull origin other-branch

Git은 기본적으로 다음과 같은 작업을 수행합니다.

$ git fetch origin other-branch && git merge other-branch

아, 아, 아, 아.pull...fetch에 '아예'가 붙습니다.merge ,의 경우, 이의 경우pull-ing, Git은 Marge만 합니다.other-branch Fast Forward Merge를 실행할 수 있는지 확인합니다.빨리 감기 병합은 병합하려는 브랜치 헤드가 병합하려는 브랜치 헤드의 직계 하위 항목인 병합입니다.예를 들어, 이 기록 트리가 있는 경우 병합other-branch merge가 합니다.

O-O-O-O-O-O
^         ^
master    other-branch

단, 이것은 고속 전송 머지는 아닙니다.

    v master
O-O-O
\
 \-O-O-O-O
         ^ other-branch

문제를 해결하려면 먼저 리모트브런치를 가져옵니다.

$ git fetch origin other-branch

다음 분파로 master))) 、 [ ] 、 [ ] 、 [ Merge Conflicts ]를 클릭합니다.

$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit    # And commit the merge!

브랜치를 하고, 한 브랜치를 합니다.git pull이데올로기 때문에

git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name

후자는 로컬 운영입니다.

또는 포킹에 관한 GitHub 문서와 더 잘 어울립니다.

git branch -f new_local_branch_name upstream/remote_branch_name

안전한 접근방식은 먼저 로컬브런치(xyz)를 작성한 후 리모트브런치를 로컬로 끌어당기는 것입니다.

# create a local branch
git checkout -b xyz

# make sure you are on the newly created branch
git branch

# finally pull the remote branch to your local branch
git pull origin xyz

리모트 브런치를 로컬브런치로 풀 수 있는 구문을 다음에 나타냅니다.

git pull {repo} {remotebranchname}:{localbranchname}

git pull origin xyz:xyz

가장 좋은 방법은 다음과 같습니다.

git checkout -b <new_branch> <remote repo name>/<new_branch>

git fetch는 최신 브랜치 리스트를 가져옵니다.

, 이제 은 할 수 있습니다.git checkout MyNewBranch

완료:)


자세한 내용은 문서: git fetch를 참조하십시오.

문제를 완전히 이해하고 있는지는 모르겠지만, 기존 브랜치를 이렇게 꺼냅니다(적어도 나에게는 효과가 있습니다).

git pull origin BRANCH

이것은 오리진/브런치에서 로컬브런치가 생성되었다고 가정합니다.

말하면, GitHub에서 빼야 합니다.the-branch-I-want:

git fetch origin
git branch -f the-branch-I-want origin/the-branch-I-want
git checkout the-branch-I-want

이것에 의해, 리모트 브랜치를 다른 브랜치로 통합하기 전에 취득할 수 있었습니다.

git fetch repo xyz:xyz
git checkout xyz

GitHub에서 브랜치를 꺼내기 위해 사용할 수 있습니다.

git checkout --track origin/the-branch-name

지점 이름이 정확히 동일한지 확인하십시오.

했다

git branch -f new_local_branch_name origin/remote_branch_name

대신

git branch -f new_local_branch_name upstream/remote_branch_name

@innaM in @ 。업스트림/) 하지 않습니다.이 경우 '/remote_name'은 '/remote_remote_name'을 클릭합니다.는 하지 않았다git fetch origin바와 , 대신 대체하여upstreamorigin츠키다

git pull <gitreponame> <branchname>

보통 코드에 repo만 할당되어 있다면 gitreponame이 원본이 됩니다.

git remote -v에서 repo 목록을 확인할 수 있는 것처럼 두 개의 repo를 작업하는 경우, 이것은 현재 코드에 할당된 repo의 수를 보여줍니다.

BranchName은 대응하는 gitreponame에 존재해야 합니다.

다음 두 명령을 사용하여 repo를 추가하거나 제거할 수 있습니다.

git remote add <gitreponame> <repourl>
git remote remove <gitreponame>

너도 할 수 있어

git pull -r origin master

Marge 경합이 있는 경우 수정

git rebase --continue

-r은 기본 재배치용입니다.이것으로 브랜치 구조가 됩니다.

        v  master       
o-o-o-o-o
     \o-o-o
          ^ other branch

로.

        v  master       
o-o-o-o-o-o-o-o
              ^ other branch

이것은 더 깨끗한 역사로 이어질 것이다.주의: 이미 other-branch를 origin(또는 기타 리모트)으로 푸시한 경우 rebase 후 강제로 브랜치를 푸시해야 할 수 있습니다.

git push -f origin other-branch

로 시험해 볼 수 있다.

git branch -a

★★★★★★★★★★★★★★★★★」git fetch최신 지점 목록을 가져옵니다.

git checkout theBranch//합니다//지점에 접속합니다

git checkout -b "yourNewBranch"// Branch」/「The Branch」에

이거면 되겠네요.

  1. 「」는 「」로컬브런치).<remote_repo> 및 " " " 입니다.<remote_branch>★★★★★★★★★★★★★★★★★★★★★★★★★★★★」
git pull <remote_repo> <remote_branch>

예.

git pull origin remote_master
  1. 서 「」는, 「」를 참조해 주세요.<local_branch>★★★★★★★★★★★★★★★★★★★★★★★★★★★★」
git pull <remote_repo> <remote_branch>:<local_branch>

예.

git pull origin remote_master:local_master

리모트에서 로컬로 새로운 브랜치를 도입하는 심플한 솔루션

  1. 원격 분기 가져오기

    git fetch xyz

  2. 로컬로 그 지점으로 전환하다

    git switch xyz

  3. 마지막으로 를 실행하여 로컬브런치에 xyz가 표시되는지 여부를 확인합니다.

    git branch

로컬 사용자는 마스터브런치와 XYZ 브런치를 개별적으로 갱신해야 한다

이 게시물들 중 어느 것도 원래 질문에 답하지 않습니다!

리모트 서버(GitHub 등)에서 브랜치 xyz를 꺼내 로컬 리포에 있는 기존 브랜치 xyz에 결합하려면 어떻게 해야 합니까?Push branchs to Git에 대한 답변은 "! [rejected]"라는 오류와 "non fastforward"를 나타냅니다.

「Marge」를 하는 xyz으로 xyz 저장소 브런치가 의 「 Branch」를 「interning.xyz같은 리모트 브랜치로 「풀」을 실행합니다.심플!

git checkout xyz
git pull origin xyz

그런데 사용자가 에러를 냈어요!그 업데이트는 작동하지 않았어. 왜?

만약 이게 실패한다면, 그건 두 가지와는 아무 관련이 없다.xyz원격 저장소 및 로컬 저장소의 분기를 병합할 수 없습니다.원격 저장소의 마스터 분기가 로컬 저장소에 없는 새 커밋으로 변경된 것 같습니다.Fast Forward 메시지는 아마도 다음 메시지가xyz리모트 리포의 브랜치가 로컬리포를 갱신할 수 없습니다.xyz로컬 repo가 먼저 리모트 repo에서 마스터 브랜치에 추가된 모든 변경을 가져올 때까지 브랜치합니다.

이는 다른 개발자가 리모트마스터 브랜치에 추가한 새로운 커밋 또는 변경일 수 있습니다.다른 개발자가 리모트마스터 브랜치에 추가한 변경은 다음 기본 설정을 다시 실행합니다.xyz리모트 마스터의 새로운 커밋 헤드의 끝으로 이동합니다.로컬 repo 사용자는 마스터브런치 끝에 추가된 새로운 커밋이 없기 때문에 변경을 Marge할 방법이 없습니다.따라서 로컬 repo 사용자는 이 변경을 갱신할 수 없습니다.xyzrepo의 로컬 마스터 브런치가 merge로 업데이트될 때까지 기본 변경을 다시 지정합니다.pull,첫번째.

먼저 로컬 마스터를 리모트마스터의 업데이트로 갱신합니다.pull, 그 다음에, 를 사용해 주세요.xyz분점pull또...

git checkout master
git pull origin

git checkout xyz
git pull origin xyz

기억해, apull그냥...fetch그리고나서merge리모트 레포에서 로컬 레포에 현재 주력하고 있는 브랜치의 레포까지.

언급URL : https://stackoverflow.com/questions/1709177/pull-a-certain-branch-from-the-remote-server

반응형