source

Git에서 두 분기를 함께 병합

manysource 2023. 6. 24. 09:20

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

하위 분기의 변경사항을 기본 분기로 병합하려는 경우

  1. 당신은 메인 브랜치에 있어야 합니다.git checkout MainBranch
  2. 그런 다음 병합 명령 실행git merge SubBranch

사례: 기본적으로 생성된 병합 커밋을 무시해야 하는 경우 다음 단계를 수행합니다.

예를 들어, 새 기능 분기가 이미 2개의 커밋을 가진 마스터에서 체크아웃되었습니다.

  • "추가됨 A", "추가됨 B"

Checkout a new feature_branch

  • "추가됨 C", "추가됨 D"

그런 다음 Feature 브랜치가 두 개의 커밋을 추가합니다.-->

  • "추가됨 E", "추가됨 F"

enter image description here

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