Git이 다른 저장소에서 분기를 가져 오나요?


90

github에 저장소의 복제 본인 로컬 git 저장소가 있습니다. 누군가가 저장소를 분기하고 새 저장소의 새 브랜치를 변경했습니다. 이 새 브랜치를 내 저장소로 옮기고 싶습니다 (마스터와 병합하기 전에 먼저 작업하기 위해 로컬에서).

새 분기를 만든 다음 분기 된 저장소에서 가져 오려고 시도했지만 새 분기가 마스터 분기의 복사본이고 로컬 파일 변경 사항이기 때문에 불평합니다.

error: Your local changes to the following files would be overwritten by merge.

그렇다면 다른 저장소의 분기를 내 로컬 저장소의 새 분기로 어떻게 가져올 수 있습니까?

그게 말이 되길 바랍니다. 그렇지 않은 경우 내 저장소입니다 : https://github.com/MatthewLM/cbitcoin

보시다시피 누군가 "linuxBuild"브랜치로 새 저장소를 만들었습니다 : https://github.com/austonst/cbitcoin/tree/linuxBuild

MatthewLM / cbitcoin의 로컬 저장소에 해당 분기를 원합니다.

어떻게 할 수 있습니까?

답변:


161

git status로컬 리포지토리에 단계되지 않은 변경 사항이 없음 을 보여주는 지 확인해야 합니다.
먼저 로컬 변경 사항을 숨기고 해당 분기를 가져 오는 것보다이를 수행 할 수 있습니다. 나중에 당신은 당신의 숨김을 적용 할 수 있습니다.


로컬 저장소에서 포크의 분기 구조를 다시 생성하려면 다음을 수행 할 수 있습니다.

git remote add fork <url of fork>
git fetch fork
git checkout -b fork_branch fork/<branch>

이렇게하면 포크에서 fork_branch와 같은 기록을 가진 로컬 브랜치가 생성됩니다 <branch>. 즉 , 포크에서하는 위치에서 fork_branch분기됩니다 . 또한 로컬 브랜치가 이제 포크에서 해당 브랜치를 추적하므로 포크에서 커밋 된 새로운 변경 사항을 쉽게 가져올 수 있습니다.master<branch>

작업 복사본에 변경 사항이 포함되지 않았는지 미리 확인해야한다고 생각합니다.


알았어 고마워. 내 로컬 변경 사항과 포크의 브랜치에서 찾을 수없는 커밋을 원한다면 이것은 좋을 것입니다. 하지만 새 브랜치가 포크 저장소에있는 것과 똑같이되도록하려면 어떻게해야합니까? 여기에는이 새 브랜치에 대해 포크가 발생한 후 내 저장소에서 커밋을 제거하는 것이 포함됩니다. 그렇게하면 분기가 분기 된 저장소가 아닌 내 저장소에서 만들어진 것처럼됩니다.
Matthew Mitchell

귀하의 대답은 내가해야 할 일에 대한 수용 가능한 솔루션이지만 새 분기를 저장소로 가져올 수 있다면 더 간단합니다. 다른 사람들의 말을보기 위해 잠시 기다릴 것입니다.
Matthew Mitchell

@MatthewMitchell : 업데이트를 확인하십시오. 그게 당신이 찾고 있던 것입니까?
Daniel Hilgarth

결국 다른 브랜치와 병합하는 방법을 사용했지만 (방금 마스터와 병합했습니다), 다른 저장소의 브랜치를 정확히 원하는 경우에는 가져 오기를 시도하고 설명하신 결제 방법입니다. 감사.
Matthew Mitchell

다른 저장소에서 다른 분기 "gh-pages"를 마이그레이션하는 데 사용됩니다!
Marcello de Sales

39

리모컨을 추가하지 않는 방법.

git checkout --orphan fork_branch
git reset --hard
git pull <url of fork> <branch>

2
감사합니다. 북마크에 추가했고 계속 다시 방문해주세요!
Shane Smiskol

2
2020 년 베스트 답변
Diamond
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.