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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
GitѧϰÎĵµÖ®Ò» ѧϰÎĵµ-²¢Ðпª·¢
 
  3237  次浏览      27
 2017-12-21  
 
±à¼­ÍƼö:
±¾ÎÄÀ´×Ôcsdn£¬Ö÷Òª½éÉÜÁ˼¯³É¹ÜÀíÔ±¹¤×÷Á÷£¬ÔõôʹÓöà¸öÔ¶³Ì²Ö¿â£¬ÒÔ¼°Ð­×÷µÄ¹ý³Ì¡£

²¢Ðпª·¢

¼¯³É¹ÜÀíÔ±¹¤×÷Á÷

ÓÉÓÚ Git ÔÊÐíʹÓöà¸öÔ¶³Ì²Ö¿â£¬¿ª·¢Õß±ã¿ÉÒÔ½¨Á¢×Ô¼ºµÄ¹«¹²²Ö¿â£¬ÍùÀïÃæÐ´Êý¾Ý²¢¹²Ïí¸øËûÈË£¬¶øÍ¬Ê±ÓÖ¿ÉÒÔ´Ó±ðÈ˵IJֿâÖÐÌáÈ¡ËûÃǵĸüйýÀ´¡£ÕâÖÖÇéÐÎͨ³£¶¼»áÓиö´ú±í׏ٷ½·¢²¼µÄÏîÄ¿²Ö¿â£¨blessed repository£©£¬¿ª·¢ÕßÃÇÓɴ˲ֿâ¿Ë¡³öÒ»¸ö×Ô¼ºµÄ¹«¹²²Ö¿â£¨developer public£©£¬È»ºó½«×Ô¼ºµÄÌá½»ÍÆËÍÉÏÈ¥£¬ÇëÇó¹Ù·½²Ö¿âµÄά»¤ÕßÀ­È¡¸üкϲ¢µ½Ö÷ÏîÄ¿¡£Î¬»¤ÕßÔÚ×Ô¼ºµÄ±¾µØÒ²Óиö¿Ë¡²Ö¿â£¨integration manager£©£¬Ëû¿ÉÒÔ½«ÄãµÄ¹«¹²²Ö¿â×÷ΪԶ³Ì²Ö¿âÌí¼Ó½øÀ´£¬¾­¹ý²âÊÔÎÞÎóºóºÏ²¢µ½Ö÷¸É·ÖÖ§£¬È»ºóÔÙÍÆË͵½¹Ù·½²Ö¿â¡£¹¤×÷Á÷³Ì¿´ÆðÀ´¾ÍÏñͼËùʾ£º

ÏîĿά»¤Õß¿ÉÒÔÍÆËÍÊý¾Ýµ½¹«¹²²Ö¿â blessed repository¡£

¹±Ï×Õ߿ˡ´Ë²Ö¿â£¬ÐÞ¶©»ò±àддúÂë¡£

¹±Ï×ÕßÍÆËÍÊý¾Ýµ½×Ô¼ºµÄ¹«¹²²Ö¿â developer public¡£

¹±Ï×Õ߸øÎ¬»¤Õß·¢ËÍÓʼþ£¬ÇëÇóÀ­È¡×Ô¼ºµÄ×îÐÂÐÞ¶©¡£

ά»¤ÕßÔÚ×Ô¼º±¾µØµÄ integration manger ²Ö¿âÖУ¬½«¹±Ï×ÕߵIJֿâ¼ÓΪԶ³Ì²Ö¿â£¬ºÏ²¢¸üв¢×ö²âÊÔ¡£

ά»¤Õß½«ºÏ²¢ºóµÄ¸üÐÂÍÆË͵½Ö÷²Ö¿â blessed repository¡£

²¢Ðпª·¢Ä£Äâ

Èç¹ûÓм¸¸öС×é·ÖÍ·¸ºÔðÈô¸ÉÌØÐԵĿª·¢ºÍ¼¯³É£¬ÄÇËûÃÇÖ®¼äµÄЭ×÷¹ý³ÌÊÇÔõÑùµÄ¡£

