programing

GitHub에서 포크 간 병합

cafebook 2023. 5. 19. 00:00
반응형

GitHub에서 포크 간 병합

GitHub 저장소를 포크했습니다.그리고 나서 저는 제 포크에 잔돈을 좀 밀어 넣었습니다.그런 다음 원래 리포지토리에서 변경한 내용과 일부 다른 내용을 병합했습니다.이제 누락된 변경사항을 병합합니다.저는 간단한 당김과 푸시를 시도했지만, 이것은 제 커밋을 두 번 반복합니다.그것을 하는 가장 좋은 방법은 무엇입니까?

각 리포지토리에 대해 "원격"이 있을 수 있습니다.한 리모컨에서 다른 리모컨으로 눌러야 합니다.

원래 포크에서 복제한 경우 해당 원격을 "오리진"이라고 합니다.아직 추가하지 않은 경우 다른 리포지토리를 다른 원격으로 추가해야 합니다.

git remote add <shortname> git://github.com/<ownerName>/repo.git

설정이 모두 완료된 후에는 (github이 기본 분기를 변경함)master로.main필요에 따라 변경)

git pull <shortname> master
git push origin

기억하세요.git pull하는 매크로에 지나지 않습니다.git fetch그리고.git merge,그 차례로.다른 리포지토리에서 커밋 목록을 가져온 다음 해당 분기를 트리에 병합하기만 하면 됩니다.병합은 두 분기에 대한 커밋으로 올바른 작업을 수행해야 합니다.

GitHub은, 물론 여러분에게 지름길을 제공합니다.저장소의 포크에 "빨리 감기" 버튼이 있어 다른 쪽으로 완전히 병합된 경우 포크를 따라잡을 수 있습니다.

그래서 위에서 수락된 답변은 저에게 완벽하게 먹히지 않았습니다.즉, 그것이 작동했을 때 원래 github 저자와의 연결이 끊기는 것 같았고, 그 이후로는 더 이상 작동하지 않는 것 같았습니다.원격 이름과 지점 사이에 /가 누락된 것이 문제였던 것 같습니다.원격에서 마스터라는 브랜치를 가져오지만 아무것도 할 수 없습니다.이유는 잘 모르겠습니다.

Github이 사이트에서 추천하는 방법은 다음과 같습니다.

분기된 레포를 복제한 후에는 이전 답변과 같이 원본을 가리키는 원격 포인팅을 추가해야 합니다.그들은 그것을 상류라고 부르는 것을 좋아하지만, 그것은 중요하지 않습니다.

git remote add upstream git://github.com/octocat/Spoon-Knife.git

그럼 당신이 가져가세요.

git fetch upstream

그러면 병합할 수 있는 버전이 표시됩니다.

From git://github.com/octocat/Spoon-Knife.git
 * [new branch]      gh-pages   -> upstream/gh-pages
 * [new branch]      master     -> upstream/main

그런 다음 병합할 분기를 선택하면 됩니다.이것들은 로컬 지점이 아니라 원격으로 저장됩니다.그러나 upstream/master라는 로컬 분기가 없는 경우(허용됨) 아래 줄과 병합해도 괜찮습니다.

git merge upstream/main

또는 다음 행으로 fetch/merge(최소한 초기 fetch 이후)를 단축할 수 있습니다.

git pull upstream/main

언급URL : https://stackoverflow.com/questions/1123344/merging-between-forks-in-github

반응형