질문 : git pull from master에서 개발 브랜치로
dmgr2 (development)라는 브랜치가 있고 마스터 브랜치 (라이브 사이트)에서 가져 와서 모든 변경 사항을 개발 브랜치에 통합하려고합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 변경 사항을 적용한 후 계획 한 작업은 다음과 같습니다.
git checkout dmgr2
git pull origin master
이것은 내 개발 브랜치로 라이브 변경 사항을 가져와야합니까, 아니면 이것이 잘못 되었습니까?
답변
나열된 단계는 작동하지만 더 많은 옵션을 제공하는 더 긴 방법이 있습니다.
git checkout dmgr2 # gets you "on branch dmgr2"
git fetch origin # gets you up to date with origin
git merge origin/master
fetch
명령은 이전 어느 시점에서 할 수있는 merge
즉, 당신의 순서를 바꿀 수 있으며, 때문에, 가져 오기 및 체크 아웃 fetch
단지라는 이름의 원격 (까지가는 origin
)과에 말한다 : "내놔 모든 것을 당신이 것을 가지고 I do n't ", 즉 모든 브랜치에 대한 모든 커밋. 리포지토리에 복사되지만 원격에서 branch라는 이름의 branch
origin/branch
이 시점에서 뷰어 ( git log
, gitk
등)를 사용하여없는 "보유한 항목"을 볼 수 있으며 그 반대의 경우도 마찬가지입니다. 때때로 이것은 Warm Fuzzy Feelings에만 유용하고 ( "아, 그래, 그것이 실제로 내가 원하는 것입니다") 때로는 전략을 완전히 바꾸는 데 유용합니다 ( "워, 아직 그 물건을 원하지 않습니다").
마지막으로 merge
origin/master
로 이름을 지정할 수있는 주어진 커밋 merge
를 실행할 때 어떤 브랜치에 있든 해당 커밋과 조상을 가져 오는 데 필요한 모든 작업을 수행합니다. --no-ff
또는 --ff-only
를 삽입하거나 원하는 경우 결과가 빨리 감기 인 경우에만 병합 할 수 있습니다.
시퀀스를 사용하는 경우 :
git checkout dmgr2
git pull origin master
pull
git fetch
git merge origin/master
와 동등한 도덕적 명령을 실행하도록 지시합니다. 따라서 이것은 두 단계를 손으로 수행하는 것과 거의 동일하지만 아마도 당신에게 그다지 관심이없는 미묘한 차이가 있습니다. (특히 pull
의해 실행되는 fetch
단계는 origin/master
만 가져오고 저장소의 ref를 업데이트하지 않습니다. 1 새로운 커밋은 특수 FETCH_HEAD
참조에 의해서만 참조됩니다.)
좀 더 명시적인 git fetch origin
(선택적으로 둘러보기)을 사용한 다음 git merge origin/master
시퀀스를 사용하는 경우 네트워크에서 fetch
실행하여 원격으로 자신의 로컬 master
를 최신 상태로 가져올 수도 있습니다.
git fetch origin
git checkout master
git merge --ff-only origin/master
git checkout dmgr2
git merge --no-ff origin/master
예를 들어.
1 이 두 번째 부분은 git 1.8.4에서 변경되었습니다. 이제 "원격 브랜치"참조를 우연히 업데이트합니다. (릴리스 노트에서 언급했듯이 업데이트를 건너 뛰기로 한 의도적 인 디자인 결정 이었지만 더 많은 사람들이 git 업데이트를 선호하는 것으로 나타났습니다. 이전 원격 분기 SHA-1을 원하면 기본적으로 , 따라서 reflog에서 복구 할 수 있습니다. 또한 업스트림 리베이스를 찾기위한 새로운 git 1.9 / 2.0 기능을 사용할 수 있습니다.)
출처 : https://stackoverflow.com/questions/20101994/git-pull-from-master-into-the-development-branch
'개발관련 > Git' 카테고리의 다른 글
Git의 다른 브랜치에서 변경 사항을 선택적으로 병합하거나 선택하는 방법 (0) | 2021.11.11 |
---|---|
Git에서 이전 버전의 파일을 보는 방법 (0) | 2021.11.11 |
git cherry-pick "...38c74d is a merge but no -m option was given" (0) | 2021.11.10 |
Heroku : 다른 로컬 Git 브랜치를 Heroku / master에 푸시하는 방법 (0) | 2021.11.10 |
GitHub에서 복제 할 때 폴더 이름을 변경 하는 방법 (0) | 2021.11.10 |