·ÖÖ§ºÍºÏ²¢
Git ¸úÆäËû°æ±¾¿ØÖÆÏµÍ³×î´óµÄÓÅÊÆ¾ÍÔÚÓÚÆä¸ß¼¶µÄ·ÖÖ§Ä£ÐÍ¡£
Git ÔÊÐí¶øÇÒ ¹ÄÀø ÄãÔÚ±¾µØÊ¹Óöà¸öÍêÈ«¶ÀÁ¢µÄ·ÖÖ§¡£ÕâЩ·ÖÖ§µÄ´´½¨£¬ºÏ²¢ºÍɾ³ý¼¸ºõ¶¼¿ÉÒÔÔÚ¼¸ÃëÄÚÍê³É¡£
ÕâÒâζ×ÅÄã¿ÉÒÔÇáËɵÄ×öÈçϲÙ×÷£º
ÎÞÍ´µÄÉÏÏÂÎÄÇл» ´´½¨·ÖÖ§ÊÔÑéÒ»¸öÏë·¨£¬Ìá½»¼¸´Î£¬ÇлØÄãÔÀ´·ÖÖ§µÄ״̬£¬Ó¦ÓÃÒ»¸ö¸Ä¶¯ patch£¬ÇлØÄãÔÀ´ÕýÔÚÊÔÑéµÄ״̬£¬½«¸Õ²ÅÓ¦ÓõÄ
patch ºÏ²¢¹ýÀ´¡£
»ùÓÚ½ÇÉ«µÄ´úÂëÖ§Ïß Äã¿ÉÄÜ»áÓÐÒ»¸ö·ÖÖ§½ö½ö°üº¬ÄÇЩֻ´æÔÚÓÚÉú²ú»·¾³ÉϵĴúÂ룬ÁíÍâÓÐÒ»¸ö¶ÀÁ¢µÄ·ÖÖ§ÓÃÒԺϲ¢²âÊÔ»·¾³´úÂ룬»¹ÓÐÈô¸É¸ö¸üСһЩµÄ·ÖÖ§ÓÃÓÚÈÕ³£¿ª·¢¹¤×÷
»ùÓÚÌØÐԵŤ×÷Á÷ Ϊÿһ¸öеÄÌØÐÔ´´½¨ÐµķÖÖ§£¬Äã¿ÉÒÔ·½±ãƽ»¬µÄÔÚÕâЩ·ÖÖ§Ö®¼äÎÞ·ìÇл»£¬µ±ÕâÐ©ÌØÐԵĸ͝Íê³ÉµÄʱºò£¬Äã¿ÉÒÔ½«ÆäºÏ²¢ÈëÖ÷·ÖÖ§£¬²¢°ÑÌØÐÔ·Ö֧ɾµô¡£
ÈÎÒâÊÔÑé ´´½¨Ò»¸ö·Ö֧רÃÅÓÃÀ´ÊÔÑ飬µ±¾õµÃÊÔÑé²»ÀíÏëµÄʱºò£¬Ö±½Óɾ³ýµô¼´¿É£¬·ÅÆúµô֮ǰµÄÊÔÑéÄÚÈÝ¡£Õâʱºò²»»áÓÐÈÎºÎÆäËûÈ˲ì¾õµ½Õâ¸öÊÔÑ飨ÉõÖÁÔÚÕâÆÚ¼äÄ㻹¿ÉÒÔÍÆËÍÆäËû²»Ïà¹ØµÄ·ÖÖ§£©

