etc./StackOverFlow

GitHub에서 분기된 리포지토리를 업데이트하거나 동기화하려면 어떻게 해야 합니까?

청렴결백한 만능 재주꾼 2021. 9. 28. 00:13
반응형

질문자 :Lea Hayes


프로젝트를 분기하고 몇 가지 수정 사항을 적용하고 수락된 pull 요청을 만들었습니다. 며칠 후 다른 기여자가 또 다른 변경 사항을 적용했습니다. 따라서 내 포크에는 해당 변경 사항이 포함되어 있지 않습니다.

변경 사항을 내 포크로 가져오려면 어떻게 해야 합니까? 기여할 추가 변경 사항이 있는 경우 포크를 삭제하고 다시 생성해야 합니까? 아니면 업데이트 버튼이 있나요?



답변자 : Mark Longair


분기된 리포지토리의 로컬 클론에서 원본 GitHub 리포지토리를 "원격"으로 추가할 수 있습니다. ("Remotes"는 저장소의 URL에 대한 별명과 같습니다 origin 은 하나입니다.) 그런 다음 해당 업스트림 저장소에서 모든 분기를 가져오고 업스트림 버전에서 계속 작업하도록 작업을 리베이스할 수 있습니다. 다음과 같은 명령으로 볼 수 있습니다.

 # Add the remote, call it "upstream": git remote add upstream https://github.com/whoever/whatever.git # Fetch all the branches of that remote into remote-tracking branches git fetch upstream # Make sure that you're on your master branch: git checkout master # Rewrite your master branch so that any commits of yours that # aren't already in upstream/master are replayed on top of that # other branch: git rebase upstream/master

마스터 브랜치의 기록을 다시 쓰고 싶지 않다면(예를 들어 다른 사람들이 복제했을 수 있기 때문에) 마지막 명령을 git merge upstream/master 바꿔야 합니다. 그러나 가능한 한 깨끗한 추가 pull 요청을 하려면 리베이스하는 것이 더 나을 것입니다.


upstream/master 로 리베이스한 경우 GitHub에서 분기된 자체 저장소로 푸시하기 위해 푸시를 강제해야 할 수 있습니다. 당신은 그것을 할 것입니다:

 git push -f origin master

rebase한 후에 처음으로 -f 를 사용해야 합니다.



답변자 : lobzik


2014년 5월부터 GitHub에서 직접 포크를 업데이트할 수 있습니다. 이것은 2017년 9월 현재까지 작동 하지만 커밋 기록이 더러워집니다.

  1. GitHub에서 포크를 엽니다.
  2. 풀 리퀘스트를 클릭합니다.
  3. 새 풀 요청을 클릭합니다. 기본적으로 GitHub는 원본을 포크와 비교하며 변경하지 않은 경우 비교할 것이 없어야 합니다.
  4. 해당 링크가 표시 되면 베이스 전환을 클릭합니다. 그렇지 않으면 수동으로 베이스 포크 드롭다운을 포크로 설정하고 헤드 포크 를 업스트림으로 설정하십시오. 이제 GitHub는 포크를 원본과 비교하고 모든 최신 변경 사항을 확인해야 합니다. 여기에 이미지 설명 입력
  5. pull 요청을 만들고 예측 가능한 이름을 pull 요청에 할당합니다(예: Update from original ).
  6. Merge pull request 까지 아래로 스크롤하되 아직 아무 것도 클릭하지 마십시오.

이제 세 가지 옵션이 있지만 각각은 덜 깨끗한 커밋 기록으로 이어집니다.

  1. 기본값은 못생긴 병합 커밋을 만듭니다.
  2. 드롭다운을 클릭하고 "스쿼시 및 병합"을 선택하면 중간에 있는 모든 커밋이 하나로 압축됩니다. 이것은 대부분 원하지 않는 것입니다.
  3. 당신이 Rebase 현재와 병합을 클릭하면 모든 커밋하면, 원래의 PR 당신의 PR로 연결됩니다 "와"할 것이며, GitHub를 표시합니다 This branch is X commits ahead, Y commits behind <original fork> .

