Git에서 두 분기를 함께 병합
저는 Git을 사용하기 시작한 지 얼마 되지 않았고 그것이 멋지다고 생각하지만, 저는 그것이 무엇인지에 대해 약간 혼란스럽습니다.merge
명령이 수행합니다.
"A" 지점에 작업 프로젝트가 있다고 가정해 보겠습니다.
저는 집에 가서 이 지점을 변경하고 "B"로 저장합니다.다른 프로그래머가 "A"를 변경하여 "C"로 저장합니다.
두 분기 "B"와 "C"를 병합한 다음, "D"와 같이 변경 사항을 새 분기로 커밋할 수 있는 방법이 있습니까?
아니면 '합병'의 요점을 놓치고 있는 것입니까?
merge
두 개 이상의 분기를 함께 가져오는 데 사용됩니다.
약간의 예:
$ # on branch A:
$ # create new branch B
$ git checkout -b B
$ # hack hack
$ git commit -am "commit on branch B"
$ # create new branch C from A
$ git checkout -b C A
$ # hack hack
$ git commit -am "commit on branch C"
$ # go back to branch A
$ git checkout A
$ # hack hack
$ git commit -am "commit on branch A"
그래서 이제 서로 다른 머리를 가진 세 개의 분리된 가지(즉, AB와 C)가 있습니다.
B와 C의 변경 내용을 A로 되돌리려면 A(이 예에서는 이미 완료)를 체크아웃한 다음 merge 명령을 사용합니다.
$ # create an octopus merge
$ git merge B C
그러면 기록이 다음과 같이 표시됩니다.
…-o-o-x-------A
|\ /|
| B---/ |
\ /
C---/
리포지토리/컴퓨터 경계를 넘어 병합하려면 다음 항목을 확인하십시오.git pull
예를 들어 분기 A가 있는 PC에서 명령을 실행합니다(이 예에서는 두 개의 새 커밋을 만듭니다).
$ # pull branch B
$ git pull ssh://host/… B
$ # pull branch C
$ git pull ssh://host/… C
하위 분기의 변경사항을 기본 분기로 병합하려는 경우
- 당신은 메인 브랜치에 있어야 합니다.
git checkout MainBranch
- 그런 다음 병합 명령 실행
git merge SubBranch
사례: 기본적으로 생성된 병합 커밋을 무시해야 하는 경우 다음 단계를 수행합니다.
예를 들어, 새 기능 분기가 이미 2개의 커밋을 가진 마스터에서 체크아웃되었습니다.
- "추가됨 A", "추가됨 B"
Checkout a new feature_branch
- "추가됨 C", "추가됨 D"
그런 다음 Feature 브랜치가 두 개의 커밋을 추가합니다.-->
- "추가됨 E", "추가됨 F"
feature_branch 변경 사항을 마스터에 병합하려면 다음을 수행합니다.git merge feature_branch
주인 위에 앉음
이렇게 하면 마스터 분기에 모든 커밋이 추가됩니다(마스터 분기에 4개 + feature_commit = 총 6개). + 다음과 같은 추가 병합 커밋이 추가됩니다.'Merge branch 'feature_branch'
주인이 분가함에 따라.
이 병합 커밋을 무시하고 다음과 같은 새 커밋으로 추가해야 하는 경우'Integrated feature branch changes into master'
,달려.git merge feature_merge --no-commit
.
--no-commit을 사용하면 병합 커밋을 만들기 직전에 병합 및 중지를 수행합니다. 이제 피쳐 분기에 추가된 모든 변경 사항을 마스터에 저장하고 새 병합 커밋을 만들 수 있습니다.
2023년 편집: 이제 새로운 버전의 git에서 --no-commit 옵션을 지정하지 않고 대화형으로 병합 커밋을 변경할 수 있는 옵션을 사용할 수 있습니다.
자세한 내용은 여기를 참조하십시오. https://git-scm.com/docs/git-merge
하위 분기를 주 분기로 변경하는 방법
git branch -m main <BRANCH>;
git fetch origin;
git branch -u origin/<BRANCH> <BRANCH>;
git remote set-head origin -a
언급URL : https://stackoverflow.com/questions/3404294/merging-2-branches-together-in-git
'source' 카테고리의 다른 글
Oracle에서 동일한 반복 기능 (0) | 2023.06.24 |
---|---|
Java 주석을 사용하여 Spring과 함께 전자 메일 보내기 (0) | 2023.06.24 |
_로 시작하는 변수 이름은 무엇을 의미합니까? (0) | 2023.06.24 |
Oracle: RAISE_APPLICATION_ERROR를 사용하는 상황은 무엇입니까? (0) | 2023.06.24 |
Mongodb - 잘못된 쿼리: 잘못된 값 알 수 없는 최상위 연산자: $gte (0) | 2023.06.24 |