programing

Github: 업스트림 분기를 포크로 가져옵니다.

iphone6s 2023. 7. 16. 12:52
반응형

Github: 업스트림 분기를 포크로 가져옵니다.

포크가 있습니다.origin) 프로젝트에서 (upstreamgithub에서 ).이제 업스트림 프로젝트에 새 분기가 추가되었습니다. 포크로 가져오려고 합니다.그걸 어떻게 하는 거죠?

리모컨을 체크아웃하고 그 위에 지점을 생성하려고 했지만, 이렇게 하면 지점이 다음과 같이 구성됩니다.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 스위치는 지정된 원격에 대한 추적을 설정합니다(이 예에서는 ).

저도 이것 때문에 어려움을 겪었고, 구글은 저를 여기로 데려갔습니다.하지만 해결책은 효과가 없었습니다.제 문제는 업스트림을 추가할 때 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/*

나는 사용할 것입니다.

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

UI에서:

분기로 이동하는 포크에서 '새 분기'를 클릭합니다.그러면 포크 또는 업스트림 중에서 소스를 선택할 수 있습니다.업스트림을 선택하고 '가져올' 분기를 선택합니다.같은 이름으로 분기를 만듭니다.다 했어요.

다음 단계는 저에게 잘 작동했습니다(업스트림 지점 이름이branch):

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

조금 더 복잡한 시나리오가 있었습니다. 제가 이미 가지고 있던 시나리오는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>

그러면 <other_user> 포크에서 파생된 로컬 분기가 제공됩니다.

그 지역 지점을 푸시하려면 푸시 명령을 구체적으로 수행해야 했습니다.

git push origin <branch>

--track?

git branch --track branch upstream/branch

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

반응형