±à¼ÍƼö: |
±¾ÎÄÀ´×Ô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 µÄСÐÍÍŶӼäÐ×÷¿ÉÒÔ±äµÃ·Ç³£Áé»î×ÔÓÉ¡£ÒÔÉϹ¤×÷Á÷³ÌµÄʱÐòÈçͼËùʾ£º

|