A(트렁크)에서 포크합니다. 잠시 후 내 포크가 A 뒤에 있고 끌어오기 요청을 생성한 다음 여기에서 내 포크에 병합됩니다. 그러면 내 포크가 자동으로 A 1 커밋보다 앞서게 됩니다. . .
나와 같은 github 문제를 겪은 사람이 있나요? 어떻게 하면 자연스럽게 A와 동기화할 수 있나요?
走同样的路,发现不同的人生
fast-forward이 아닌 한, pull 후 자동으로 병합되며, 병합할 때마다 커밋 레코드가 생성됩니다.
fast-forward
해결책:
저장소가 트렁크보다 바로 뒤에 있고 다른 커밋이 없다면 이는 fast-forward입니다. 이때 pull 로컬 컴퓨터로 이동하여 로컬 콘텐츠와 병합합니다. 이 상황에서는 추가 커밋 레코드가 생성되지 않습니다. 그런 다음 로컬 코드를 원격 저장소에 푸시합니다.
pull
fast-forward 조건이 충족되지 않으면 pull --rebase 현지로 가서 rebase 작업을 완료해야 합니다. 성공 후 push 원격 저장소로 이동합니다.
pull --rebase
rebase
push
첨부파일: "How~~Rebase~~ rebase"에 대한 정보: https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request
그래서 rebase를 사용해야 하는데...
브랜치에서 아무것도 하지 않으면 리베이스든 병합이든 추가 커밋 없이 브랜치는 A의 헤드와 동일하게 됩니다. 물론, 무언가를 직접 변경하면 완전히 동기화되지 않습니다. 그렇지 않으면 버전 관리 시스템을 사용하여 열심히 작업해야 합니다. 그러나 리베이스와 병합의 차이점은 병합이 이 시점에서 새로운 변경 사항을 생성하는 반면, 리베이스는 새로운 변경 로그 없이 이 브랜치의 변경 기록을 A의 기록에 연결한다는 것입니다.
fast-forward
이 아닌 한, pull 후 자동으로 병합되며, 병합할 때마다 커밋 레코드가 생성됩니다.해결책:
저장소가 트렁크보다 바로 뒤에 있고 다른 커밋이 없다면 이는
fast-forward
입니다. 이때pull
로컬 컴퓨터로 이동하여 로컬 콘텐츠와 병합합니다. 이 상황에서는 추가 커밋 레코드가 생성되지 않습니다. 그런 다음 로컬 코드를 원격 저장소에 푸시합니다.fast-forward
조건이 충족되지 않으면pull --rebase
현지로 가서rebase
작업을 완료해야 합니다. 성공 후push
원격 저장소로 이동합니다.첨부파일: "How~~Rebase~~ rebase"에 대한 정보: https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request
그래서 rebase를 사용해야 하는데...
브랜치에서 아무것도 하지 않으면 리베이스든 병합이든 추가 커밋 없이 브랜치는 A의 헤드와 동일하게 됩니다.
물론, 무언가를 직접 변경하면 완전히 동기화되지 않습니다. 그렇지 않으면 버전 관리 시스템을 사용하여 열심히 작업해야 합니다.
그러나 리베이스와 병합의 차이점은 병합이 이 시점에서 새로운 변경 사항을 생성하는 반면, 리베이스는 새로운 변경 로그 없이 이 브랜치의 변경 기록을 A의 기록에 연결한다는 것입니다.