이 경우 상황은 리포지토리의 한 복제본에있는 master
분기의 끝 부분에 완료되지 않은 커밋이 있음을 나타냅니다. 그런 다음 git pull
은 같은 저장소에서 여러 번 실행되었습니다. 일정 기간 동안 업스트림에서 많은 새로운 작업이 수행되었습니다. (이 경우 자동화 된 스크립트로 인해 발생했지만, 개발자가 분기를 반복적으로 가져 와서 리베이스 (rebase)가 아닌 최신 상태로 유지한다면 똑같은 일이 발생할 수 있습니다.)
업스트림에없는 master
에 항상 커밋이 있었기 때문에 업스트림에 새로운 커밋이있을 때마다 모든 끌어 오기가 새 병합 커밋을 만들었습니다.
결국이 저장소의 마스터 분기의 기록이 업스트림으로 푸시되었습니다. 다른 개발자가 커밋 그래프의이 구조가 다음에 업스트림 저장소에서 풀리면 갑자기 나타납니다.
비슷한 구조의 기록이 있고이 문제를 일으킨 커밋/개발자를 찾으려면 별표가있는 행을 볼 수 있습니다 (기본적으로 모든 병합의 첫 번째 부모를 따름) 병합되지 않은 첫 번째 커밋을 얻을 때까지 그림의 경우 b275805
- 이전에 푸시되어야하는 커밋입니다.
사람들이 종종 git pull --rebase
을 선호하는 이유 중 하나입니다. 푸시 된 기록을 간단하게 유지합니다.
내 동료 Matthew Somerville이이를 발견하고 진행 상황을 해결했습니다.
* "다음에 오기 : 내 작업 트리가 크리스마스 트리와 어째서 어떨까요?"* – Amber
* "다음에 올 때 : 내 크리스마스 트리가 왜 git 기록처럼 보이나요?"* –
크리스마스 트리가 아닐 것입니다. 별이 없어도 완성됩니다.'*''''*' – ADTC