±à¼ÍƼö: |
±¾ÎÄÀ´×Ôcsdn£¬±¾ÎÄÖ÷ÒªÏêϸÃèÊöÁËGit·Ö²¼Ê½£¬Git·ÖÖ§ºÍ¹¤×÷Á÷³Ì£¬Ï£Íû¶Ô´ó¼ÒÓаïÖú¡£
|
|
Git·Ö²¼Ê½°æ±¾¹ÜÀíʹÓÃÏêÇé
1. GitµÄµ®Éú
2. Svn¼¯ÖÐʽ <-VS-> Git·Ö²¼Ê½
3. Git·ÖÖ§½éÉÜ
4. Git·ÖÖ§Ö®¹¤×÷Á÷³Ì
1. ×îÔçµ®ÉúµÄ¹¤×÷Á÷³ÌGit flow
¹¦ÄÜ·ÖÖ§£¨feature branch£©£º
Ô¤·¢·ÖÖ§£¨release branch£©£º
²¹¶¡·ÖÖ§£¨hotfix branch£©£º
2. Github flow£º
3. Gitlab flow£º5. Git·ÖÖ§Ö®¹¤×÷¼¼ÇÉ
¸É»î֮ǰ£º
Pull Request
Protected branch
issue
merge½Úµã
1. GitµÄµ®Éú
Linus´´½¨ÁËLinux£¬LinuxµÄ׳´óÊÇ¿¿È«ÊÀ½çÈÈÐĵÄÖ¾Ô¸Õß²ÎÓëµÄ¡£ÊÀ½ç¸÷µØµÄÖ¾Ô¸Õß°ÑÔ´´úÂëÎļþͨ¹ýdiffµÄ·½Ê½·¢¸øLinus£¬È»ºóÓÉLinus±¾ÈËͨ¹ýÊÖ¹¤·½Ê½ºÏ²¢´úÂ룡
ʱ¼äµ½ÁË2002Ä꣬LinuxϵͳÒѾ·¢Õ¹ÁËÊ®Ä꣬´úÂë¿âÖ®´óÈÃLinusºÜÄѼÌÐøÍ¨¹ýÊÖ¹¤·½Ê½¹ÜÀíÁË£¬ÉçÇøµÄµÜÐÖÃÇÒ²¶ÔÕâÖÖ·½Ê½±í´ïÁËÇ¿ÁÒ²»Âú£¬ÓÚÊÇLinusÑ¡ÔñÁËÒ»¸öÉÌÒµµÄ°æ±¾¿ØÖÆÏµÍ³BitKeeper£¬BitKeeperµÄ¶«¼ÒBitMover¹«Ë¾³öÓÚÈ˵ÀÖ÷Ò徫Éñ£¬ÊÚȨLinuxÉçÇøÃâ·ÑʹÓÃÕâ¸ö°æ±¾¿ØÖÆÏµÍ³¡£
°²¶¨ÍŽáµÄ´óºÃ¾ÖÃæÔÚ2005Äê¾Í±»´òÆÆÁË£¬ÔÒòÊÇLinuxÉçÇøÅ£È˾ۼ¯£¬²»ÃâմȾÁËһЩÁºÉ½ºÃººµÄ½ºþÏ°Æø¡£¿ª·¢SambaµÄAndrewÊÔÍ¼ÆÆ½âBitKeeperµÄÐÒ飨Õâô¸ÉµÄÆäʵҲ²»Ö»ËûÒ»¸ö£©£¬±»BitMover¹«Ë¾·¢ÏÖÁË£¨¼à¿Ø¹¤×÷×öµÃ²»´í£©£¬ÓÚÊÇBitMover¹«Ë¾ÅÁË£¬ÒªÊÕ»ØLinuxÉçÇøµÄÃâ·ÑʹÓÃȨ¡£
Linus¿ÉÒÔÏòBitMover¹«Ë¾µÀ¸öǸ£¬±£Ö¤ÒÔºóÑϸñ¹Ü½ÌµÜÐÖÃÇ¡£µ«£¬ÕâÊDz»¿ÉÄܵġ£Êµ¼ÊÇé¿öÊÇÕâÑùµÄ£º
Linus»¨ÁËÁ½ÖÜʱ¼ä×Ô¼ºÓÃCдÁËÒ»¸ö·Ö²¼Ê½°æ±¾¿ØÖÆÏµÍ³£¬Õâ¾ÍÊÇGitµ®Éú£¡Ò»¸öÔÂÖ®ÄÚ£¬LinuxϵͳµÄÔ´ÂëÒѾÓÉGit¹ÜÀíÁË£¡´ó¼Ò¿ÉÒÔÌå»áһϣ¬Å£ÊÇÔõô¶¨ÒåµÄ£¡
GitѸËÙ³ÉΪ×îÁ÷Ðеķֲ¼Ê½°æ±¾¿ØÖÆÏµÍ³¡£ÓÈÆäÊÇ2008Ä꣬GitHubÍøÕ¾ÉÏÏß¡£ËüΪ¿ªÔ´ÏîÄ¿Ãâ·ÑÌṩGit´æ´¢£¬ÎÞÊý¿ªÔ´ÏîÄ¿¿ªÊ¼Ç¨ÒÆÖÁGitHub£¬°üÀ¨jQuery£¬PHP£¬RubyµÈµÈ¡£
2. Svn¼¯ÖÐʽ <-VS-> Git·Ö²¼Ê½
¼¯ÖÐʽ°æ±¾¿ØÖÆÏµÍ³£º°æ±¾¿âÊǼ¯Öдæ·ÅÔÚÖÐÑë·þÎñÆ÷µÄ£¬¶ø¸É»îµÄʱºò£¬ÓõͼÊÇ×Ô¼ºµÄµçÄÔ¡£ËùÒÔÒªÏÈ´ÓÖÐÑë·þÎñÆ÷È¡µÃ×îеİ汾£¬È»ºó¿ªÊ¼¸É»î£¬¸ÉÍê»îÁË£¬ÔÙ°Ñ×Ô¼ºµÄ»îÍÆË͸øÖÐÑë·þÎñÆ÷¡£ÖÐÑë·þÎñÆ÷±È×÷Ò»¸öͼÊé¹Ý£¬ÄãÒª¸ÄÒ»±¾Ê飬±ØÐëÏÈ´ÓͼÊé¹Ý½è³öÀ´£¬È»ºó»Øµ½¼Ò×Ô¼º¸Ä£¬¸ÄÍêÁË£¬ÔÙ·Å»ØÍ¼Êé¹Ý¡£