예, GitHub 웹 UI를 사용하여 리포지토리를 업스트림으로 업데이트할 수 있지만 그렇게 하면 커밋 기록이 더럽혀집니다. 대신 명령줄을 사용하세요. 쉽습니다.



답변자 : jumpnett


다음은 포크 동기화에 대한 GitHub의 공식 문서입니다.

포크 동기화

설정

동기화하기 전에 업스트림 저장소를 가리키는 리모컨을 추가해야 합니다. 원래 포크할 때 이 작업을 수행했을 수 있습니다.

팁: 포크를 동기화하면 저장소의 로컬 복사본만 업데이트됩니다. GitHub의 저장소를 업데이트하지 않습니다.

 $ git remote -v # List the current remotes origin https://github.com/user/repo.git (fetch) origin https://github.com/user/repo.git (push) $ git remote add upstream https://github.com/otheruser/repo.git # Set a new remote $ git remote -v # Verify new remote origin https://github.com/user/repo.git (fetch) origin https://github.com/user/repo.git (push) upstream https://github.com/otheruser/repo.git (fetch) upstream https://github.com/otheruser/repo.git (push)

동기화 중

저장소를 업스트림과 동기화하는 데 필요한 두 가지 단계가 있습니다. 먼저 원격에서 가져와야 하고 원하는 분기를 로컬 분기에 병합해야 합니다.

가져오기

원격 저장소에서 가져오면 분기와 해당 커밋이 가져옵니다. 이들은 특수 분기 아래의 로컬 저장소에 저장됩니다.

 $ git fetch upstream # Grab the upstream remote's branches remote: Counting objects: 75, done. remote: Compressing objects: 100% (53/53), done. remote: Total 62 (delta 27), reused 44 (delta 9) Unpacking objects: 100% (62/62), done. From https://github.com/otheruser/repo * [new branch] master -> upstream/master

이제 업스트림의 마스터 브랜치가 로컬 브랜치인 upstream/master에 저장되었습니다.

 $ git branch -va # List all local and remote-tracking branches * master a422352 My local commit remotes/origin/HEAD -> origin/master remotes/origin/master a422352 My local commit remotes/upstream/master 5fdff0f Some upstream commit

병합

이제 업스트림 리포지토리를 가져왔으므로 변경 사항을 로컬 브랜치에 병합하려고 합니다. 이렇게 하면 로컬 변경 사항을 잃지 않고 해당 분기를 업스트림과 동기화할 수 있습니다.

 $ git checkout master # Check out our local master branch Switched to branch 'master' $ git merge upstream/master # Merge upstream's master into our own Updating a422352..5fdff0f Fast-forward README | 9 ------- README.md | 7 ++++++ 2 files changed, 7 insertions(+), 9 deletions(-) delete mode 100644 README create mode 100644 README.md

로컬 브랜치에 고유한 커밋이 없으면 git은 대신 "빨리 감기"를 수행합니다.

 $ git merge upstream/master Updating 34e91da..16c56ad Fast-forward README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)

팁: GitHub에서 리포지토리를 업데이트하려면 여기의 지침을 따르세요.



답변자 : Sahar Rabinoviz


많은 답변이 결국 상위 리포지토리 보다 한 커밋 앞서 포크를 이동합니다. 이 답변은 발견 단계 요약여기에 동일하게 포크를 이동합니다 부모 커밋을.

  1. 디렉토리를 로컬 저장소로 변경하십시오.

    • git checkout master 가 아닌 경우 master 브랜치로 전환
  2. 부모를 원격 저장소로 추가하고 git remote add upstream <repo-location>

  3. git fetch upstream
  4. git rebase upstream/master 발행

    • git status 를 입력하여 병합할 내용을 커밋하는지 확인합니다.
  5. git push origin master 발행