¼ÙÉè John ºÍ Jessica Ò»Æð¸ºÔ𿪷¢Ä³ÏîÌØÐÔ A£¬¶øÍ¬Ê± Jessica ºÍ Josie Ò»Æð¸ºÔ𿪷¢ÁíÒ»ÏÄÜ B¡£¹«Ë¾Ê¹ÓõäÐ͵ɹÜÀíԱʽ¹¤×÷Á÷£¬Ã¿¸ö×é¶¼ÓÐÒ»Ãû¹ÜÀíÔ±¸ºÔ𼯳ɱ¾×é´úÂ룬¼°¸üÐÂÏîÄ¿Ö÷²Ö¿âµÄ master ·ÖÖ§¡£ËùÓпª·¢¶¼ÔÚ´ú±íС×éµÄ·ÖÖ§ÉϽøÐС£

ÈÃÎÒÃǸúËæ Jessica µÄÊӽǿ´¿´ËýµÄ¹¤×÷Á÷³Ì¡£Ëý²ÎÓ뿪·¢Á½ÏîÌØÐÔ£¬Í¬Ê±ºÍ²»Í¬Ð¡×éµÄ¿ª·¢ÕßÒ»ÆðЭ×÷¡£¿Ë¡Éú³É±¾µØ²Ö¿âºó£¬Ëý´òËãÏÈ×ÅÊÖ¿ª·¢ÌØÐÔ A¡£ÓÚÊÇ´´½¨ÁËÐ嵀 featureA ·ÖÖ§£¬¼Ì¶ø±àд´úÂ룺

# Jessica's Machine
$ git checkout -b featureA
Switched to a new branch "featureA"
$ vim lib/simplegit.rb
$ git commit -am 'add limit to log function'
[featureA 3300904] add limit to log function
1 files changed, 1 insertions(+), 1 deletions(-)

´Ë¿Ì£¬ËýÐèÒª·ÖÏíĿǰµÄ½øÕ¹¸ø John£¬ÓÚÊÇËý½«×Ô¼ºµÄ featureA ·ÖÖ§Ìá½»µ½·þÎñÆ÷¡£ÓÉÓÚ Jessica ûÓÐȨÏÞÍÆËÍÊý¾Ýµ½Ö÷²Ö¿âµÄ master ·ÖÖ§£¨Ö»Óм¯³É¹ÜÀíÔ±ÓдËȨÏÞ£©£¬ËùÒÔÖ»Äܽ«´Ë·ÖÖ§ÍÆÉÏȥͬ John ¹²ÏíЭ×÷£º

$ git push origin featureA
...
To jessica@githost:simplegit.git
* [new branch] featureA -> featureA

Jessica ·¢Óʼþ¸ø John ÈÃËûÉÏÀ´¿´¿´ featureA ·ÖÖ§ÉϵĽøÕ¹¡£ÔڵȴýËûµÄ·´À¡Ö®Ç°£¬Jessica ¾ö¶¨¼ÌÐø¹¤×÷£¬ºÍ Josie Ò»Æð¿ª·¢ featureB ÉϵÄÌØÐÔ B¡£µ±È»£¬ÏÈ´´½¨´Ë·ÖÖ§£¬·Ö²æµãÒÔ·þÎñÆ÷É쵀 master ΪÆðµã£º

# Jessica's Machine
$ git fetch origin
$ git checkout -b featureB origin/master
Switched to a new branch "featureB"

Ëæºó£¬Jessica ÔÚ featureB ÉÏÌá½»ÁËÈô¸É¸üУº

$ vim lib/simplegit.rb
$ git commit -am 'made the ls-tree function recursive'
[featureB e5b0fdc] made the ls-tree function recursive
1 files changed, 1 insertions(+), 1 deletions(-)
$ vim lib/simplegit.rb
$ git commit -am 'add ls-files'
[featureB 8512791] add ls-files
1 files changed, 5 insertions(+), 0 deletions(-)

ÏÖÔÚ Jessica µÄ¸üÐÂÀúÊ·ÈçͼËùʾ£º

Jessica Õý×¼±¸ÍÆËÍ×Ô¼ºµÄ½øÕ¹ÉÏÈ¥£¬È´ÊÕµ½ Josie µÄÀ´ÐÅ£¬ËµÊÇËýÒѾ­½«×Ô¼ºµÄ¹¤×÷ÍÆµ½·þÎñÆ÷É쵀 featureBee ·ÖÖ§ÁË¡£ÕâÑù£¬Jessica ¾Í±ØÐëÏȽ« Josie µÄ´úÂëºÏ²¢µ½×Ô¼º±¾µØ·ÖÖ§ÖУ¬²ÅÄÜÔÙÒ»ÆðÍÆËͻطþÎñÆ÷¡£ËýÓà git fetch ÏÂÔØ Josie µÄ×îдúÂ룺

