programing

git repo를 다른 repo의 분기에 병합

powerit 2023. 6. 27. 22:37
반응형

git repo를 다른 repo의 분기에 병합

repo Foo와 repo Bar가 주어졌습니다.나는 바를 푸와 병합하고 싶지만, 라고 불리는 별도의 분기에만 병합합니다.baz.

git switch -c baz<= 여기에 Barrepo를 배치합니다.

리포지토리분기로 병합할 수 없습니다.다른 리포지토리의 분기를 로컬 리포지토리의 분기로 병합할 수 있습니다.두 개의 저장소가 있다고 가정하면,foo그리고.bar둘 다 현재 디렉토리에 있습니다.

$ ls
foo bar

로 변경합니다.foo리포지토리:

$ cd foo

추가합니다.bar원격 저장소로 저장하고 가져오기:

$ git remote add bar ../bar
$ git remote update

새 분기 만들기baz에서foo현재 지점을 기반으로 하는 저장소:

$ git switch -c baz

분기 병합somebranch에서bar현재 분기에 대한 리포지토리:

$ git merge --allow-unrelated-histories bar/somebranch

(--allow-unrelated-historiesGit 버전 2.9 이전에는 필요하지 않습니다.)

"실제" 명령으로 업데이트됨:

repo 디렉토리에서 시작하여 작업 복사본이 깨끗한지 확인합니다(변경, 추가 또는 제거된 파일 없음).


새 분기 만들기:

git checkout -b <my-branch>

보조 리모컨을 추가한 다음 가져옵니다.

git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update

현재 분기에서 분기 중 하나를 병합합니다.

git merge <repo-name>/<their-branch>


어느 쪽이<their-branch>당신이 원한다면, 그럼.master

모든 원격 변경사항을 수락하고 충돌(덮어쓰기)을 방지하려면 다음을 지정할 수 있습니다.-X theirs의 옵션으로git merge마지막 단계에서

하위 디렉터리에 추가하려면 git 하위 모듈을 사용해야 합니다.

저는 larsk의 가이드를 이용하여 소스트리를 이용하여 이것을 할 수 있었습니다.

  1. 대상 리포지토리에 분기를 만들었습니다.
  2. 설정 버튼을 누르고 소스 저장소를 추가하여 소스 저장소를 원격으로 추가했습니다.
  3. 이제 두 리포지토리의 분기가 분기 목록에 표시됩니다.병합 도구를 사용하여 원본 리포지토리의 분기를 새 대상 리포지토리의 분기로 병합했습니다.
  4. 소스 트리 또는 내 IDE를 사용하여 충돌 해결
  5. 내 분기에서 변경사항을 커밋합니다.
  6. 설정 단추를 사용하여 원격 목록에서 원본 리포지토리를 제거합니다.

언급URL : https://stackoverflow.com/questions/21353656/merge-git-repo-into-branch-of-another-repo

반응형