·Ö²¼Ê½°æ±¾¿ØÖÆÏµÍ³£ºÃ»ÓС°ÖÐÑë·þÎñÆ÷¡±£¬Ã¿¸öÈ˵ĵçÄÔÉ϶¼ÊÇÒ»¸öÍêÕûµÄ°æ±¾¿â£¬ÕâÑù¹¤×÷µÄʱºò£¬¾Í²»ÐèÒªÁªÍøÁË£¬ÒòΪ°æ±¾¿â¾ÍÔÚµçÄÔÉÏ¡£
¼ÈȻÿ̨µçÄÔÉ϶¼ÓÐÒ»¸öÍêÕûµÄ°æ±¾¿â£¬ÄǶà¸öÈËÈçºÎÐ×÷ÄØ£¿
±È·½ËµÄãÔÚ×Ô¼ºµçÄÔÉϸÄÁËÎļþA£¬ÄãµÄͬÊÂÔÚËûµÄµçÄÔÉϸÄÁËÎļþA¡£ÄãÃÇÁ©Ö®¼äÖ»ÐèÒª°Ñ¸÷×ÔµÄÐÞ¸ÄÍÆË͸ø¶Ô·½£¬¾Í¿ÉÒÔ»¥Ïà¿´µ½¶Ô·½µÄÐÞ¸ÄÁË¡£
ʵ¼ÊʹÓ÷ֲ¼Ê½°æ±¾¿ØÖÆÏµÍ³µÄʱºò£¬ºÜÉÙÔÚÁ½Ì¨µçÄÔÖ®¼äÍÆËͰ汾¿âµÄÐ޸ġ£ÒòΪ¿ÉÄÜÁ½Ì¨µçÄÔÖ®¼ä²»ÄÜ»¥Ïà·ÃÎÊ£¬Ò²¿ÉÄÜÆäÖÐһ̨µçÄÔѹ¸ù¾ÍûÓпª»ú¡£Òò´Ë£¬·Ö²¼Ê½°æ±¾¿ØÖÆÏµÍ³Í¨³£Ò²ÓÐһ̨³äµ±¡°ÖÐÑë·þÎñÆ÷¡±µÄµçÄÔ£¬Õâ¸ö·þÎñÆ÷µÄ×÷Óýö½öÊÇÓÃÀ´·½±ã¡°½»»»¡±´ó¼ÒµÄÐ޸ġ£Ã»ÓÐËü´ó¼ÒÒ²Ò»Ñù¸É»î£¬Ö»Êǽ»»»Ð޸IJ»·½±ã¶øÒÑ¡£ 
¼¯ÖÐʽ°æ±¾¿ØÖÆÏµÍ³µÄÖÐÑë·þÎñÆ÷ÒªÊdzöÁËÎÊÌ⣬ËùÓÐÈ˶¼Ã»·¨¸É»îÁË¡£
·Ö²¼Ê½°æ±¾¿ØÖÆÏµÍ³µÄÿ̨µçÄÔÀï¶¼ÓÐÍêÕûµÄ°æ±¾¿â£¬Ä³Ì¨µçÄÔ»µµôÁ˲»Òª½ô£¬´ÓÆäËûµçÄÔÀï¸´ÖÆÒ»·Ý¾Í¿ÉÒÔ¡£Òò´Ë£¬´úÂ밲ȫÐÔÒª¸ßºÜ¶à¡£
GitµÄÓÅÊÆÊÇÓµÓм«ÆäÇ¿´óµÄ·ÖÖ§¹ÜÀí£¬°ÑSvnµÈÔ¶Ô¶Å×ÔÚÁËÉíºó¡£
3. Git·ÖÖ§½éÉÜ
ÿ´ÎÌá½»´úÂ룬Git¶¼»áÉú³ÉÖ§µã£¬ËüÃÇ´®³ÉÒ»Ìõʱ¼äÏߣ¬ÕâÌõʱ¼äÏß¾ÍÊÇÒ»¸ö·ÖÖ§¡£ 
ÿ´ÎÌá½»£¬master·ÖÖ§¶¼»áÏòÇ°ÒÆ¶¯Ò»²½¡£Ëæ×ÅÄã²»¶ÏÌá½»£¬master·ÖÖ§µÄÏßÒ²Ô½À´Ô½³¤¡£Ä¿Ç°Ö»ÓÐÒ»Ìõʱ¼äÏߣ¬ÔÚGitÀÕâ¸ö·ÖÖ§½ÐÖ÷·ÖÖ§¡£
´´½¨ÐµķÖÖ§£º
ÀýÈçdevʱ£¬Gitн¨Ò»¸öÖ¸Õë½Ðdev£¬Ö¸ÏòmasterÏàͬµÄÌá½»£¬ÔÙ°ÑHEADÖ¸Ïòdev£¬¾Í±íʾµ±Ç°·ÖÖ§ÔÚdevÉÏ¡£