이러한 명령에 대한 자세한 내용은3단계를 참조하십시오.



답변자 : Slion


나처럼 master 에 직접 커밋하지 않는 경우 실제로 해야 하는 경우 다음을 수행할 수 있습니다.

포크의 로컬 클론에서 업스트림 리모컨을 만듭니다. 한 번만 수행하면 됩니다.

 git remote add upstream https://github.com/whoever/whatever.git

그런 다음 업스트림 리포지토리 마스터 브랜치를 따라잡고 싶을 때마다 다음을 수행해야 합니다.

 git checkout master git pull upstream master

마스터 자신에게 아무 것도 저지른 적이 없다고 가정하면 이미 완료되어야 합니다. 이제 로컬 마스터를 원본 원격 GitHub 포크로 푸시할 수 있습니다. 현재 최신 로컬 마스터에서 개발 분기를 리베이스할 수도 있습니다.

초기 업스트림 설정 및 마스터 체크아웃 이후에 다음 명령을 실행하여 마스터를 업스트림과 동기화하기만 하면 됩니다. git pull upstream master .



답변자 : Benny Neugebauer


서문: 포크는 "원본"이고 포크한 저장소는 "업스트림"입니다.

다음과 같은 명령을 사용하여 이미 포크를 컴퓨터에 복제했다고 가정해 보겠습니다.

 git clone git@github.com:your_name/project_name.git cd project_name

이것이 주어지면 다음 순서로 계속해야 합니다.

  1. 복제된 저장소("원본")에 "업스트림"을 추가합니다.

     git remote add upstream git@github.com:original_author/project_name.git
  2. "업스트림"에서 커밋(및 분기)을 가져옵니다.

     git fetch upstream
  3. 포크의 "마스터" 분기("원본")로 전환합니다.

     git checkout master
  4. "마스터" 브랜치의 변경 사항을 숨깁니다.

     git stash
  5. "업스트림"의 "마스터" 브랜치에서 "원본"의 "마스터" 브랜치로 변경 사항을 병합합니다.

     git merge upstream/master
  6. 병합 충돌이 있는 경우 해결하고 병합을 커밋합니다.

     git commit -am "Merged from upstream"
  7. 변경 사항을 포크로 푸시

     git push
  8. 숨긴 변경 사항을 되돌립니다(있는 경우).

     git stash pop
  9. 완료되었습니다! 축하합니다!

GitHub는 이 주제에 대한 지침도 제공합니다 . 포크 동기화



답변자 : isedwards


2013년 11월부터 GitHub에 로컬 포크를 업스트림과 동기화하도록 매우 간단하고 직관적인 방법을 추가하도록 요청하는 비공식 기능 요청이 있었습니다.

https://github.com/isaacs/github/issues/121

참고: 기능 요청은 비공식적이므로 구현될 이와 같은 기능에 대한 지원을 추가하려면 support@github.com 위의 비공식 기능 요청은 구현되고 있는 관심 금액의 증거로 사용될 수 있습니다.



답변자 : Lucero


이 답변의 날짜를 기준으로 GitHub에는 웹 인터페이스에서 이 기능이 없습니다. support@github.com 에 이에 대한 투표를 추가하도록 요청할 수 있습니다.

그 동안 GitHub 사용자 bardiharborow는 이를 수행하는 도구를 만들었습니다. https://upriver.github.io/

출처: https://github.com/upriver/upriver.github.io



답변자 : Shital Shah


Windows 또는 Mac용 GitHub를 사용하는 경우 이제 한 번의 클릭으로 포크를 업데이트할 수 있는 기능이 있습니다.

  1. UI에서 저장소를 선택합니다.
  2. 상단의 "사용자/지점에서 업데이트" 버튼을 클릭합니다.


답변자 : Gonçalo Peres 龚燿禄


GitHub의 webapp에서 수행하는 방법이 있습니다.

