Git 분기 통합 충돌 해결 방법 구현
제출 역사 에 따 르 면 그림 의 모든 분기 합병 은 merge 방식 을 사용 하고 구체 적 인 merge 가 어떻게 작 동 하 는 지 알 수 있 으 며 다음 글 을 읽 을 수 있 습 니 다.
프로젝트 의 수요 에 따라 git 에 게 역 사 를 제출 하 라 고 요구 하 는 것 이 비교적 간단 한 시간 선 이 라면 rebase 의 합병 을 사용 할 수 있 습 니 다.이 요구 가 없 으 면 merge 를 사용 하여 합병 할 수 있 습 니 다.그 분기 트 리 는 그물 모양 구조 이지 만 제출 할 때마다 명확 하고 뚜렷 합 니 다.그들의 차 이 는 참고 할 수 있다git merge 와 git rebase 의 차이 점 및 인 스 턴 스:
(1)원 격 fetch 의 코드 는 로 컬 에서 수정 되 지 않 고 rebase 하면 됩 니 다.
(2)로 컬 에서 파일 을 수정 할 때 add,rebase 가 없 으 면"Cannot rebase:You have unstaged changes.Please commt or stash them."라 는 메시지 가 표 시 됩 니 다.add 후 commt 가 없 으 면"Cannot rebase:Your index contains uncommited changes.Please commt or stash them."라 는 메시지 가 표 시 됩 니 다.commt 이후 같은 파일 을 수정 하지 않 으 면 rebase 가 충돌 하지 않 습 니 다.
(3)같은 파일 을 로 컬 에서 수정 하면 commt 후 rebase 시 2 가지 상황 이 있 습 니 다.
① 같은 위 치 를 수정 하지 않 으 면 rebase 가 가능 하 며 충돌 이 발생 하지 않 습 니 다.
② 같은 곳 을 수정 하면 rebase 가 충돌 할 수도 있 고 두려워 하지 않 아 도 됩 니 다.이때 git 는 통합 되 었 습 니 다.다만 자신의 제출,해결 방법 은 적용 되 지 않 았 습 니 다.충돌 하 는 파일 을 수정 한 다음 add 와 rebase--continue 작업 을 수행 하면 됩 니 다.조심 하지 않 으 면 add 를 실행 한 후에 commt 를 실 행 했 습 니 다.이때 로 컬 창고 HEAD 는 유리 상태 에 있 습 니 다.어떻게 해결 하고 나중에 보충 합 니까?
병합
merge 합병 에 도 충돌 이 있 을 수 있 습 니 다.충돌 을 해결 하 는 것 은 rebase 와 비슷 합 니 다.충돌 파일 을 처리 한 후 다시 제출 하면 됩 니 다.
예 를 들 어 설명 하 다.
현재 3 명(git 1,git 2,git 3)이 합작 하여 프로젝트 를 개발 하고 있다 고 가정 합 니 다.
(1)git 1 프로젝트 를 만 들 고 index.html 파일 을 추가 하 며 index 파일 에"create by git 1"을 추가 하여 제출 합 니 다.
git 2 파일 을 끌 어 낸 후 index 에"add by git 2"를 추가 하여 제출 합 니 다.
git 3 파일 을 끌 어 낸 후 index 에"add by git 3"를 추가 하여 제출 합 니 다.
git 1 최신 코드 를 끌 어 낸 후 index 에"add by git 1 add 1 by git 1"을 추가 합 니 다.다음 과 같 습 니 다.
원 격 창 고 를 제출 합 니 다.분기 트 리 는 다음 과 같 습 니 다.
(2)git 2 는 index 파일 에"add 1 by git 2"를 추가 하여 충돌 을 실험 합 니 다.
이때 분기 수 는 다음 과 같 습 니 다.
제출 후:
그리고 rebase 를 실행 하면 충돌 이 발생 합 니 다:
분기 트 리 는(이때 분기(no branch,rebing dev):
충돌 파일 을 열 면 충돌 부분 은<<<<<<<<<=========>>>>>>>>>>>>>>로 표 시 됩 니 다.이 부분 코드 를 처리 하고 처리 한 파일 은:
add 와 rebase--contine 실행
rebase 종료,분기 트 리:
원 격 제출 후 최종 분기 트 리 는 다음 과 같 습 니 다.
(3)git 3 의 index 파일 은 다음 과 같 습 니 다.
index 파일 의 첫 줄 을"create by git 1 modifed in another place"로 변경 하여 제출 합 니 다.
원 격 에서 최신 파일 을 꺼 내 rebase 를 실행 합 니 다.
최종 결 과 는 다음 과 같다.
(4)git 1 은 index2.html 파일 을 만 들 었 습 니 다.제출 후 push,원 격 으로 push 를 거부 합 니 다.로 컬 이 최신 버 전이 아니 기 때문에 업데이트 후 제출 하고 최신 파일 을 끌 어 올 려 야 합 니 다.
git 1 merge 작업 을 수행 합 니 다.최종 분기 트 리 는 다음 과 같 습 니 다.
같은 파일 과 다른 점 을 정리 합 니 다.rebase 와 merge 의 합병 은 충돌 하지 않 습 니 다.같은 파일 을 수정 하면 충돌 합 니 다.해결 방식:rebase,충돌 해결,add+rebase continue 를 실행 합 니 다.merge,충돌 해결,다시 제출
Git 분기 통합 충돌 해결 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Git 분기 통합 충돌 해결 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
브랜치 병합(Visual studio 2017 사용)의 계속입니다. 기능 추가를 위한 브랜치를 작성하고, 기능 추가한 후, 그 내용을 develop 브랜치에 병합해 봅니다. 1. 새롭게 「add1」라고 하는 브랜치를 작성 2. 브랜치 "add1"을 선택한 상태에서 M...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.