ÓÈÆäÊǵ±ÄãÍÆËÍÖÁÔ¶³Ì²Ö¿âµÄʱºò£¬Äã²»±ØÍÆËÍËùÓзÖÖ§£¬Äã¿ÉÒÔÑ¡ÔñÖ»ÍÆËÍÉÙÊýÄãÔ¸Òâ·ÖÏíµÄ·ÖÖ§£¬µ±È»Èç¹ûÄãÔ¸Ò⣬Ҳ¿ÉÒÔÍÆËÍËùÓзÖÖ§¡£ÕâÒ»µãÇãÏòÓÚÈÿª·¢ÕßÔÚÊÔÑéºÜ¶àеÄÏë·¨µÄʱºòÃâ³ý·¢²¼×Ô¼ºµÄδ³ÉÊìµÄÊÔÑ鼯»®µÄ¹ËÂÇ¡£
µ±È»£¬Ò²ÓÐһЩÆäËûµÄϵͳ¿ÉÒÔ²¿·ÖʵÏÖÉÏÊöµÄ¹¦ÄܺÍÓÅÊÆ£¬Ö»ÊǾßÌåµÄÖ´Ðлá±äµÄÀ§ÄѺÍÈÝÒ׳ö´í¡£Git
ÈÃÕâЩ¹¤×÷±äµÃÄÑÒÔÖÃÐŵļòµ¥£¬ËüÔÚ¿ª·¢ÕßѧϰÆäʹÓõÄͬʱ¾Í¸Ä±äÁË¿ª·¢ÕߵŤ×÷ģʽ¡£
ÇáÁ¿ºÍ¿ìËÙ
Git ºÜ¿ì¡£Git »ù±¾ÉÏËùÓеIJÙ×÷¶¼ÔÚ±¾µØÖ´ÐУ¬Õâ¶ÔÓÚÄÇЩ±ØÐë¸ú·þÎñÆ÷ͨÐŵļ¯ÖÐʽϵͳÊÇÒ»¸ö¾Þ´óµÄËÙ¶ÈÓÅÊÆ¡£
Git Ò»¿ªÊ¼ÊÇΪÁ˹ÜÀí Linux Kernel µÄÔ´´úÂëÉè¼ÆµÄ£¬ÕâÒâζ×ÅËû´ÓµÚÒ»Ììµ®Éú¾ÍÓµÓÐÁË´¦Àí´óÐͲֿâµÄ¸ßЧÓÅÊÆ¡£Git
ʹÓà C ÓïÑÔ±àд£¬¼õÇáÁËʹÓøü¸ß¼¶±ð±à³ÌÓïÑ﵀ Runtime ´øÀ´µÄÐÔÄÜËðºÄ¡£Git ×ʼµÄÁ½¸öÖØÒªµÄÉè¼ÆÄ¿±ê¾ÍÊÇÐÔÄܺÍËÙ¶È¡£
ѹÁ¦²âÊÔ
ÈÃÎÒÃÇ¿´Ò»ÏÂÓë SVN £¨Ò»¸öͨÓõļ¯ÖÐʽ´æ´¢°æ±¾¿ØÖÆÏµÍ³£¬¸ú CVS ºÍ Perforce ºÜÏñ£©Ïà±Èϵij£¹æ²Ù×÷µÄÐÔÄܲâÊÔÖ¸±ê¡£ÕâÀïÖ¸±êÊÇֵԽС£¬ËÙ¶ÈÔ½¿ì¡£

ΪÁ˲âÊÔ£¬ÎÒÃÇÔÚÑÇÂíÑ·µÄ AWS µÄͬÑùµÄ¿ÉÓÃÇøÉÏн¨ÁËÁ½¸ö Large ÀàÐ͵ļÆËã·þÎñÆ÷ʵÀý¡£Ã¿Ò»¸ö¼ÆËãʵÀýÉ϶¼°²×°
Git ºÍ SVN¡£ ÎÒÃÇ°Ñ Ruby µÄÔ´´úÂë²Ö¿â¿½±´µ½ÁË Git ºÍ SVN µÄ¼ÆËã·þÎñÆ÷ʾÀýÉÏ£¬Á½Õß¶¼Ö´ÐÐͨÓõIJÙ×÷¡£
ÔÚÓÐЩÇé¿öÏ£¬Á½ÕßµÄÃüÁîºÍʵ¼ÊЧ¹û²¢²»ÄÜÍêÈ«¶ÔÓ¦ÆðÀ´¡£ÔÚÕâÀÎÒÃÇÔÚ³£ÓõIJÙ×÷ÖÐÑ¡ÔñÏàËÆÐ§¹ûµÄÆ¥ÅäÇé¿ö¡£ÀýÈ磬¶ÔÓÚ
¡°Ìá½»¡± µÄ²âÊÔ£¬ÔÚ Git ÖÐÎÒÃÇÒ²ÊǼÆËã Push µÄʱ¼äµÄ¡£È»¶øÔÚ´ó¶àÊýÇé¿öÏ£¬Äã¿ÉÄÜʵ¼ÊÉϲ¢²»»áÔÚÌá½»ºóÂíÉϾÍÍÆË͵½·þÎñÆ÷ÉÏ£¬ÕâÔÚ
SVN ÉÏÊDz»¿É·Ö¸îµÄ²Ù×÷¡£
ÏÂÃæ±í¸ñÖÐËùÓеÄʱ¼äµ¥Î»¶¼ÊÇÃë¡£

