나열된 단계가 작동하지만 더 많은 옵션을 제공하는 더 긴 방법이 있습니다.
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
)와 그것을 말한다 : "내놔 모든 것을 당신은 내가하지 않는 것이있다 ", 즉 모든 지점에서 커밋합니다. 그들은 당신의 저장소에 복사되지만 이름 origin/branch
이있는 모든 지점의 이름이 지정됩니다.branch
원격에 됩니다.
이 시점에서 모든 뷰어 ( git log
, gitk
등)를 사용하여 자신이 갖고 있지 않은 것을 "그것이 무엇인지"확인할 수 있으며 그 반대도 마찬가지입니다. 때때로 이것은 따뜻한 퍼지 감정 ( "아, 그래, 사실 내가 원하는 것")에만 유용하고 때로는 전략을 완전히 바꾸는 데 유용 할 때도 있습니다 ( "아, 아직 그런 것을 원하지 않습니다").
마지막으로, merge
명령은 이름을 지정할 수있는 지정된 커밋 origin/master
을 가져오고 해당 커밋과 조상을 가져 오는 데 필요한 모든 작업을 수행 할 때 수행하는 모든 분기에 수행합니다 merge
. 빨리 감기를 삽입 --no-ff
하거나 --ff-only
방지 하거나 원하는 경우 결과가 빨리 감기 인 경우에만 병합 할 수 있습니다.
시퀀스를 사용할 때 :
git checkout dmgr2
git pull origin master
이 pull
명령은 git에게 run을 지시 git fetch
한 다음 도덕적으로 라는 명령을 지시 git merge origin/master
합니다. 따라서 이것은 두 단계를 직접 수행하는 것과 거의 동일하지만 아마도 당신과 관련이없는 약간의 미묘한 차이점이 있습니다. (특히 fetch
실행 단계 pull
는 만 가져 오며 origin/master
리포지토리의 참조를 업데이트하지 않습니다. 1 새로운 커밋은 특별한 FETCH_HEAD
참조 로만 참조됩니다.)
보다 명확하게 git fetch origin
(선택적으로 둘러보고) git merge origin/master
시퀀스 를 사용하는 경우 네트워크를 통해 master
한 번만 fetch
실행 하여 리모컨을 사용하여 로컬 을 최신 상태로 유지할 수도 있습니다.
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 기능을 사용할 수 있습니다.)