±à¼ÍƼö: |
±¾ÎÄÀ´×Ôcnblogs£¬½éÉÜÁË´´½¨git¹¤³Ì£¬¿ª·¢¹ý³Ì£¬·ÖÖ§½á¹¹£¬ºÏ²¢³åÍ»½â¾öµÈ֪ʶ¡£ |
|
ÔÚʵ¼Ê¿ª·¢ÖУ¬ÎÒÃÇÓ¦¸Ã°´ÕÕ¼¸¸ö»ù±¾ÔÔò½øÐзÖÖ§¹ÜÀí£º
Ê×ÏÈ£¬master·ÖÖ§Ó¦¸ÃÊǷdz£Îȶ¨µÄ£¬Ò²¾ÍÊǽöÓÃÀ´·¢²¼Ð°汾£¬Æ½Ê±²»ÄÜÔÚÉÏÃæ¸É»î£»
ÄÇÔÚÄĸɻîÄØ£¿¸É»î¶¼ÔÚdev·ÖÖ§ÉÏ£¬Ò²¾ÍÊÇ˵£¬dev·ÖÖ§ÊDz»Îȶ¨µÄ£¬µ½Ä³¸öʱºò£¬±ÈÈç1.0°æ±¾·¢²¼Ê±£¬ÔÙ°Ñdev·ÖÖ§ºÏ²¢µ½masterÉÏ£¬ÔÚmaster·ÖÖ§·¢²¼1.0°æ±¾£»
ÄãºÍÄãµÄС»ï°éÃÇÿ¸öÈ˶¼ÔÚdev·ÖÖ§Éϸɻÿ¸öÈ˶¼ÓÐ×Ô¼ºµÄ·ÖÖ§£¬Ê±²»Ê±µØÍùdev·ÖÖ§ÉϺϲ¢¾Í¿ÉÒÔÁË¡£
ËùÒÔ£¬ÍŶӺÏ×÷µÄ·ÖÖ§¿´ÆðÀ´¾ÍÏñÕâÑù£º

ÔÚ¿´¾ßÌåʵ¼ùǰ£¬ÐèÒªÁ˽âһЩÀíÂÛ¸ÅÄ²Î¿¼´´½¨ÓëºÏ²¢·ÖÖ§£º
¡¡¡¡£¨1£©HEADÖ¸ÕëÓë·ÖÖ§¼äµÄ¹ØÏµ£º

¡¡¡¡£¨2£©·ÖÖ§ºÏ²¢µÄʱºò£¬Ä¬ÈϲÉÓÃFast Forwardģʽ£¬¿É³ÆÎª¡°¿ì½øºÏ²¢¡±£¬¼´½«masterÖ±½ÓÖ¸ÏòdevµÄµ±Ç°Ìá½»£¬ÈçÏÂͼ£¬µ«ÕâÖÖģʽÏ£¬É¾³ý·ÖÖ§ºó£¬»á¶ªµô·ÖÖ§ÐÅÏ¢£º


¡¡¡¡£¨3£©no-ffģʽ£¬Ôںϲ¢µÄʱºò²ÉÓøÃģʽ£¬»áд´½¨Ò»¸öÌá½»£¬²¢½«masterÖ¸Ïò¸Ã×îÐÂÌá½»¡£

1. ´´½¨git¹¤³Ì
¡¡¡¡£¨1£©´´½¨±¾µØ¿â£ºÖ´ÐÐÃüÁî git init £¬´´½¨ .gitÒþ²ØÎļþ
¡¡¡¡£¨2£©±¾µØ¿â¹ØÁªÔ¶³Ì²Ö¿â£ºÓÃgithub¶Ô¹¤³Ì½øÐÐÍйܣ¬¾ßÌå¿É²ÎÕÕÌí¼ÓÔ¶³Ì¿â£¬Îª±¾µØ¿âÌí¼ÓÔ¶³Ì²Ö¿âÐÅÏ¢
¡¡¡¡´´½¨Íê³Éºó£¬±¾µØ¹¤³ÌÈçÏ£º

2. ¿ª·¢¹ý³Ì
¡¡¡¡¼ÙÉèÓÐ2Ãû¿ª·¢£¬bobºÍlilei¡£
¡¡¡¡£¨1£©´´½¨¿ª·¢·ÖÖ§dev
¡¡¡¡¡¡¡¡git checkout -b dev£¬´Ëʱ¸Ã·ÖÖ§»¹ÊôÓÚ˽ÈË·ÖÖ§¡£
¡¡¡¡¡¡¡¡git push origin dev:dev£¬Ô¶³Ì²Ö¿â´´½¨dev·ÖÖ§£¬²¢Óë±¾µØ¹ØÁª¡£
¡¡¡¡¡¡¡¡git checkout dev Çл»·ÖÖ§£¨ÇÐ֮ǰ£¬¿ÉÒÔÏÈÖ´ÐÐ git pull ÀÈ¥·ÖÖ§ÐÅÏ¢£¬Ê¹±¾µØ°æ±¾¿âÓëÔ¶³ÌÏàͬ£©¡£