ÄãÐèҪעÒâµÄÊÇ£¬ÕâÒѾÊÇ SVN ×îºÃµÄÔËÐг¡¾°ÁË -- Ò»¸öûÓÐÈκθºÔصķþÎñÆ÷£¬¿Í»§¶ËºÍ·þÎñÆ÷Ö®¼äµÄÍøÂç´ø¿í´ïµ½
80MB/s¡£ÉÏÎÄÖеÄËùÓÐÖ¸±êÔÚÊÜÍøÂ粨¶¯£¬»òÕßÔÚÒ»¸ö¸ü²îµÄÍøÂç»·¾³Ï SVN µÄ±íÏÖ¶¼¸ü²î£¬È»¶ø
Git Õâ±ß¼¸ºõËùÓеÄÖ¸±ê¶¼²»ÊÜÓ°Ïì¡£
ºÜÃ÷ÏÔ£¬ÔÚÕâЩ×î³£Óõİ汾¿ØÖƹ¤¾ßµÄ²Ù×÷ÖУ¬ÉõÖÁÊÇÔÚ SVN µÄÀíÏëʹÓû·¾³Ï£¬**Git ÔÚºÜ¶à·½Ãæ¶¼´ó·ùÁìÏÈ
**¡£
Ò»¸ö Git ±È SVN ÂýµÄµØ·½Êdzõʼ»¯ clone ²Ö¿â¡£ÔÚÕâÖÖÇé¿öÏ£¬Git ÊÇÔÚÏÂÔØÕû¸ö²Ö¿âÀúÊ·¶ø²»Êǽö½öÊÇ×îа汾µÄ´úÂë¡£ÉÏÎÄÖеıí¸ñËùʾ£¬½ö½öÖ´ÐÐÒ»´ÎµÄ²Ù×÷Ó°Ïì²¢²»ÊǺܴó¡£

ÁíÍâÒ»¸öÓÐȤµÄµãÊÇ£¬Git ºÍ SVN ÔÚ Clone »òÕß Checkout µ½±¾µØºóµÄÎļþ´óС¼¸ºõ²î±ð²»´ó£¬ÒªÖªµÀ¶ÔÓÚ
Git À´Ëµ£¬±¾µØ¿ÉÊǰüº¬ÁËÕû¸öÏîÄ¿ÀúÊ·¡£ÕâҲչʾÁË Git ÔÚÎļþѹËõºÍ´æ´¢Éϵij¬¸ßЧÂÊ¡£
·Ö²¼Ê½
Git ×î°ôµÄÌØÐÔÖ®Ò»¾ÍÊÇ·Ö²¼Ê½¡£ÕâÒâζ×Å£¬ÄãÒª clone Õû¸ö²Ö¿â¶ø²»Êǽö½ö checkout
·ÖÖ§µÄ×îÐÂÍ·²¿°æ±¾¡£
¶à¸ö±¸·Ý
ÔÚÈÕ³£µÄʹÓó¡¾°ÖÐ Git ÍùÍùÓжà¸ö±¸·Ý¡£ÕâÒâζמÍËãÔÚʹÓÃÒ»¸öÖÐÑë´æ´¢Ê½µÄ¹¤×÷Á÷£¬Ã¿Ò»¸öÓû§¶¼ÔÚ±¾µØÓÐÒ»¸ö·þÎñÆ÷ÉϵÄÍêÕû±¸·Ý¡£ÕâÀïµÄÈÎÒâÒ»¸ö°æ±¾¶¼¿ÉÒÔÔÚ·þÎñÆ÷¶ËÊý¾ÝË𻵻òÕß¶ªÊ§µÄʱºòÍÆËͻطþÎñÆ÷ÒÔÍì¾ÈËðʧ¡£ÊÂʵÉÏ£¬Ö»ÒªÄãµÄ²Ö¿â²»ÊÇÖ»ÓÐÒ»¸ö
copy£¬Git ¾Í²»»á´æÔÚµ¥µãÎÊÌâ¡£
ÈÎÒ⹤×÷Á÷
ÒòΪ Git ÓµÓзֲ¼Ê½ÌØÐԺͼ«ºÃµÄ·Ö֧ϵͳ£¬Äã¿ÉÒÔÔÚ´Ë»ù´¡ÉÏÇáËÉʵÏÖ´óÁ¿µÄ¹¤×÷Á÷Ä£ÐÍ¡£
Subversion£¨SVN£© ·ç¸ñ¹¤×÷Á÷
¼¯ÖÐʽ´æ´¢µÄ¹¤×÷Á÷·Ç³£³£¼û£¬ÌرðÊǶÔÓÚÄÇЩ´Ó´«Í³µÄ¼¯ÖÐʽ´úÂë°æ±¾¹ÜÀíϵͳת¹ýÀ´Ê¹Óà Git µÄÈË¡£Git
Ò»Ñù¿ÉÒÔÌṩÕâÖÖ¹¤×÷ÐÎʽ£ºÃ¿´Î Push ±ØÐëÒª¸üе½Ô¶³Ì²Ö¿âµÄ×îа汾¡£ËùÒÔ˵´ó¼Ò»¹ÊÇÏñÒÔǰһÑùʹÓü¯ÖÐʽ´æ´¢µÄ¹¤×÷Á÷Íùͬһ¸ö·þÎñÆ÷ÉÏ
Push ´úÂëÒÀȻûÎÊÌâ¡£