다음 예를 살펴보겠습니다.

시작하려면 업데이트하려는 리포지토리를 엽니다.

여기에 이미지 설명 입력

하나는 경고를 볼 수 있습니다

이 분기는 GoogleCloudPlatform:master 뒤에 있는 157개의 커밋입니다.

Pull requestCompare 두 개의 버튼이 있습니다. Compare 누릅니다.

비교 대상이 없을 수 switching the base

여기에 이미지 설명 입력

Create pull request 버튼을 눌러 풀 리퀘스트를 생성할 수 있습니다.

여기에 이미지 설명 입력

제목을 지정하고 "리포지토리 업데이트"라고 말합시다.

여기에 이미지 설명 입력

그리고 풀 리퀘스트를 생성합니다.

요청이 생성되면 맨 아래로 스크롤하여 Merge pull request 누릅니다.

여기에 이미지 설명 입력

병합을 확인하면 끝입니다!



답변자 : max630


실제로 브라우저의 업스트림 커밋에서 분기를 생성할 수 있습니다.

  • https://github.com/<repo>/commits/<hash> 엽니다. 여기서 repo 는 포크이고 hash 는 업스트림 웹 인터페이스에서 찾을 수 있는 커밋의 전체 해시입니다. 예를 들어 https://github.com/max630/linux/commits/0aa0313f9d576affd7747cc3f179feb097d28990 을 열 수 있으며 이는 작성 시점으로 linux master 를 가리킵니다.
  • "트리: ...." 버튼을 클릭합니다.
  • 새 분기의 이름을 입력하고 Enter 키를 누릅니다.

여기에 이미지 설명 입력

그런 다음 해당 분기를 로컬 클론으로 가져올 수 있으며 해당 커밋 위에 편집을 푸시할 때 모든 데이터를 GitHub로 다시 푸시할 필요가 없습니다. 또는 웹 인터페이스를 사용하여 해당 분기에서 무언가를 변경하십시오.

작동 방식(추측입니다. GitHub가 정확히 어떻게 작동하는지 모르겠습니다): 포크는 객체 스토리지를 공유하고 네임스페이스 를 사용하여 사용자의 참조를 분리합니다. 따라서 포크할 때 존재하지 않았더라도 포크를 통해 모든 커밋에 액세스할 수 있습니다.



답변자 : Rafael Z. B. Bravo


다음 한 줄로 분기된 저장소를 업데이트합니다.

 git pull https://github.com/forkuser/forkedrepo.git branch

여기에 게시된 다른 솔루션과 같이 프로젝트에 다른 원격 끝점을 추가하지 않으려면 이것을 사용하십시오.



답변자 : Madhu Bhat


GitHub는 이제 버튼 클릭으로 포크를 동기화하는 기능을 도입했습니다 .

포크로 이동하여 Fetch upstream 을 클릭한 다음 Fetch and merge 를 클릭하여 포크를 상위 리포지토리와 직접 동기화합니다.

여기에 이미지 설명 입력

병합하기 전에 변경 사항을 비교하기 위해 Compare 버튼을 클릭할 수도 있습니다.

참고 : GitHub의 트윗



답변자 : Venkat.R


아래 단계를 따르세요. 나는 그것들을 시도했고 그것은 나를 도왔다.

지점으로 체크아웃

구문: git branch yourDevelopmentBranch
예: git 체크아웃 마스터

최신 코드를 가져오기 위한 풀 소스 저장소 분기

구문: git pull https://github.com/tastejs/awesome-app-ideas 마스터
예: git pull https://github.com/ORIGINAL_OWNER/ORIGINAL_REPO.git BRANCH_NAME



답변자 : Thomas Guyot-Sionnest


이 답변을 보완하기 위해 업스트림 분기에서 복제된 저장소( origin )의 모든 원격 분기를 한 번에 업데이트하는 방법을 찾고 있었습니다. 이것이 내가 한 방법입니다.