ÖØµã£ºHEADÖ¸ÏòµÄ¾ÍÊǵ±Ç°ÕýÔÚʹÓõķÖÖ§£¡
´´½¨ºÃdev·ÖÖ§¿ªÊ¼£¬¶Ô¹¤×÷ÇøµÄÐ޸ĺÍÌá½»¾ÍÊÇÕë¶Ôdev·ÖÖ§ÁË¡£±ÈÈçÐÂÌá½»Ò»´Îºó£¬devÖ¸ÕëÍùÇ°ÒÆ¶¯Ò»²½£¬¶ømasterÖ¸Õë²»±ä¡£

¼ÙÈçÔÚdevÉϵŤ×÷Íê³ÉÁË£¬¾Í¿ÉÒÔ°ÑdevºÏ²¢µ½masterÉÏ¡£×î¼òµ¥µÄ·½·¨£¬¾ÍÊÇÖ±½Ó°ÑmasterÖ¸ÏòdevµÄµ±Ç°Ìá½»£¬¾ÍÍê³ÉÁ˺ϲ¢¡£

ºÏ²¢·ÖÖ§Íê³Éºó£¬Èç¹ûdev·ÖÖ§²»ÔÚʹÓ㬿ÉÒÔÖ±½Óɾ³ýdev·ÖÖ§¡£É¾³ýdev·ÖÖ§¾ÍÊǰÑdevÖ¸Õë¸øÉ¾µô£¬¾ÍÊ£ÏÂÁËÒ»Ìõmaster·ÖÖ§¡£

