Gitçåæ¯å并主è¦ä¾èµäºcheckoutå½ä»¤åcherry-pick å½ä»¤ãcherry-pickå°±æ¯ä»ä¸åçåæ¯ä¸æ¡åºä¸ä¸ªåç¬çcommitï¼å¹¶æå®åä½ å½åçåæ¯å并ãå¦æä½ ä»¥å¹¶è¡æ¹å¼å¨å¤ç两个æ以ä¸åæ¯ï¼ä½ å¯è½ä¼åç°ä¸ä¸ªå¨å ¨é¨åæ¯ä¸é½æçbug,å¦æä½ å¨ä¸ä¸ªåæ¯ä¸è§£å³äºå®ï¼ä½ å¯ä»¥ä½¿ç¨cherry-pickå½ä»¤æå®commitå°å ¶å®åæ¯ä¸å»ï¼èä¸ä¼å¼ä¹±å ¶ä»çæ件æcommitã
1.ä¾åï¼å¦æçGitæ件å¨H:çä¸ï¼/h/myfirstprojectï¼è¯¥ç®å½ä¸æä¸ä¸ªåæ¯ï¼teståæ¯ï¼newbranch1åæ¯åmateråæ¯ãå¦ææ³æteståæ¯çæ个commitå并å°masterï¼éè¦ç»è¿ä¸é¢çæ¥éª¤:
æ§è¡git log -3 --graph testï¼æ¥çteståæ¯ä¸çcommit: 注ï¼commit åé¢çhashå¼ä»£è¡¨æ个commitï¼è¿éæâ2e1ada53819d46557b24ee7376dc61d37a06939dâè¿ä¸ªcommitæ交å°masterã
æ§è¡git checkout masterï¼åæ¢å°masteråæ¯ã
æ§è¡ git cherry-pick 2e1ada53819d46557b24ee7376dc61d37a06939dï¼è¯¥commit便被æ交å°äºmasteråæ¯ã
å°æ¤ï¼â2e1ada53819d46557b24ee7376dc61d37a06939dâè¿ä¸ªcommit便被æ交å°äºmasteråæ¯ã
2.ä¾åï¼ææ¬å°çteståæ¯çæ个commitæ交å°è¿ç¨testdevelopåæ¯ã
ä»è¿ç¨åæ¯ checkout åºæ¥çæ¬å°åæ¯ï¼ç§°ä¸ºè·è¸ªåæ¯(tracking branch)ãè·è¸ªåæ¯æ¯ä¸ç§åè¿ç¨åæ¯æç´æ¥èç³»çæ¬å°åæ¯ãå¨è·è¸ªåæ¯éè¾å
¥Git pushï¼Git
ä¼èªè¡æ¨æåºè¯¥ååªä¸ªæå¡å¨çåªä¸ªåæ¯æ¨éæ°æ®ãåè¿æ¥ï¼å¨è¿äºåæ¯éè¿è¡git pull ä¼è·åææè¿ç¨ç´¢å¼ï¼å¹¶æå®ä»¬çæ°æ®é½å并å°æ¬å°åæ¯ä¸æ¥ã
å¨å
éä»åºæ¶ï¼Git é常ä¼èªå¨å建ä¸ä¸ªå为 master çåæ¯æ¥è·è¸ª origin/masterãè¿æ£æ¯git push å git pull ä¸å¼å§å°±è½æ£å¸¸å·¥ä½çåå ãå½ç¶ï¼ä½ å¯ä»¥éå¿æ欲å°è®¾å®ä¸ºå
¶å®è·è¸ªåæ¯ï¼æ¯å¦origin ä¸é¤äº master ä¹å¤çå
¶å®åæ¯ãåææ们已ç»çå°äºè¿æ ·çä¸ä¸ªä¾åï¼git checkout -b [åæ¯å]
[è¿ç¨å]/[åæ¯å]ã
1.é¦å æ°å»ºä¸ä¸ªä¸´æ¶åæ¯ï¼å¹¶æ临æ¶åæ¯ä¸è¿ç¨åæ¯å ³èã
git checkout -b tempbarch --track origin/testdevelop
2.æ¤æ¶å·²ç»åæ¢å°äºtempbarchåæ¯ãåæ§è¡ï¼git log -3 --graph testï¼æ¥çteståæ¯ä¸çcommitï¼
3.æ§è¡git cherry-pick f6cb436ff5a010cdd72dc2c8ff018db8e8832271 å³å¯æâf6cb436ff5a010cdd72dc2c8ff018db8e8832271âè¿ä¸ªcommitæ交å°tempbranchåæ¯ã
ç¶ååéè¿Tortoise客æ·ç«¯çpushå½ä»¤ï¼å³å¯æ该commitæ交å°è¿ç¨testdevelopåæ¯ã
4.åæ¢å°ä»»ä½étempbranchåæ¯ï¼å¦masteråæ¯ï¼æ§è¡git branch -d tempbranchï¼å³å¯ætempbranchåæ¯å é¤æã