Git 분기 통합 충돌 해결 방법 구현

이틀 전 그룹 에 git 역사 도 를 보 냈 습 니 다.다음 과 같 습 니 다.

제출 역사 에 따 르 면 그림 의 모든 분기 합병 은 merge 방식 을 사용 하고 구체 적 인 merge 가 어떻게 작 동 하 는 지 알 수 있 으 며 다음 글 을 읽 을 수 있 습 니 다.
프로젝트 의 수요 에 따라 git 에 게 역 사 를 제출 하 라 고 요구 하 는 것 이 비교적 간단 한 시간 선 이 라면 rebase 의 합병 을 사용 할 수 있 습 니 다.이 요구 가 없 으 면 merge 를 사용 하여 합병 할 수 있 습 니 다.그 분기 트 리 는 그물 모양 구조 이지 만 제출 할 때마다 명확 하고 뚜렷 합 니 다.그들의 차 이 는 참고 할 수 있다git merge 와 git rebase 의 차이 점 및 인 스 턴 스:
  • rebase 합병:본질 은 먼저 자신의 제출 을 취소 하고 임시 저장 한 다음 에 현재 지점 을 최신 origin 지점 으로 업데이트 하고 마지막 으로 자신의 제출 을 적용 하 는 것 입 니 다
  • 4.567917.merge 합병:두 가 지 를 합병 하여 제출 합 니 다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 분기 통합 충돌 해결 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기