$ git fetch origin
...
From jessica@githost:simplegit
* [new branch] featureBee -> origin/featureBee

È»ºó Jessica ʹÓà git merge ½«´Ë·ÖÖ§ºÏ²¢µ½×Ô¼º·ÖÖ§ÖУº

$ git merge origin/featureBee
Auto-merging lib/simplegit.rb
Merge made by recursive.
lib/simplegit.rb | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)

ºÏ²¢ºÜ˳Àû£¬µ«ÁíÍâÓиöСÎÊÌ⣺ËýÒªÍÆËÍ×Ô¼ºµÄ featureB ·ÖÖ§µ½·þÎñÆ÷É쵀 featureBee ·ÖÖ§ÉÏÈ¥¡£µ±È»£¬Ëý¿ÉÒÔʹÓÃðºÅ£¨:£©¸ñʽָ¶¨Ä¿±ê·ÖÖ§£º

$ git push origin featureB:featureBee
...
To jessica@githost:simplegit.git
fba9af8..cd685d1 featureB -> featureBee

½ÓÏÂÀ´£¬John ·¢Óʼþ¸ø Jessica ¸æËßËý£¬Ëû¿´ÁËÖ®ºó×÷ÁËЩÐ޸ģ¬ÒѾ­ÍƻطþÎñÆ÷ featureA ·ÖÖ§£¬ÇëËý¹ýĿϡ£ÓÚÊÇ Jessica ÔËÐÐ git fetch ÏÂÔØ×îÐÂÊý¾Ý£º

$ git fetch origin
...
From jessica@githost:simplegit
3300904..aad881d featureA -> origin/featureA

½ÓÏÂÀ´±ã¿ÉÒÔÓà git log ²é¿´¸üÐÂÁËЩʲô£º

$ git log origin/featureA ^featureA
commit aad881d154acdaeb2b6b18ea0e827ed8a6d671e6
Author: John Smith <jsmith@example.com>
Date: Fri May 29 19:57:33 2009 -0700

changed log output to 30 from 25

×îºó£¬Ëý½« John µÄ¹¤×÷ºÏ²¢µ½×Ô¼ºµÄ featureA ·ÖÖ§ÖУº

$ git checkout featureA
Switched to branch "featureA"
$ git merge origin/featureA
Updating 3300904..aad881d
Fast forward
lib/simplegit.rb | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)

Jessica ÉÔ×öÒ»·¬ÐÞÕûºóͬ²½µ½·þÎñÆ÷£º

$ git commit -am 'small tweak'
[featureA ed774b3] small tweak
1 files changed, 1 insertions(+), 1 deletions(-)
$ git push origin featureA
...
To jessica@githost:simplegit.git
3300904..ed774b3 featureA -> featureA

ÏÖÔÚµÄ Jessica Ìá½»ÀúÊ·ÈçͼËùʾ£º

ÏÖÔÚ£¬Jessica£¬Josie ºÍ John ֪ͨ¼¯³É¹ÜÀíÔ±·þÎñÆ÷É쵀 featureA ¼° featureBee ·ÖÖ§ÒѾ­×¼±¸ºÃ£¬¿ÉÒÔ²¢ÈëÖ÷ÏßÁË¡£ÔÚ¹ÜÀíÔ±Íê³É¼¯³É¹¤×÷ºó£¬Ö÷·ÖÖ§Éϱã¶à³öÒ»¸öеĺϲ¢Ìá½»£¨5399e£©£¬Óà fetch ÃüÁî¸üе½±¾µØºó£¬Ìá½»ÀúÊ·ÈçͼËùʾ£º

Ðí¶à¿ª·¢Ð¡×é¸ÄÓà Git ¾ÍÊÇÒòΪËüÔÊÐí¶à¸öС×é¼ä²¢Ðй¤×÷£¬¶øÔÚÉÔºóÇ¡µ±Ê±»úÔÙÐкϲ¢¡£Í¨¹ý¹²ÏíÔ¶³Ì·ÖÖ§µÄ·½Ê½£¬ÎÞÐè¸ÉÈÅÕûÌåÏîÄ¿´úÂë±ã¿ÉÒÔ¿ªÕ¹¹¤×÷£¬Òò´ËʹÓà Git µÄСÐÍÍŶӼäЭ×÷¿ÉÒÔ±äµÃ·Ç³£Áé»î×ÔÓÉ¡£ÒÔÉϹ¤×÷Á÷³ÌµÄʱÐòÈçͼËùʾ£º

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

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

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

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