source

마스터 분기와 개발 분기 간의 "git pull" 또는 "git merge"

nicesource 2023. 6. 23. 22:15
반응형

마스터 분기와 개발 분기 간의 "git pull" 또는 "git merge"

나는 나의master가지와 가지develop몇 가지 변경 작업을 위한 지점.변경 사항을 병합해야 합니다.master안으로develop하지만 결국 모든 것을 병합할 것입니다.develop안으로master두 가지 워크플로우를 고려하고 있습니다.

  1. git pull origin master안으로develop분점
  2. git merge master안으로develop분점

이를 위한 가장 좋은 방법은 무엇이며, 그 이유는 무엇입니까?

이 워크플로우는 나에게 가장 적합합니다.

git checkout -b develop

몇 가지 변경 사항을...

...마스터가 업데이트되었습니다...

...변경 사항을 커밋하여 개발...

git checkout master
git pull

그 변화들을 다시 발전시키는 것은...

git checkout develop
git rebase master

더 많은 변화를...

그들에게 개발을 맡깁니다

...그것들을 마스터로...

git checkout master
git pull
git merge develop

리베이스 조심하세요.개발 지점을 다른 사용자와 공유하는 경우, 리베이스는 상황을 엉망으로 만들 수 있습니다.기본 재배치는 자신의 로컬 분기에만 사용할 수 있습니다.

경험칙: 분기를 원점으로 밀어넣은 경우에는 기본 재배치를 사용하지 마십시오.대신 병합을 사용합니다.

이런 종류의 것에 대한 가장 좋은 접근법은 아마도.이를 통해 마스터에서 개발 브랜치로 변경 사항을 가져올 수 있지만, 모든 개발 작업은 마스터에서 "맨 위"(나중에 커밋 로그)에 남겨둘 수 있습니다.새 작업이 완료되면 마스터로 다시 병합하는 작업이 매우 간단합니다.

만약 당신이 누구와도 develop 브랜치를 공유하지 않는다면, 나는 마스터가 업데이트될 때마다 그것을 다시 베이스할 것이고, 그렇게 하면 당신이 마스터로 다시 merge한 후에 당신의 이력 전체에 merge 커밋이 생기지 않을 것입니다.이 경우 워크플로우는 다음과 같습니다.

> git clone git://<remote_repo_path>/ <local_repo>
> cd <local_repo>
> git checkout -b develop
....do a lot of work on develop
....do all the commits
> git pull origin master
> git rebase master develop

위의 단계를 수행하면 개발 분기가 항상 마스터 분기의 최신 변경 사항을 확인할 수 있습니다.develop 브랜치를 완료하고 마스터의 최신 변경 사항에 기반을 둔 다음 다시 병합할 수 있습니다.

> git checkout -b master
> git merge develop
> git branch -d develop

제 경험칙은 다음과 같습니다.

rebase동일한 이름을 가진 분기의 경우merge그렇지않으면.

같은 이름의 예는 다음과 같습니다.master,origin/master그리고.otherRemote/master.

한다면develop로컬 리포지토리에만 존재하며 항상 최신 정보를 기반으로 합니다.origin/master커밋, 당신은 그것을 불러야 합니다.master거기서 직접 일을 할 수 있습니다.그것은 당신의 삶을 단순화하고, 그것들을 있는 그대로 보여줍니다: 당신은 직접 개발하고 있습니다.master분점.

한다면develop공유되는 경우, 이를 기반으로 하면 안 됩니다.master와 다시 합쳐졌습니다.--no-ff당신은 발전하고 있습니다.develop.master그리고.develop서로 다른 이름을 가지고 있습니다. 왜냐하면 우리는 그것들이 다른 것이기를 원하기 때문입니다. 그것들을 같은 것으로 만들지 마세요.rebase.

사용하는 것을 선호합니다.git pull origin <branch_name>제가 합병하려는 지점으로 넘어갑니다.사실 사용해 본 적이 없습니다.git merge <branch_name>

이유는, 제가 그것을 사용하기 시작했을 때 GitLab에서 버그가 발생하곤 했습니다.하지만 지금은 더 논리적이기도 합니다...왜냐면git pull ( 수행: (a)git fetchgit merge

2개의 명령과 1개의 명령으로, 빠른 작업을 계속할 수 있는 보다 지능적인 애플리케이션이 아닙니다.

PS: 무슨 일이 일어날지 확신할 수 없다면, 거기서 'broken down' 명령을 사용하는 것이 더 나을 수도 있습니다;)

언급URL : https://stackoverflow.com/questions/4556467/git-pull-or-git-merge-between-master-and-development-branches

반응형