IT

Github : 업스트림 분기를 포크로 가져 오기

lottoking 2020. 6. 7. 10:09
반응형

Github : 업스트림 분기를 포크로 가져 오기


github origin의 프로젝트 ( upstream) 에서 포크 ( )가 있습니다 . 이제 업스트림 프로젝트에 새 분기가 추가되었습니다. 포크로 가져오고 싶습니다. 어떻게합니까?

원격을 확인하고 그 위에 분기를 만들려고했지만 지점으로 git push푸시하려는 방식으로 분기를 구성 합니다 upstream.

git checkout upstream/branch
git checkout -b branch

편집하다

어쩌면 분명하지는 않지만 로컬 리포지토리에 지점을 추가하고 싶습니다 . origin를 통해 (내 포크)로 푸시 할 수 있습니다 git push. 업스트림 리포지토리는 일반적으로 읽기 전용이므로 기여하기 위해 분기합니다.

따라서 기본적으로 존재하지 않는 지점에서 origin내용을 가져 오는 체크 아웃하고 싶습니다 upstream.


  1. 새로운 상류 지점을 로컬 리포지토리가져 왔는지 확인하십시오 .

    • 먼저 작업 트리가 깨끗한 지 확인하십시오 (변경 사항을 커밋 / 보관 / 되돌리기)
    • 그런 다음 git fetch upstream새 업스트림 분기를 검색하려면
  2. 새 업스트림 분기 ( newbranch) 로컬 버전 을 작성하고 전환하십시오 .

    • git checkout -b newbranch upstream/newbranch
  3. 새 분기를 원점 으로 푸시 할 준비가되면 다음을 수행하십시오 .

    • git push -u origin newbranch

-u 지정된 원격으로 추적 업 스위치 세트 (이 예에서 origin)


나는 사용할 것이다

git checkout -b <new_branch> upstream/<new_branch>

나도 이것에 문제가 있었고 구글이 나를 데려 갔다. 그러나 솔루션이 작동하지 않았습니다. 내 문제는 업스트림을 추가 할 때 모든 분기가 아닌 마스터 만 가져 오도록 git 구성을 설정한다는 것입니다. 예를 들면 다음과 같습니다

[remote "somebody"]
        url = git@github.com:somebodys/repo.git
        fetch = +refs/heads/master:refs/remotes/upstream/master

다음과 같이 .git / config를 편집하면 문제가 해결되었습니다.

[remote "somebody"]
        url = git@github.com:somebodys/repo.git
        fetch = +refs/heads/*:refs/remotes/upstream/*

다음 단계는 나를 위해 잘 작동했습니다 (상류 지점 이름이이라고 가정 branch).

$ git fetch upstream
$ git checkout branch
$ git push origin

--track?

git branch --track branch upstream/branch

나는 upstream(정식 저장소에서) 내 포크에 이미 정의되어 있지만 다른 포크에서 지점을 체크 아웃 해야하는 약간 더 복잡한 시나리오가있었습니다 . 이를 수행하기 위해 프로세스는 약간 다릅니다. 내가 끝내는 구성은 다음과 같습니다.

[remote "origin"]
url = git@github.com:<your_user/org>/<repo>.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
[remote "upstream"]
url = git@github.com:<upstream_user>/<repo>.git
fetch = +refs/heads/*:refs/remotes/upstream/*
[remote "other_user"]
url = git@github.com:<other_user>/<repo>.git
fetch = +refs/heads/*:refs/remotes/<other_user>/*

이제 <other_user>포크 에서 지점을 체크 아웃 할 수 있습니다.

git fetch <other_user> <branch>
git checkout -b <branch> <other_user>/<branch>

그러면 포크에서 파생 된 로컬 지점이 제공됩니다.

To push that local branch I had to be specific with my push command.

git push origin <branch>

참고URL : https://stackoverflow.com/questions/4410091/github-import-upstream-branch-into-fork

반응형