당신이 작동 나열된 단계는하지만, 당신에게 더 많은 옵션을 제공하는 더 이상 방법이있다 :
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
)으로 넘어 가서 "내가 갖고 있지 않은 모든 것을 내놔"라고 말합니다. 즉, 모든 지점에서 모든 커밋을 가져옵니다. 저장소로 복사되지만 리모트의 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
을 통해 제공하고, 그것은 당신의 repo에 심판을 업데이트하지 않습니다 : 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이 두 번째 부분은 변경-I가 된 말을 지금은 기회 주의적 "원격 지사"참조를 업데이트 "고정"-in 자식 1.8.4. (릴리스 노트가 말했듯이, 업데이트를 건너 뛰는 고의적 인 디자인 결정 이었지만, 더 많은 사람들이 git을 업데이트하는 것을 선호합니다.이전 원격 지점 SHA-1을 원한다면 기본적으로 reflog에 저장되어 복구 할 수 있습니다. 또한 업스트림 리베이스를 찾기위한 새로운 git 1.9/2.0 기능을 사용할 수 있습니다.)
먼저 dmgr2 분기의 모든 변경 사항을 커밋합니다. master 1.git checkout master를 가리킨 다음 최신 변경 내용을 가져옵니다. 2.git pull 3.git merge dmgr2 4.git push -u origin master 그런 다음 dmgr2로 돌아갑니다. 5.git checkout dmgr2 –
나는 이미 dmgr2 브랜치에 대한 모든 변경 사항을 커밋했습니다. 죄송합니다. 4 단계를 수행하면 –
을 추가하는 것을 잊어 버렸습니다. 내 발달이 마스터로 바뀌지 않을까요? 그 일을하고 싶지 않다. –