2. 힘내 고급
2.1, 분기
이해를 돕기 위해 일시적으로 브랜치를 현재 작업 디렉토리에 있는 코드의 복사본으로 생각할 수 있습니다.
분기를 사용하면 메인 개발 라인에 영향을 미치지 않도록 메인 개발 라인에서 분리할 수 있습니다.
2.1.1 브랜치란?
- 버전 제어 프로세스에서 여러 작업이 동시에 푸시되며 각 작업에 대해 각 작업에 대해 별도의 분기를 만들 수 있습니다.
- 브랜치를 사용한다는 것은 프로그래머가 메인 개발 라인에서 작업을 분리할 수 있다는 것을 의미하며, 자체 브랜치를 개발할 때 메인 라인 브랜치의 작동에 영향을 미치지 않습니다.
- 초보자에게 분기는 단순히 사본으로 이해될 수 있으며 분기는 별도의 사본입니다.
2.1.2 분기 기능
- 동시에 여러 기능의 개발을 동시에 촉진하여 개발 효율성을 향상시킵니다.
- 각 브랜치의 개발 과정에서 특정 브랜치의 개발이 실패하더라도 다른 브랜치에는 영향을 미치지 않습니다. 실패한 분기를 삭제하고 다시 시작할 수 있습니다.
2.1.3 분기 세분
- 마스터 브랜치(master): git 웨어하우스에 업데이트 레코드를 처음 제출할 때 자동으로 생성되는 브랜치.
- , 개발 브랜치(develop): 개발 브랜치로서 마스터 브랜치를 기반으로 생성된다.
- Feature 브랜치(feature): 특정 기능을 개발하기 위한 브랜치로 개발 브랜치를 기반으로 생성
기능 분기 -> 개발 분기 -> 마스터 분기
2.1.4 분기 명령(모두 중요)
명령 이름 | 효과 |
---|---|
git branch |
지점 보기 |
git branch 分支名称 |
지점 만들기 |
git checkout 分支名称 |
분기 전환 |
git merge 来源分支 |
분기 병합 |
git branch -d 分支名称 |
분기 삭제(분기 병합 후 삭제 가능) (-D 강제 삭제) |
1. 지점 보기
기본 구문:git branch -v
2. 브랜치 만들기
기본 구문:git branch 分支名
3. 분기 전환
기본 구문:git checkout 分支名
4. 브랜치에서 파일 수정
5. 브랜치 병합
기본 구문:git merge 分支名
①일반 병합이 충돌하지 않음
② 병합 충돌
충돌 원인:
- 분기를 병합할 때 두 분기는같은 파일의 같은 위치완전히 다른 두 가지 수정 세트가 있습니다.
- 완전히 다른 두 가지 수정 세트가 있습니다. Git은 우리를 위해 사용할 것을 결정할 수 없습니다. 새 코드 내용은 수동으로 결정해야 합니다.
예를 들어 마스터 브랜치의 끝에서 두 번째 줄을 먼저 수정하고 임시 저장 영역에 추가한 다음 로컬 라이브러리에 제출합니다.
해결 방법: 자세한 내용은 3.5 충돌 해결을 참조하십시오.
2.2, 변경 사항 임시 저장
Git에서는 분기의 모든 변경 사항을 임시로 추출하고 저장할 수 있으므로 개발자가 깨끗한 작업 복사본을 얻고 일시적으로 다른 작업으로 전환할 수 있습니다.
사용 시나리오: 분기 임시 전환
- 임시 변경 사항 저장:
git stash
- 변경 사항 되돌리기:
git stash pop