git fast-forwarding이란 무엇입니까?
이 질문에 이미 답변이 있습니다.
이것은 멍청한 질문처럼 들릴지 모르지만 그것에 대한 간단한 대답을 찾을 수 없습니다.
빨리 감기는 모든 커밋이 대상 브랜치에서 재생되고 해당 브랜치 HEAD
의 마지막 커밋으로 설정 된다는 것을 의미한다고 가정해도 괜찮 습니까?
첫 번째 커밋의 히스토리를 따라 도달 할 수있는 커밋과 하나의 커밋을 병합하려고 할 때 Git은 함께 병합 할 다른 작업이 없기 때문에 포인터를 앞으로 이동하여 작업을 단순화합니다.이를 "빨리 감기"라고합니다.
추가 정보 : http://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
다른 방식으로는,
Master가 분기되지 않은 경우 새 커밋을 생성하는 대신 git은 master가 기능 브랜치의 최신 커밋을 가리 킵니다. 이것은 "빨리 감기"입니다. 빨리 감기 병합에는 "병합 커밋"이 없습니다.
Git에서 "빨리 감기" HEAD
는 새 값이 이전 값의 직계 후손이되도록 포인터 를 업데이트하는 것을 의미 합니다. 즉, 이전 값은 부모, 조부모 또는 조부모입니다.
새 항목 HEAD
이 통합하려는 스트림과 관련하여 분기 된 상태 인 경우 빠른 전달이 불가능합니다 . 예를 들어, 당신은 켜져 master
있고 로컬 커밋이 있고 git fetch
새로운 업스트림 커밋을 origin/master
. 이제 분기가 업스트림에서 분기되어 빨리 감기 master
HEAD
가 불가능 합니다. 커밋은의 조상이 아닙니다 origin/master
HEAD
. master
값으로 재설정 하면 origin/master
로컬 커밋이 삭제됩니다. 상황에 따라 리베이스 또는 병합이 필요합니다.
로컬 master
에 변경 사항이 없으면 빨리 감을 수 있습니다. 간단히 최신 .NET과 동일한 커밋을 가리 키도록 업데이트 할 수 있습니다 origin/master
. 일반적으로 빨리 감기를 수행하는 데 특별한 단계는 필요하지 않습니다. 로컬 커밋이없는 경우 merge
또는 rebase
상황에서 수행됩니다 .
빨리 감기는 모든 커밋이 대상 브랜치에서 재생되고 HEAD가 해당 브랜치의 마지막 커밋으로 설정된다는 것을 의미한다고 가정해도 괜찮습니까?
아니요,이를 rebasing 이라고합니다.이 중 빨리 감기는 재생할 커밋이없는 특수한 경우입니다 (대상 분기에 새 커밋이 있고 대상 분기의 기록이 다시 작성되지 않았으므로 모든 커밋이 수행됨). 대상 분기에는 현재 분기가 조상으로 있습니다.)
참고 URL : https://stackoverflow.com/questions/29673869/what-is-git-fast-forwarding
'Nice programing' 카테고리의 다른 글
Entity Framework- " 'Closure type'유형의 상수 값을 만들 수 없습니다…"오류 (0) | 2020.10.10 |
---|---|
생성자를 명시 적으로 삭제하는 이유는 무엇입니까? (0) | 2020.10.10 |
ADL이 함수 템플릿을 찾지 못하는 이유는 무엇입니까? (0) | 2020.10.10 |
Async await 키워드는 ContinueWith 람다와 동일합니까? (0) | 2020.10.10 |
.NET 용 명령 줄 인수 파서 찾기 (0) | 2020.10.10 |