4. Git·ÖÖ§Ö®¹¤×÷Á÷³Ì
Git ×÷Ϊһ¸öÔ´Âë¹ÜÀíϵͳ£¬²»¿É±ÜÃâÉæ¼°µ½¶àÈËÐ×÷¡£Ð×÷±ØÐëÓÐÒ»¸ö¹æ·¶µÄ¹¤×÷Á÷³Ì£¬Èôó¼ÒÓÐЧµØºÏ×÷£¬Ê¹µÃÏîÄ¿¾®¾®ÓÐÌõµØ·¢Õ¹ÏÂÈ¥¡£¡°¹¤×÷Á÷³Ì¡±ÔÚÓ¢ÓïÀ½Ð×ö¡°workflow¡±»òÕß¡°flow¡±¡£
ÈýÖֹ㷺ʹÓõŤ×÷Á÷³Ì£º
1.Git flow
2.Github flow
3.Gitlab flow
ÈýÖÖ¹¤×÷Á÷³Ì£¬ÓÐÒ»¸ö¹²Í¬µã£¬¶¼²ÉÓá°¹¦ÄÜÇý¶¯Ê½¿ª·¢¡±£¨Feature-driven
development£¬¼ò³ÆFDD£©¡£
ËüÖ¸µÄÊÇ£¬ÐèÇóÊÇ¿ª·¢µÄÆðµã£¬ÏÈÓÐÐèÇóÔÙÓй¦ÄÜ·ÖÖ§£¨feature branch£©»òÕß²¹¶¡·ÖÖ§£¨hotfix
branch£©¡£Íê³É¿ª·¢ºó£¬¸Ã·ÖÖ§¾ÍºÏ²¢µ½Ö÷·ÖÖ§£¬È»ºó±»É¾³ý¡£
1. ×îÔçµ®ÉúµÄ¹¤×÷Á÷³ÌGit flow
ÏîÄ¿´æÔÚ¶þ¸ö³¤ÆÚ·ÖÖ§£º
- Ö÷·ÖÖ§£¨master£©
- ¿ª·¢·ÖÖ§£¨develop£©
masterÓÃÓÚ´æ·Å¶ÔÍâ·¢²¼µÄ°æ±¾£¬ÈκÎʱºòÔÚÕâ¸ö·ÖÖ§Äõ½µÄ£¬¶¼ÊÇÎȶ¨µÄ·Ö²¼°æ£»developÓÃÓÚÈÕ³£¿ª·¢£¬´æ·Å×îеĿª·¢°æ¡£
ÏîÄ¿´æÔÚÈýÖÖ¶ÌÆÚ·ÖÖ§£º
1.¹¦ÄÜ·ÖÖ§£¨feature branch£©
2.Ô¤·¢·ÖÖ§£¨release branch£©
3.²¹¶¡·ÖÖ§£¨hotfix branch£©
ÕâÈýÖÖ·ÖÖ§¶¼ÊôÓÚÁÙʱÐÔÐèÒª£¬Ê¹ÓÃÍêÒÔºó£¬Ó¦¸Ãɾ³ý£¬Ê¹µÃ´úÂë¿âµÄ³£Éè·Ö֧ʼÖÕÖ»ÓÐmasterºÍdevelop¡£
¹¦ÄÜ·ÖÖ§£¨feature branch£©£º
ËüÊÇΪÁË¿ª·¢Ä³ÖÖÌØ¶¨¹¦ÄÜ£¬´Ódevelop·ÖÖ§ÉÏÃæ·Ö³öÀ´µÄ¡£¿ª·¢Íê³Éºó£¬ÒªÔÙ²¢Èëdevelop·ÖÖ§¡£ËüµÄÃüÃû£¬¿ÉÒÔ²ÉÓÃfeature-*µÄÐÎʽ¡£