¡¡¡¡£¨2£©¶Ôindex.htmlÎļþ½øÐÐÐ޸ģ¬bobÌí¼Ó¡°add by bob¡±£¬Ìá½»µ½Ô¶³Ì²Ö¿â£¬¾ßÌåÖ¸Áî²ÎÕÕGit³£ÓÃÃüÁî
¡¡¡¡£¨3£©lileiÀÈ¡×îдúÂ룬²¢½øÐÐÐ޸ģ¬ÔÚindex.htmlÖÐÌí¼Ó¡°add by lilei¡±
¡¡¡¡¡¡¡¡¢Ù git fetch origin dev ÀÈ¥dev·ÖÖ§×îдúÂë
¡¡¡¡¡¡¡¡¢Ú git merge --no-ff -m 'ºÏ²¢×îдúÂë' dev ²ÉÓÃno-ff·½Ê½£¬½«ÀÈ¡µÄ×îдúÂëÓë±¾µØºÏ²¢£¬×¢Ò⣺²»¼Ó
-mºó±ß²ÎÊý£¬»á´ò¿ª±à¼Æ÷£¬ÊäÈë×¢½â
¡¡¡¡¡¡¡¡¢Û ÔÚindex.htmlÖÐÌí¼Ó¡°add by lilei¡±£¬Ìá½»²¢pushµ½Ô¶³Ì²Ö¿â

¡¡¡¡£¨4£©bobÀÈ¡×îдúÂ룬²¢½«dev·ÖÖ§ºÏ²¢µ½master·ÖÖ§
¡¡¡¡¡¡¡¡¢Ù git pull origin dev Ö±½Ópull£¬´úÌæfetch+merge²Ù×÷£¬Ä¬ÈϲÉÓÃFast-ForwardģʽºÏ²¢¡££¨´Ë´¦Ó¦¸Ã²ÉÓã¨3£©ÏÈfetch£¬ÔÙmerge£¬·ÖÖ§½á¹¹¸üÃ÷ÏÔ£©

¡¡¡¡¡¡¡¡¢Ú git checkout master Çе½Ö÷·ÖÖ§
¡¡¡¡¡¡¡¡¢Û git merge --no-ff -m 'merge with no-ff' dev
»òÕß git merge dev£¬»á¶ÔdevºÍmaster½øÐкϲ¢Ìá½»

¡¡¡¡¡¡¡¡¢Ü git push origin ½«ºÏ²¢ºóµÄÖ÷·Ö֧ͬ²½µ½Ô¶³Ì²Ö¿â
3. ·ÖÖ§½á¹¹
¡¡¡¡£¨1£©²ÉÓÃno-ffģʽ
¡¡¡¡Ö´ÐÐÃüÁ git log --graph --pretty=oneline --abbrev-commit
²é¿´·Ö֧ͼÐνṹ£¬ÈçÏ£º

¡¡¡¡¢Ù bobÔÚdevµÄ±¾µØ·ÖÖ§ÉÏÐÞ¸ÄÎļþ£¬²¢Ìá½»µ½Ô¶³Ì²Ö¿â¡£
¡¡¡¡¢Ú lilei±¾µØÀÈ¡×îÐÂÎļþ£¬²¢²ÉÓà no-ff·½Ê½½øÐкϲ¢£¨Ð´´½¨Ò»¸öÌá½»£¬´Ó¶øÊÇdev·ÖÖ§µÄHEADÖ¸ÕëÖ¸ÏòÐÂÌá½»£©
¡¡¡¡¢Û lileiÐÞ¸ÄÎļþ£¬²¢Ìá½»µ½Ô¶³Ì²Ö¿â¡£bobÖ±½ÓpullÀÈ¡£¬Ä¬ÈϲÉÓÃFast-Forwardģʽ¡£
¡¡¡¡¢Ü bob½«devºÏ²¢µ½master·ÖÖ§£¬Ö´ÐÐÃüÁî git merge --no-ff -m
'merge with no-ff' dev¡£
¡¡¡¡ÔÚgithubÉϲ鿴×îºóÒ»´ÎÌá½»£¬ÆäÖб¾´ÎÌá½»ÓÐ2¸öparent£¨4f368ccºÍ5b53028£©£¬ÓëÉÏͼ¶ÔÓ¦£¬ÈçÏ£º

¡¡¡¡£¨2£©²ÉÓÃFast Forwardģʽ

¡¡¡¡¢Ù µÚÒ»ÖÖģʽ×îºóÒ»´ÎÌá½»¡£
¡¡¡¡¢Ú bob½«ÐÞ¸ÄÌá½»Ô¶³Ì²Ö¿â¡£lilei´ÓÔ¶³Ì²Ö¿âÖ±½ÓpullÀÈ¡ºÏ²¢£¬²ÉÓÃFast Forward·½Ê½£¬Ã»ÓвúÉúеÄÌá½»¡£
¡¡¡¡¢Û lilei½«ÐÞ¸ÄÌá½»Ô¶³Ì²Ö¿â¡£bobÀȡԶ³Ì²Ö¿âºóºÏ²¢£¨fetch+merge£©£¬²ÉÓÃFast
Forwardģʽ£¬Ã»²úÉúеÄÌá½»¡£
¡¡¡¡¢Ü Çл»µ½master·ÖÖ§£¬Ö´ÐÐ git merge dev ºÏ²¢¡£
4. ºÏ²¢³åÍ»½â¾ö
¡¡¡¡Óöµ½³åͻʱ£¬GitÒѾ×öÁ˺ϲ¢£¬µ«ÊÇûÓÐ×Ô¶¯µØ´´½¨Ò»¸öеĺϲ¢Ìá½»¡£ Git»áÔÝÍ£ÏÂÀ´£¬µÈ´ýÄãÈ¥½â¾öºÏ²¢²úÉúµÄ³åÍ»£¬È»ºóÔÙ¶Ô³åÍ»µÄÎļþÖ´ÐÐÌá½»£¨add¡¢commit¡¢push£©¼´¿É£¬µ«·ÖÖ§Ê÷ÉÏ»á¼Ç¼³åÍ»¡£ |