한 지역 지점을 다른 지역 지점으로 병합


167

마스터에서 분기 된 여러 분기가 있습니다 (각각 별도의 하위 디렉토리에 있음).

  • Branch1 : 완전히 개발되지 않은 새로운 개발
  • Branch2 : 문제에 대한 핫픽스이지만 여전히 테스트 중
  • Branch3 : 복원하지 않을 분기 주변 혼란

핫픽스 테스트가 완료되기 전에 Branch1에서 코드를 이미 사용할 수있게되었으므로 수정 프로그램을 계속 개발할 수 있습니다.
(그러나 git에 대한 나의 경험이 그다지 많지 않기 때문에 내가 Branch1 또는 Branch2를 엉망으로 만들기 전에 특히 엉망으로 만들기 위해 3 분기에서 병합으로 놀기 시작했습니다.)

내 세 번째 지점에서 먼저 다음을 시도했습니다.

git merge feature/Branch1

그러나 이것은 다음과 같은 오류를 일으켰습니다.

fatal: 'feature/Branch1' does not point to a commit

다음으로 Branch1에서 커밋 -a를 수행하고 다시 시도했지만 동일한 오류가 계속 발생합니다.

내가 뭘 잘못하고 있죠? 이 경우 Branch1과 Branch3의 코드를 병합하려면 어떻게해야합니까?

답변:


236

먼저 Branch3에 체크 아웃하십시오 :

git checkout Branch3

그런 다음 Branch1을 병합하십시오.

git merge Branch1

그리고 Branch2에서 Branch1의 업데이트 된 커밋을 원한다면 아마도 찾고 있습니다. git rebase

git checkout Branch2
git rebase Branch1

그러면 최신 Branch1 업데이트로 Branch2가 업데이트됩니다.


1
(Branch2를 Branch1;-로 업데이트하고 싶습니다.) Branch2에는 Branch1이 표시되지만 두 분기에서 git branch -a를 수행하면 다른 방법은 아닙니다. 따라서 Branch1의 Branch2로 리베이스를 수행 할 수 없습니다 : git rebase
Branch2-

git rebase origin / Branch2로 rebase를 수행하면 여전히 오류 메시지 + 잘못된 업스트림 origin / Branch2
Nemelis

1
@ Si8 이것은 Branch1에서 Branch3까지의 커밋 만 추가합니다. Branch1은 그대로 유지됩니다.
gabra

1
현재 Dev 분기에 있고 Dev1을 병합하면 Dev1이 Dev에 병합됩니다. 맞습니까?
Si8

1
예. 시도해 보는 것이 좋습니다. 무언가가 깨지면 다시 갈 수 있습니다. 이것이 VCS의 목적입니다.
gabra
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.