Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Git·Ö²¼Ê½°æ±¾¹ÜÀíÏê½â
 
  3230  次浏览      27
 2018-10-8 
 
±à¼­ÍƼö:

±¾ÎÄÀ´×Ô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 title, #1

Ö»Òª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²ÎÊý£©¡£Ö»Òª·¢ÉúºÏ²¢£¬¾ÍÒªÓÐÒ»¸öµ¥¶ÀµÄºÏ²¢½Úµã¡£

 

   
3230 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÿÈÕ¹¹½¨½â¾ö·½°¸
ÈçºÎÖÆ¶¨ÓÐЧµÄÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀíÖ÷Òª»î¶¯¼°ÊµÏÖ·½·¨
¹¹½¨¹ÜÀíÈëÃÅ
Ïà¹ØÎĵµ

ÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀí°×ƤÊé
CM09_CÅäÖùÜÀí±ê×¼
ʹÓÃSVN½øÐа汾¿ØÖÆ
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀíʵ¼ù
ÅäÖùÜÀí·½·¨¡¢¹¤¾ßÓëÓ¦ÓÃ
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
²úÆ··¢²¼¹ÜÀí