다른 가지를 잡아당기다
분기에서 작업 중인데 다른 분기를 내 분기로 병합해야 한다는 것을 알게 되면 현재 워크플로우가 여기에 있습니다(예를 들어, 내 분기에서 작업 중이며 마스터에서 병합하려고 합니다).
git stash
git checkout master
git pull
git checkout my-branch
git merge master
git stash pop
현재 체크아웃된 것 외에 가지를 당기는 방법이 있습니까, 아니면 더 좋은 방법이 있습니까?
예를 들어, 제가 할 수 있는 일은 다음과 같습니다(다시 한 번 말씀드리지만, 제가 지점에 있고 병합하고 싶습니다).master
):
git pull master
git merge master
깃풀맨 페이지에는 깃풀은 get fetch에 이어 깃 머지라고 되어 있는데, 현재 체크아웃된 것 외에 가지에 깃풀의 병합 부분을 할 수 있는 방법이 있습니까?
아니면 제가 요청하는 것이 불가능한가요?
나는 나에게 효과적인 git 명령어를 찾았습니다.
가지고 오다
git fetch origin master:master
위의 구문은 다음과 같습니다(고맙습니다 @Adam).
git fetch <remote> <src>:<dst>
병합
그런 다음(바로 병합하려는 경우):
git merge master
다음을 사용하여 동일한 리포지토리의 다른 분기에서 변경 사항을 가져올 수 있습니다.git pull
다음과 같은 명령:
$ git pull origin <target-branch>
참조EXAMPLES
의 일부.man git-pull
:
• Merge into the current branch the remote branch next: $ git pull origin next
사용해 보십시오.
git pull yourRepositoryName master
branch1에서 branch2로 변경 내용을 끌어옵니다.
다음 분기가 있다고 가정합니다.
- 마스터.
- 지점1
- 지점2
따라서 branch1에서 branch2로 변경 사항을 적용하려고 합니다.다음은 수행할 수 있는 작업입니다.
git checkout branch2
git pull origin branch1
다음을 시도할 수도 있습니다.
git fetch
git merge origin/master
로컬은 업데이트되지 않습니다.master
포인터, 그러나 최신 포인터를 병합합니다.origin/master
현재 지역 지점으로 이동합니다.
일반적으로 "master", "develople" 또는 "release/*"와 같은 일부 원격 분기를 "feature/*" 분기에 병합하는 경우 가장 좋은 전략은 병합이 아니라 원격 분기를 기반으로 하는 것입니다.그러면 해당 지점의 커밋이 다른 지점 기록의 맨 위에 적용됩니다.나중에 이 원격 분기로 빠르게 병합할 수 있습니다.
git pull origin master
git rebase master
확실한 방법은 다음과 같습니다.
git checkout master
git pull --ff origin master
git checkout devel
# git merge --ff devel
그래서 가명이 있습니다.
git config --global alias.update-branch '! bash -c "X1=\`git symbolic-ref HEAD 2> /dev/null | cut -b 12-\`; echo pulling branch $1 ... && git checkout $1 && git pull --ff origin $1 && git checkout \$X1 "'
# call it from 'devel' branch:
git update-branch master
마스터를 지금 현재 분기에 병합하는 것과 같이 사용자의 규칙을 준수하도록 개선할 수 있습니다.
1단계:
git checkout yourBranch
2단계:
git fetch origin master
3단계:
git pull origin master
만약 당신이 한 LOCAL 지점에서 다른 LOCAL 지점으로 이동해야 한다면, 이것이 저에게 도움이 되었습니다.다음 예를 들어 보겠습니다.
$ git branch
master
branch1
branch1에서 버그 수정을 수행하여 branch2라는 이름의 새 branch를 만들고 로컬 repo로 가져와야 한다고 상상해 보십시오.
원격 트리:
C0 C1 C2
Master x------x
|
Branch1 x-----x
|
Branch2 x-----x
로컬의 트리:
C0 C1 C2
Master x------x
|
Branch1 x-----x
|
Branch2 x-----x
branch2에 체크아웃하는 것을 잊어버리고 branch1에 버그 수정을 했는데, 이제 다음과 같이 보입니다.
원격 트리:
C0 C1 C2
Master x------x
|
Branch1 x-----x
|
Branch2 x-----x
로컬의 트리:
C0 C1 C2 C3
Master x------x
|
Branch1 x-----x-----x
|
Branch2 x-----x
보시다시피 branch1은 우리가 필요로 하는 데이터를 가지고 있지만 원격이 아닌 로컬에만 있습니다.할 수 없습니다.
$ git pull origin branch1
❌
할 일은 우가여해할일단지은야서입니다..
$ git checkout branch2
$ git pull . branch1 ✔️
이제 branch2에서 버그 수정을 볼 수 있습니다.그런 다음 branch1로 체크아웃하고 마지막 커밋을 되돌려서 아무도 당신의 실수를 알지 못하게 할 수 있습니다.이제 다음과 같이 보입니다.
원격 트리:
C0 C1 C2
Master x------x
|
Branch1 x-----x
|
Branch2 x-----x
로컬의 트리:
C0 C1 C2 C3
Master x------x
|
Branch1 x-----x
|
Branch2 x-----x-----x
받으시길 바랍니다 :)
언급URL : https://stackoverflow.com/questions/34344034/git-pull-on-a-different-branch
'programing' 카테고리의 다른 글
격리 레벨 - 직렬화 가능.언제 사용해야 하나요? (0) | 2023.07.16 |
---|---|
MongoDB 트랜잭션? (0) | 2023.07.16 |
Vuex 저장소 업데이트가 구성 요소에 다시 렌더링을 적용하지 않음 (0) | 2023.07.16 |
git 푸시를 비활성화하는 방법 (0) | 2023.07.16 |
Node.js 및 Mongoose를 사용하여 GridFS를 사용하여 이미지를 저장하는 방법 (0) | 2023.07.16 |