ÕûºÏ¹ÜÀíÕß¹¤×÷Á÷
ÁíÍâÒ»¸ö³£¼ûµÄ Git ¹¤×÷Á÷ÊÇÕûºÏ¹¤×÷Á÷¡£Ö÷ÒªµÄ²Ö¿âÓÐÒ»¸öµ¥Ò»µÄ¿ª·¢Õßά»¤£¨Î¬»¤Õߣ©¡£ÆäËûÈô¸É¿ª·¢Õß´ÓÕâ¸ö²Ö¿â
clone£¬È»ºóÍÆË͵½ËûÃÇ×Ô¼ºµÄÍêÈ«¶ÀÁ¢µÄ²Ö¿âÀïÃæ£¬×îºóÇëÇóά»¤Õß´ÓÖ÷Òª²Ö¿â Pull ÄÇЩËûÃÇÔÚ¸÷×ԵIJֿâÀïÃæµÄ¸Ä¶¯¡£ÕâÖÖÐÎʽÍùÍùÔÚ
GitHub ÉÏÒÔ¿ªÔ´µÄÐÎʽ½øÐÐÐ×÷¡£

ά»¤Õߺ͸ºÔðÈ˹¤×÷Á÷
¶ÔÓÚһЩ¸üΪ¸´ÔÓµÄÏîÄ¿À´½²£¬Ïñ Linux ÄÚºËÕâÑùµÄ¿ª·¢¹¤×÷Á÷Ò²ÊǺÜÓÐЧµÄ¡£ÔÚÕâ¸öÄ£ÐÍÖУ¬¸ºÔðÈË£¨lieutenants£©¸ºÔðÕû¸öÏîÄ¿µÄÒ»Ð©ÌØ¶¨µÄ×Óϵͳ£¬ËûÃǺϲ¢ËùÓиúÄǸö×Óϵͳ¹ØÁªµÄ±ä¶¯¡£ÁíÍâÒ»¸öά»¤Õߣ¨dictator£¬×ÖÃæÀí½â£º¶À²ÃÕߣ©Ö»ÄÜ´ÓËû¹ÜϽµÄ¸ºÔðÈËÕâÀï»ñÈ¡±ä¸ü£¬²¢½«ÕâЩ±ä¸üÍÆË͵½Ö÷Òª²Ö¿â¡£È»ºóËùÓÐÈ˶¼´ÓÕâ¸ö²Ö¿â»ñÈ¡¸üС£

Êý¾ÝУÑé
Git µÄÊý¾ÝÄ£ÐÍÈ·±£ÁËÏîÄ¿ÄÚµÄÿһ¸ö×Ö½Ú£¬Ã¿Ò»¸ö bit µÄÒ»ÖÂÐÔ¡£Ìá½»µÄÿһ¸öÎļþ¶¼»áʹÓÃУÑéºÍ¼ÆËãÕªÒª£¬¼ì³öµÄʱºòҲʹÓÃÕâ¸öÕªÒªÖµ¡£Ã»ÓÐÈκοÉÄÜ»á³öÏÖ´Ó²Ö¿âÖлñÈ¡µÄÄÚÈݸúÄã´æ´¢µÄÄÚÈÝÓÐÈκβîÒì¡£