이것은 소스 저장소(origin 이 분기된 곳)를 가리키는 업스트림 원격을 이미 구성 git fetch upstream 과 동기화했다고 가정합니다.

그런 다음 다음을 실행합니다.

 for branch in $(git ls-remote --heads upstream|sed 's#^.*refs/heads/##'); do git push origin refs/remotes/upstream/$branch:refs/heads/$branch; done

이 명령의 첫 번째 부분은 업스트림 원격 저장소의 모든 헤드를 나열하고 SHA-1 다음에 refs/heads/ 분기 이름 접두사를 제거합니다.

그런 다음 이러한 각 분기에 대해 업스트림 원격 추적 분기(로컬 측의 refs/remotes/upstream/<branch> 의 로컬 복사본을 원점 의 원격 분기( 원격 측의 refs/heads/<branch> ).

이러한 분기 동기화 명령 중 하나는 업스트림 분기가 다시 작성되었거나 해당 분기의 커밋을 포크로 푸시한 두 가지 이유 중 하나로 인해 실패할 수 있습니다. 포크의 분기에 아무 것도 커밋하지 않은 첫 번째 경우에는 강제로 푸시하는 것이 안전합니다( -f 스위치 추가, 즉 위 명령에서 git push -f 다른 경우에는 포크 분기가 분기되어 정상이며 커밋이 upstream 으로 다시 병합될 때까지 sync 명령이 작동할 것으로 기대할 수 없습니다.



답변자 : krlmlr


"Pull" 앱 은 자동으로 설정하고 잊어버리는 솔루션입니다. 포크의 기본 분기를 업스트림 저장소와 동기화합니다.

URL을 방문하여 녹색 "설치" 버튼을 클릭하고 자동 동기화를 활성화할 저장소를 선택합니다.

분기는 GitHub에서 직접 시간당 한 번 업데이트되며, 로컬 컴퓨터에서 마스터 분기를 가져와 로컬 복사본이 동기화되었는지 확인해야 합니다.



답변자 : prosti


업스트림을 설정하는 경우. git remote -v 확인하면 충분합니다.

 git fetch upstream git checkout master git merge --no-edit upstream/master git push


답변자 : Prateek Chanda


분기된 저장소를 복제했으면 복제가 있는 디렉터리 경로와 Git Bash 터미널의 몇 줄로 이동합니다.

 $ cd project-name $ git remote add upstream https://github.com/user-name/project-name.git # Adding the upstream -> the main repo with which you wanna sync $ git remote -v # you will see the upstream here $ git checkout master # see if you are already on master branch $ git fetch upstream

그리고 거기에 가면 좋습니다. 기본 리포지토리에서 업데이트된 모든 변경 사항은 포크 리포지토리로 푸시됩니다.

"fetch" 명령은 프로젝트에서 최신 상태를 유지하는 데 필수 불가결합니다. "git fetch"를 수행할 때만 동료가 원격 서버에 푸시한 변경 사항에 대한 정보를 얻을 수 있습니다.

추가 쿼리를 위해 여기 를 방문할 수 있습니다.



답변자 : alexshr


Android Studio는 이제 GitHub 포크 리포지토리를 사용하는 방법을 배웠습니다(콘솔 명령으로 "업스트림" 원격 리포지토리를 추가할 필요도 없음).

메뉴 열기 VCSGit

그리고 마지막 두 개의 팝업 메뉴 항목에 주의하십시오.

  • 내 GitHub 포크 리베이스

  • 풀 리퀘스트 생성

그들을 시도하십시오. 첫 번째 것을 사용하여 로컬 저장소를 동기화합니다. 어쨌든 "Rebase my GitHub fork"를 클릭하면 상위 원격 저장소("업스트림")의 분기에 액세스할 수 있으며 쉽게 작업할 수 있습니다.

(저는 "Git 통합" 및 "GitHub" 플러그인과 함께 Android Studio 3.0을 사용합니다.)

여기에 이미지 설명 입력



답변자 : s0nicYouth


이는 저장소의 크기와 포크 방법에 따라 다릅니다.

꽤 큰 저장소라면 특별한 방법(예: 삭제 기록)으로 관리하기를 원했을 것입니다. 기본적으로 현재 버전과 업스트림 버전 간의 차이점을 확인하고 커밋한 다음 다시 마스터로 선택할 수 있습니다.

이것을 읽어보십시오. 큰 Git 리포지토리를 처리하는 방법과 최신 변경 사항으로 업스트림하는 방법을 설명합니다.



답변자 : Saurabh P Bhandari


@krlmr의 답변 에 추가하고 싶습니다.

처음에 분기된 저장소에는 master 라는 브랜치가 하나 있습니다. 새 기능이나 수정 사항에 대해 작업하는 경우 일반적으로 새 분기 feature 을 만들고 변경합니다.

분기된 리포지토리가 상위 리포지토리와 동기화되도록 하려면 다음과 같이 풀 앱 ( 기능 분기에 pull.yml )에 대한 구성 파일( pull.yml )을 설정할 수 있습니다.

 version: "1" rules: - base: feature upstream: master mergeMethod: merge - base: master upstream: parent_repo:master mergeMethod: hardreset

master 브랜치가 상위 리포지토리와 함께 최신 상태로 유지됩니다. 분기된 저장소 feature 분기를 병합하여 분기된 저장소 master 분기를 통해 업데이트된 상태로 유지합니다. feature 분기가 구성 파일을 포함하는 기본 분기라고 가정합니다.

여기서 두 mergemethods 하나이고, 재생에있다 hardreset 구동력 동기 변화 도와 master 인 상위 REPO 다른 방법과 REPO 갈래의 분기 merge . feature master 분기에서 강제 동기화로 인해 수행된 변경 사항을 병합하는 데 사용됩니다. 병합 충돌의 경우 풀 앱을 사용하면 풀 요청 중에 다음 작업 과정을 선택할 수 있습니다.

여기에서 기본 및 고급 구성과 다양한 mergemethods 에 대해 읽을 수 있습니다.

나는 현재 내 갈래의 repo에서이 구성을 사용하고 여기에 있는지 향상 요청하기 위해 여기에 숙박이 업데이트되었습니다.



답변자 : Ilyich


포크가 https://github.com/me/foobar 이고 원본 저장소가 https://github.com/someone/foobar 라고 가정합니다.

  1. 방문 https://github.com/me/foobar/compare/master...someone:master

  2. Able to merge 수 있다는 녹색 텍스트가 표시되면 풀 리퀘스트 생성 을 누릅니다.

  3. 다음 페이지에서 페이지 하단으로 스크롤하여 Merge pull requestConfirm merge 를 클릭합니다.



답변자 : Chetabahana


분기된 저장소를 항상 업데이트하도록 유지하는 데에는 두 가지 주요 사항이 있습니다.

1. 포크 마스터에서 분기를 만들고 거기에서 변경합니다 .

따라서 풀 요청 이 수락되면 제공한 코드가 업스트림으로 업데이트할 때 분기된 리포지토리의 마스터에 라이브이므로 안전하게 분기를 삭제할 수 있습니다. 이것에 의해 당신의 주인은 다른 변화를 하기 위해 새로운 분기를 만들기 위해 항상 깨끗한 상태에 있을 것입니다.

2. 포크 마스터가 자동으로 업데이트 를 수행하도록 예약된 작업 을 생성합니다.

이것은 cron 으로 할 수 있습니다. 다음은 Linux에서 수행하는 경우의 예제 코드입니다.

 $ crontab -e

이 코드를 crontab file 에 넣어 시간 단위로 작업을 실행합니다.

 0 * * * * sh ~/cron.sh

cron.sh 스크립트 파일과 ssh-agent 와의 자식 상호 작용 을 생성하고 아래와 같이 예상합니다.

 #!/bin/sh WORKDIR=/path/to/your/dir REPOSITORY=<name of your repo> MASTER="git@github.com:<username>/$REPOSITORY.git" UPSTREAM=git@github.com:<upstream>/<name of the repo>.git cd $WORKDIR && rm -rf $REPOSITORY eval `ssh-agent` && expect ~/.ssh/agent && ssh-add -l git clone $MASTER && cd $REPOSITORY && git checkout master git remote add upstream $UPSTREAM && git fetch --prune upstream if [ `git rev-list HEAD...upstream/master --count` -eq 0 ] then echo "all the same, do nothing" else echo "update exist, do rebase!" git reset --hard upstream/master git push origin master --force fi cd $WORKDIR && rm -rf $REPOSITORY eval `ssh-agent -k`

분기된 저장소를 확인하십시오. 때때로 항상 다음 알림이 표시됩니다.

이 분기는 <upstream> :master 에도 있습니다.

여기에 이미지 설명 입력



답변자 : Do Nhu Vy


이 명령을 사용하십시오(운이 좋은 경우).

 git remote -v git pull git fetch upstream git checkout master git merge upstream/master --no-ff git add . git commit -m"Sync with upstream repository." git push -v


답변자 : Tuntable


rm -rf oldrepository git clone ...

더 미묘한 옵션이 있을 수 있지만 내 로컬 저장소가 업스트림과 동일하다는 확신을 가질 수 있는 유일한 방법입니다.



답변자 : Kumar Gaurav


이것을 시도하고 "업스트림 가져오기"를 클릭하여 업스트림 마스터에서 분기된 저장소를 동기화하십시오. 여기에 이미지 설명 입력



답변자 : Gangula


GitHub Desktop을 사용한다면 6단계(실제로는 5단계)만 있으면 쉽게 할 수 있습니다.

Github Desktop을 열고 저장소를 선택하면

  1. 기록 탭으로 이동
  2. 검색창을 클릭하세요. 사용 가능한 모든 분기(상위 저장소의 업스트림 분기 포함)가 표시됩니다.
  3. 해당 업스트림 분기를 선택합니다(마스터 분기를 동기화하는 업스트림/마스터가 됨).
  4. (선택 사항) 업스트림 분기의 모든 커밋을 표시합니다. 커밋을 클릭하면 변경 사항을 볼 수 있습니다.
  5. 활성 브랜치를 기반으로 master / branch-name 에서 병합을 클릭합니다.
  6. GitHub Desktop이 마술을 할 때까지 기다리십시오.

예를 들어 아래 GIF를 확인하십시오.

상위 리포지토리에서 분기된 리포지토리의 업스트림 분기 동기화



답변자 : metanerd


각각의 업스트림에서 GitHub 포크를 최신 상태로 유지하려면 특히 GitHub용 probot 프로그램이 있습니다. https://probot.github.io/apps/pull/ 이 작업을 수행합니다. 계정에 설치를 허용해야 하며 포크를 최신 상태로 유지합니다.



답변자 : AlexSh


로컬 컴퓨터에서 분기된 저장소를 업데이트하는 방법은 무엇입니까?

먼저 리모컨/마스터를 확인하십시오.

 git remote -v

오리진과 업스트림이 있어야 합니다. 예를 들어:

 origin https://github.com/your___name/kredis.git (fetch) origin https://github.com/your___name/kredis.git (push) upstream https://github.com/rails/kredis.git (fetch) upstream https://github.com/rails/kredis.git (push)

그 후 메인으로 이동:

 git checkout main

업스트림에서 메인으로 병합:

 git merge upstream/main


답변자 : David Odhiambo


$ git remote add upstream https://github.com/.... $ git pull upstream main $ git push


출처 : Here


출처 : http:www.stackoverflow.com/questions/7244321/how-do-i-update-or-sync-a-forked-repository-on-github">

반응형