우리 프로젝트에는 아주 이상한 git 히스토리가 있습니다. 먼저, 다음과 같은 역사를 가지고 있습니다 다른 프로젝트가 있었다 :연결되지 않은 git 기록을 연결하는 방법은 무엇입니까?
repo1 :
a---b---c
다음했다 우리의 프로젝트가 있었다
repo2 :
u---v---w
우리가 repo1을 필요에 따라 repo2의 코드에서 "똑똑한"프로그래머는 repo1의 마지막 커밋 (c)을 읽기 위해 read-tree를 사용 했으므로 지금은
u---v---w---w'
여기서 w '는 히스토리가없는 커밋 c를가집니다. 그런 다음 역사의 결과로 모두 repositorires에 약간의 변화가 있었다 :
a---b---c---d---e
u---v---w---w'---x---y
지금 우리가 혼란을 정리하고 우리의 저장소에 repo1의 변경 사항을 적용합니다. 그러나 단순히 두 개의 저장소를 병합 할 때 지점이 기록을 공유하지 않기 때문에 (실제로는 있지만 git은 알지 못함) 극한 충돌이 발생하므로 3 가지 병합을 수행 할 수 없습니다.
그래서 어떻게 3 가지 방법으로 병합 할 수 있습니까?
a---b---c---d---e
\
u---v---w--w'---x---y
커밋에 자식을 위해, 당신의
master
지점을 이동합니다 이는와 커밋 당신은 또한
w'
제거 수, 리베이스 또는 병합하기 전에, 여러분의 인생을 더 쉽게 만들려면 ~ 1.7.3 ?,'repo1/master'가 "정확하다"는 것을 안다면'git rebase -Xtheirs master' (역으로'-Xours')를 사용하여 자동 해결할 수 있습니다. –