ÔÚ²»¸Ä±ä ID£¨Ð£ÑéºÍ£©µÄÇé¿öÏÂÒ²²»¿ÉÄܳöÏָıäÈκÎÎļþ£¬ÈÕÆÚ£¬Ìύ˵Ã÷»òÕßÈÎºÎÆäËûÔÚ Git ²Ö¿âÖеÄÊý¾Ý¡£Õâ¾ÍÒâζ×Å£¬Èç¹ûÄãÓÐÒ»¸ö
commit ID£¬Äã²»µ«¿ÉÒÔÈ·¶¨Õâ¸ö°æ±¾µÄ´úÂë¸úËûÌá½»µÄʱºòÊÇһģһÑùµÄ£¬¶øÇÒÕâ¸ö°æ±¾Ö®Ç°µÄÀúʷҲûÓз¢ÉúÈκθı䡣
´ó¶àÊýÖÐÑë´æ´¢µÄ°æ±¾¿ØÖÆÏµÍ³Ä¬Èϲ»ÌṩÕâÑùµÄУÑéÕûºÏ¡£
ÔÝ´æÇøÓò
²»ÏñÆäËûϵͳ£¬ Git ÓÐÒ»¸ö¸ÅÄî½Ð×ö ¡°ÔÝ´æÇøÓò¡± »òÕß ¡°index¡±¡£ÕâÊÇÒ»¸öÔÚÌá½»Ö´ÐÐ֮ǰµÄÁÙʱµÄÇøÓò¿ÉÒÔÓÃÀ´¸ñʽ»¯ºÍÉóÔĸ͝ÄÚÈݵġ£
Ò»¸ö Git ÓÅÓÚÆäËûϵͳµÄ¹¦ÄÜÊÇÎÒÃÇ¿ÉÒÔ¿ìËÙµÄÔÝ´æÒ»Ð©¸Ä¶¯µÄÎļþ£¬ÔÚ¹¤×÷Ŀ¼ÖÐÖ»Ìá½»²¿·Ö¸Ä¶¯µÄÎļþ£¬»òÕßÎļþ¸Ä¶¯µÄ²¿·ÖÄÚÈÝ£¬ÒÔ¼°ÔÚÌá½»µÄʱºòÔÚÃüÁîÐÐÀïÁгö¸Ä¶¯µÄÎļþÁÐ±í¡£

ÔÝ´æÇøÓòÔÊÐíÄã½ö½öÔݴ沿·ÖµÄÎļþ¸Ä¶¯£¬ÔÚÄãÒâʶµ½ÄãÍüÁËÌá½»ÆäÖÐÒ»¸öÎļþ֮ǰ£¬¶ÔÎļþ½øÐÐÁ½¸öÂß¼Éϲ»Ïà¹ØµÄÐ޸ĵÄÈÕ×ÓÒѾһȥ²»¸´·µÁË¡£ÏÖÔÚÄã¿ÉÒÔ½ö½öÔÝ´æÄ㵱ǰÌá½»ÐèÒª¸Ä¶¯µÄÎļþ£¬ÆäËûµÄ¸Ä¶¯ÔÚÏ´ÎÌá½»ÔÙÔÝ´æ¡£Õâ¸öÌØÐÔ¿ÉÒÔÀ©Õ¹µ½¶ÔÎļþ½øÐеÄÈκθü¸Ä¡£
µ±È»£¬Git Ò²ÔÊÐíÄãºöÂÔµôÔÝ´æÇøÓòÕâ¸ö¹ý³Ì£¬Äã¿ÉÒÔÇáËɵÄÔÚ commit ÃüÁîºóÃæÌí¼Ó '-a'
Ñ¡ÏîÀ´Ö±½Ó½«ËùÓи͝Ìá½»¡£Git »á×Ô¶¯°ïÄãÏÈÔÝ´æµ½ÔÝ´æÇøÓò£¬ÔÙÖ´ÐÐÌá½»¡£

Ãâ·ÑºÍ¿ªÔ´
Git ÊÇÒ»¸öʹÓà GNU GPL2.0 ÐÒéµÄ¿ªÔ´Èí¼þ¡£Git Ñ¡Ôñ GPLv2 À´È·±£Äã¿ÉÒÔ×ÔÓɵķÖÏíºÍ¸ÄÔì×ÔÓÉÈí¼þ£¬¶øÇÒÄÜÈ·±£Ê¹ÓÃËüµÄÈκÎÓû§¶¼ÊÇ×ÔÓÉÃâ·ÑµÄ¡£
È»¶ø£¬ÎÒÃÇȷʵҲ±£ÁôÁË ¡°Git¡± ºÍ logos ±ÜÃâÕùÒé¡£ÓûÖªÏêÇéÇë¿´ÎÒÃǵÄÉ̱êÕþ²ß¡£
|