Ô¤·¢·ÖÖ§£¨release branch£©£º
ËüÊÇÖ¸·¢²¼Õýʽ°æ±¾Ö®Ç°£¨¼´ºÏ²¢µ½master·Ö֧֮ǰ£©£¬ÐèÒªÓÐÒ»¸öÔ¤·¢²¼µÄ°æ±¾½øÐвâÊÔ¡£Ô¤·¢²¼·ÖÖ§ÊÇ´Ódevelop·ÖÖ§ÉÏÃæ·Ö³öÀ´µÄ£¬Ô¤·¢²¼½áÊøÒԺ󣬱ØÐëºÏ²¢½ødevelopºÍmaster·ÖÖ§¡£ËüµÄÃüÃû£¬¿ÉÒÔ²ÉÓÃrelease-*µÄÐÎʽ¡£
²¹¶¡·ÖÖ§£¨hotfix branch£©£º
Èí¼þÕýʽ·¢²¼ÒÔºó£¬ÄÑÃâ»á³öÏÖbug¡£Õâʱ¾ÍÐèÒª´´½¨Ò»¸ö·ÖÖ§£¬½øÐÐbugÐÞ²¹¡£ÐÞ²¹bug·ÖÖ§ÊÇ´Ómaster·ÖÖ§ÉÏÃæ·Ö³öÀ´µÄ¡£ÐÞ²¹½áÊøÒÔºó£¬Ôٺϲ¢½ømasterºÍdevelop·ÖÖ§¡£ËüµÄÃüÃû£¬¿ÉÒÔ²ÉÓÃfixbug-*µÄÐÎʽ¡£ 
Git flow×ܽ᣺
ÓŵãÊÇÇåÎú¿É¿Ø£¬È±µãÊÇÏà¶Ô¸´ÔÓ£¬ÐèҪͬʱά»¤Á½¸ö³¤ÆÚ·ÖÖ§¡£´ó¶àÊý¹¤¾ß¶¼½«masterµ±×÷ĬÈÏ·ÖÖ§£¬¿ÉÊÇ¿ª·¢ÊÇÔÚdevelop·ÖÖ§½øÐеģ¬Õâµ¼Ö¾³£ÒªÇл»·ÖÖ§£¬·Ç³£·³ÈË¡£
¸ü´óÎÊÌâÔÚÓÚ£¬Õâ¸öģʽÊÇ»ùÓÚ¡°°æ±¾·¢²¼¡±µÄ£¬Ä¿±êÊÇÒ»¶Îʱ¼äÒÔºó²ú³öÒ»¸öа汾¡£µ«ÊǺܶàÍøÕ¾ÏîÄ¿ÊÇ¡°³ÖÐø·¢²¼¡±£¬´úÂëÒ»Óб䶯£¬¾Í²¿ÊðÒ»´Î¡£Õâʱmaster·ÖÖ§ºÍdevelop·ÖÖ§µÄ²î±ð²»´ó£¬Ã»±ØÒªÎ¬»¤Á½¸ö³¤ÆÚ·ÖÖ§¡£
2. Github flow£º
ËüÊÇGit flowµÄ¼ò»¯°æ£¬×¨ÃÅÅäºÏ¡°³ÖÐø·¢²¼¡±¡£ËüÊÇ Github.com ʹÓõŤ×÷Á÷³Ì¡£
ËüÖ»ÓÐÒ»¸ö³¤ÆÚ·ÖÖ§master£¬Òò´ËÓÃÆðÀ´·Ç³£¼òµ¥¡£²Ù×÷²½Ö裺
1¡¢¸ù¾ÝÐèÇ󣬴ÓmasterÀ³öзÖÖ§£¬²»Çø·Ö¹¦ÄÜ·ÖÖ§»ò²¹¶¡·ÖÖ§¡£
2¡¢Ð·ÖÖ§¿ª·¢Íê³É£¬ÓÐÐèÒªÌÖÂÛµÄʱºò£¬¾ÍÏòmaster·¢ÆðÒ»¸öPull Request£¨¼ò³ÆPR£©¡£
3¡¢PR¼ÈÊÇÒ»¸ö֪ͨ£¬ÈñðÈË×¢Òâµ½ÄãµÄÇëÇó£¬ÓÖÊÇÒ»ÖÖ¶Ô»°»úÖÆ£¬´ó¼ÒÒ»ÆðÆÀÉóºÍÌÖÂÛÄãµÄ´úÂë¡£¶Ô»°¹ý³ÌÖУ¬Ä㻹¿ÉÒÔ²»¶ÏÌá½»´úÂë¡£
4¡¢PR±»½ÓÊÜʱ£¬ºÏ²¢½ømaster£¬ÖØÐ²¿Êð¡£°ÑÐÂÀ³öÀ´µÄÄǸö·Ö֧ɾ³ý¡£ 
Githubdevelopflow×ܽ᣺
Óŵã¾ÍÊǼòµ¥£¬¶ÔÓÚ¡°³ÖÐø·¢²¼¡±µÄ²úÆ·ÊÇ×îºÏÊʵÄÁ÷³Ì¡£
ËüµÄÎÊÌâÔÚÓÚ¼ÙÉèÒª³ÉÁ¢¡£master·ÖÖ§µÄ¸üÐÂÓë²úÆ·µÄ·¢²¼ÊÇÒ»Öµġ£±£Ö¤master·ÖÖ§µÄ×îдúÂë¾ÍÊǵ±Ç°ÏßÉϵĴúÂë¡£
ÓÐЩʱºò²¢·ÇÈç´Ë£¬´úÂëºÏ²¢½øÈëmaster·ÖÖ§£¬²¢²»´ú±íËü¾ÍÄÜÁ¢¿Ì·¢²¼¡£ÀýÈ磬ƻ¹ûÉ̵êµÄAPPÌá½»ÉóºËÒԺ󣬵ÈÒ»¶Îʱ¼ä²ÅÄÜÉϼܡ£Èç¹û»¹ÓÐеĴúÂëÌá½»£¬master·ÖÖ§¾Í»áÓë¸Õ·¢²¼µÄ°æ±¾²»Ò»Ö¡£ÁíÒ»¸öÀý×ÓÊÇÓÐЩ¹«Ë¾Óз¢²¼´°¿Úʱ¼ä£¬Ö»ÓÐÖ¸¶¨Ê±¼ä²ÅÄÜ·¢²¼Ðµİ汾£¬ÕâÒ²»áµ¼ÖÂÏßÉϰ汾ÂäºóÓÚmaster·ÖÖ§¡£
3. Gitlab flow£º
ËüÊÇ Git flow Óë Github flow µÄ×ۺϡ£ËüÎüÈ¡ÁËÁ½ÕßµÄÓŵ㣬¼ÈÓÐÊÊÓ¦²»Í¬¿ª·¢»·¾³µÄµ¯ÐÔ£¬ÓÖÓе¥Ò»Ö÷·ÖÖ§µÄ¼òµ¥ºÍ±ãÀû¡£ËüÊÇ
Gitlab.comʹÓõŤ×÷Á÷³Ì¡£
ËüµÄ×î´óÔÔò½Ð×ö¡°ÉÏÓÎÓÅÏÈ¡±£¨upsteam first£©£¬¼´Ö»´æÔÚÒ»¸öÖ÷·ÖÖ§master£¬ËüÊÇËùÓÐÆäËû·ÖÖ§µÄ¡°ÉÏÓΡ±¡£Ö»ÓÐÉÏÓηÖÖ§²ÉÄɵĴúÂë±ä»¯£¬²ÅÄÜÓ¦Óõ½ÆäËû·ÖÖ§¡£
Gitlab flow ·Ö³ÉÁ½ÖÖÇé¿ö£¬ÊÊÓ¦²»Í¬µÄ¿ª·¢Á÷³Ì¡£
1¡¢³ÖÐø·¢²¼£º
Ëü½¨ÒéÔÚmaster·ÖÖ§ÒÔÍ⣬½¨Á¢²»Í¬µÄ»·¾³·ÖÖ§¡£¡°¿ª·¢»·¾³¡±µÄ·ÖÖ§ÊÇmaster£¬¡°Ô¤·¢»·¾³¡±µÄ·ÖÖ§ÊÇpre-production£¬¡°Éú²ú»·¾³¡±µÄ·ÖÖ§ÊÇproduction¡£
¿ª·¢·ÖÖ§ÊÇÔ¤·¢·ÖÖ§µÄ¡°ÉÏÓΡ±£¬Ô¤·¢·ÖÖ§ÊÇÉú²ú·ÖÖ§µÄ¡°ÉÏÓΡ±¡£´úÂëµÄ±ä»¯£¬±ØÐëÓÉ¡°ÉÏÓΡ±Ïò¡°ÏÂÓΡ±·¢Õ¹¡£ÀýÈ磬Éú²ú»·¾³³öÏÖbug£¬Ð½¨Ò»¸ö¹¦ÄÜ·ÖÖ§ÐÞÕýbug£¬ÏȰÑËüºÏ²¢µ½master£¬È·ÈÏûÓÐÎÊÌâ¡£ÔÙcherry-pickµ½pre-production£¬È·ÈÏûÓÐÎÊÌâ¡£²ÅÄܽøÈëproduction¡£
Ö»Óнô¼±Çé¿ö£¬²ÅÔÊÐíÌø¹ýÉÏÓΣ¬Ö±½ÓºÏ²¢µ½ÏÂÓηÖÖ§¡£ 
2¡¢°æ±¾·¢²¼£º
Ëü¶ÔÓÚ¡°°æ±¾·¢²¼¡±µÄÏîÄ¿£¬½¨ÒéµÄ×ö·¨ÊÇÿһ¸öÎȶ¨°æ±¾£¬¶¼Òª´Ómaster·ÖÖ§À³öÒ»¸ö·ÖÖ§£¬±ÈÈç2-3-stable¡¢2-4-stableµÈµÈ¡£
ÒÔºó£¬Ö»ÓÐÐÞ²¹bug£¬²ÅÔÊÐí½«´úÂëºÏ²¢µ½ÕâЩ·ÖÖ§£¬²¢ÇÒ´ËʱҪ¸üÐÂС°æ±¾ºÅ¡£ 
Gitlab flow×ܽ᣺
ÓŵãÊǺܶ๫˾¶¼Ê¹ÓÃÕâÖÖ¹¤×÷Á÷³Ì¡£
5. Git·ÖÖ§Ö®¹¤×÷¼¼ÇÉ
¸É»î֮ǰ£º
Ê×ÏÈ£¬Ã¿´Î¿ª·¢Ð¹¦ÄÜ£¬¶¼Ó¦¸Ãн¨Ò»¸öµ¥¶ÀµÄ·ÖÖ§¡£
Pull Request
¹¦ÄÜ·ÖÖ§ºÏ²¢½ømaster·ÖÖ§£¬±ØÐëͨ¹ýPull Request£¨Gitlab.comÀïÃæ½Ð×ö Merge
Request£©¡£
Pull Request±¾ÖÊÊÇÒ»ÖÖ¶Ô»°»úÖÆ£¬¿ÉÒÔÔÚÌá½»µÄʱºò@Ïà¹ØÈËÔ±»òÍŶӣ¬ÒýÆðËûÃǵÄ×¢Òâ¡£¼°Ê±µÄ²é¿´Ìá½»µÄÄÚÈÝ¡£
Protected branch
master·ÖÖ§Ó¦¸ÃÊܵ½±£»¤£¬²»ÊÇÿ¸öÈ˶¼¿ÉÒÔÐÞ¸ÄÕâ¸ö·ÖÖ§£¬ÒÔ¼°ÓµÓÐÉóÅú Pull Request
µÄȨÁ¦¡£
Github.com ºÍ Gitlab.com ¶¼Ìṩ¡°±£»¤·ÖÖ§¡±£¨Protected branch£©Õâ¸ö¹¦ÄÜ¡£
issue
GitHub.com µÄissue ¹¦ÄܾÍÈçͬTODO list¡£ÏëÒªÔÚÏÂÒ»²½Íê³ÉµÄ¹¤×÷£¬ÈçfeatureÌí¼Ó¡¢bugÐ޸ĵȣ¬¶¼Ð´³ÉÒ»¸ö¸öµÄissue¡£·ÅÔÚÉÏÃæ£¬¿ÉÒÔ×÷ΪÌáÐÑ£¬¿ÉÒÔͳһ¹ÜÀí¡£
¿ª·¢Íê³Éºó£¬ÔÚÌύ˵Ã÷ÀïÃæ£¬¿ÉÒÔÑ¡ÔñÐÔµÄÓëij¸öissue¹ØÁª¡£±ÈÈçÔÚmessageÖÐÌí¼Ó#n£¬¾Í¿ÉÒÔÓëµÚn¸öissue½øÐйØÁª¡£
Ö»Òªcommit messageÀïÃæÓÐÏÂÃæÕâЩ¶¯´Ê + ±àºÅ£¬¾Í»á¹Ø±Õ¶ÔÓ¦µÄissue¡£
-
close #n
- closes #n
- closed #n
- fix #n
- fixes #n
- fixed #n
- resolve #n
- resolves #n
- resolved #n
`commit message title, fix #n`
|
merge½Úµã
GitÓÐÁ½Öֺϲ¢£ºÒ»ÖÖÊÇ¡°Ö±½øÊ½ºÏ²¢¡±£¨fast forward£©£¬²»Éú³Éµ¥¶ÀµÄºÏ²¢½Úµã£»ÁíÒ»ÖÖÊÇ¡°·ÇÖ±½øÊ½ºÏ²¢¡±£¨none
fast-forword£©£¬»áÉú³Éµ¥¶À½Úµã¡£
ǰÕß²»ÀûÓÚ±£³ÖcommitÐÅÏ¢µÄÇåÎú£¬Ò²²»ÀûÓÚÒÔºóµÄ»Ø¹ö¡£½¨Òé×ÜÊDzÉÓúóÕߣ¨¼´Ê¹ÓèCno-ff²ÎÊý£©¡£Ö»Òª·¢ÉúºÏ²¢£¬¾ÍÒªÓÐÒ»¸öµ¥¶ÀµÄºÏ²¢½Úµã¡£
|