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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
GitÏê½âÖ®Áù Git¹¤¾ß
 
»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-07-22
  2437  次浏览      30
 

ÏÖÔÚ£¬ÄãÒѾ­Ñ§Ï°Á˹ÜÀí»òÕßά»¤ Git ²Ö¿â£¬ÊµÏÖ´úÂë¿ØÖÆËùÐèµÄ´ó¶àÊýÈÕ³£ÃüÁîºÍ¹¤×÷Á÷³Ì¡£ÄãÒѾ­Íê³ÉÁ˸ú×ÙºÍÌá½»ÎļþµÄ»ù±¾ÈÎÎñ£¬²¢ÇÒ·¢»ÓÁËÔÝ´æÇøºÍÇáÁ¿¼¶µÄÌØÐÔ·ÖÖ§¼°ºÏ²¢µÄÍþÁ¦¡£

½ÓÏÂÀ´Ä㽫ÁìÂÔµ½Ò»Ð© Git ¿ÉÒÔʵÏֵķdz£Ç¿´óµÄ¹¦ÄÜ£¬ÕâЩ¹¦ÄÜÄã¿ÉÄܲ¢²»»áÔÚÈÕ³£²Ù×÷ÖÐʹÓ㬵«ÔÚijЩʱºòÄãÒ²Ðí»áÐèÒª¡£

6.1 ÐÞ¶©°æ±¾£¨Revision£©Ñ¡Ôñ

Git ÔÊÐíÄãͨ¹ý¼¸ÖÖ·½·¨À´Ö¸Ã÷ÌØ¶¨µÄ»òÕßÒ»¶¨·¶Î§ÄÚµÄÌá½»¡£Á˽âËüÃDz¢²»ÊDZØÐèµÄ£¬µ«ÊÇÁ˽âÒ»ÏÂ×Üû»µ´¦¡£

µ¥¸öÐÞ¶©°æ±¾

ÏÔÈ»Äã¿ÉÒÔʹÓøø³öµÄ SHA-1 ÖµÀ´Ö¸Ã÷Ò»´ÎÌá½»£¬²»¹ýÒ²Óиü¼ÓÈËÐÔ»¯µÄ·½·¨À´×öͬÑùµÄÊ¡£±¾½Ú¸ÅÊöÁËÖ¸Ã÷µ¥¸öÌá½»µÄÖî¶à·½·¨¡£

¼ò¶ÌµÄSHA

Git ºÜ´ÏÃ÷£¬ËüÄܹ»Í¨¹ýÄãÌṩµÄǰ¼¸¸ö×Ö·ûÀ´Ê¶±ðÄãÏëÒªµÄÄÇ´ÎÌá½»£¬Ö»ÒªÄãÌṩµÄÄDz¿·Ö SHA-1 ²»¶ÌÓÚËĸö×Ö·û£¬²¢ÇÒûÓÐÆçÒ塪¡ªÒ²¾ÍÊÇ˵£¬µ±Ç°²Ö¿âÖÐÖ»ÓÐÒ»¸ö¶ÔÏóÒÔÕâ¶Î SHA-1 ¿ªÍ·¡£

ÀýÈ磬ÏëÒª²é¿´Ò»´ÎÖ¸¶¨µÄÌá½»£¬¼ÙÉèÄãÔËÐÐ git log ÃüÁî²¢ÕÒµ½ÄãÔö¼ÓÁ˹¦ÄܵÄÄÇ´ÎÌá½»£º

$ git log commit 734713bc047d87bf7eac9674765ae793478c50d3 Author:
 Scott Chacon <schacon@gmail.com> Date: Fri Jan 2 18:32:33 

¼ÙÉèÊÇ 1c002dd.... ¡£Èç¹ûÄãÏë git show Õâ´ÎÌá½»£¬ÏÂÃæµÄÃüÁîÊǵȼ۵썼ÙÉè¼ò¶ÌµÄ°æ±¾Ã»ÓÐÆçÒ壩£º

$ git show 1c002dd4b536e7479fe34593e72e6c6c1819e53b $ git show 1c002dd4b536e7479f $ git show 1c002d

Git ¿ÉÒÔΪÄãµÄ SHA-1 ÖµÉú³É³ö¼ò¶ÌÇÒΨһµÄËõд¡£Èç¹ûÄã´«µÝ --abbrev-commit ¸ø git log ÃüÁÊä³ö½á¹ûÀï¾Í»áʹÓüò¶ÌÇÒΨһµÄÖµ£»ËüĬÈÏʹÓÃÆß¸ö×Ö·ûÀ´±íʾ£¬²»¹ý±ØÒªÊ±ÎªÁ˱ÜÃâ SHA-1 µÄÆçÒ壬»áÔö¼Ó×Ö·ûÊý£º

$ git log --abbrev-commit --pretty=oneline ca82a6d changed the version
 number 085bb3b removed unnecessary test code a11bef0 f

ͨ³£ÔÚÒ»¸öÏîÄ¿ÖУ¬Ê¹Óð˵½Ê®¸ö×Ö·ûÀ´±ÜÃâ SHA-1 ÆçÒåÒѾ­×ã¹»ÁË¡£×î´óµÄ Git ÏîĿ֮һ£¬Linux Äںˣ¬Ä¿Ç°Ò²Ö»ÐèÒª× 40 ¸ö×Ö·ûÖÐµÄ 12 ¸ö×Ö·ûÀ´±£³ÖΨһÐÔ¡£

¹ØÓÚ SHA-1 µÄ¼ò¶Ì˵Ã÷

Ðí¶àÈË¿ÉÄܻᵣÐÄÒ»¸öÎÊÌ⣺ÔÚËæ»úµÄżȻÇé¿öÏ£¬ÔÚËûÃǵIJֿâÀï»á³öÏÖÁ½¸ö¾ßÓÐÏàͬ SHA-1 ÖµµÄ¶ÔÏó¡£ÄÇ»áÔõôÑùÄØ£¿

Èç¹ûÄãÕæµÄÏò²Ö¿âÀïÌá½»ÁËÒ»¸ö¸ú֮ǰµÄij¸ö¶ÔÏó¾ßÓÐÏàͬ SHA-1 ÖµµÄ¶ÔÏó£¬Git ½«»á·¢ÏÖ֮ǰµÄÄǸö¶ÔÏóÒѾ­´æÔÚÔÚ Git Êý¾Ý¿âÖУ¬²¢ÈÏΪËüÒѾ­±»Ð´ÈëÁË¡£Èç¹ûʲôʱºòÄãÏëÔٴμì³öÄǸö¶ÔÏóʱ£¬Äã»á×ÜÊǵõ½ÏÈǰµÄÄǸö¶ÔÏóµÄÊý¾Ý¡£

²»¹ý£¬ÄãÓ¦¸ÃÁ˽⵽£¬ÕâÖÖÇé¿ö·¢ÉúµÄ¸ÅÂÊÊǶàô΢С¡£SHA-1 ÕªÒª³¤¶ÈÊÇ 20 ×Ö½Ú£¬Ò²¾ÍÊÇ 160 λ¡£ÎªÁ˱£Ö¤ÓÐ 50% µÄ¸ÅÂʳöÏÖÒ»´Î³åÍ»£¬ÐèÒª 2^80 ¸öËæ»ú¹þÏ£µÄ¶ÔÏ󣨼ÆËã³åÍ»»úÂʵĹ«Ê½ÊÇp = (n(n-1)/2) * (1/2^160))¡£2^80 ÊÇ 1.2 x 10^24£¬Ò²¾ÍÊÇÒ»ÒÚÒÚÒÚ£¬ÄÇÊǵØÇòÉÏɳÁ£×ÜÊýµÄ 1200 ±¶¡£

ÏÖÔÚ¾ÙÀý˵һÏÂÔõÑù²ÅÄܲúÉúÒ»´Î SHA-1 ³åÍ»¡£Èç¹ûµØÇòÉÏ 65 ÒÚµÄÈËÀà¶¼ÔÚ±à³Ì£¬Ã¿ÈËÿÃë¶¼ÔÚ²úÉúµÈ¼ÛÓÚÕû¸ö Linux ÄÚºËÀúÊ·£¨Ò»°ÙÍò¸ö Git ¶ÔÏ󣩵ĴúÂ룬²¢½«Ö®Ìá½»µ½Ò»¸ö¾Þ´óµÄ Git ²Ö¿âÀïÃæ£¬Äǽ«»¨·Ñ 5 ÄêµÄʱ¼ä²Å»á²úÉú×ã¹»µÄ¶ÔÏó£¬Ê¹ÆäÓµÓÐ 50% µÄ¸ÅÂʲúÉúÒ»´Î SHA-1 ¶ÔÏó³åÍ»¡£ÕâÒª±ÈÄã±à³ÌÍŶӵijÉԱͬһ¸öÍíÉÏÔÚ»¥²»Ïà¸ÉµÄÒâÍâÖб»ÀÇÏ®»÷²¢É±ËÀµÄ»úÂÊ»¹ÒªÐ¡¡£

·ÖÖ§ÒýÓÃ

Ö¸Ã÷Ò»´ÎÌá½»µÄ×îÖ±½ÓµÄ·½·¨ÒªÇóÓÐÒ»¸öÖ¸ÏòËüµÄ·ÖÖ§ÒýÓá£ÕâÑù£¬Äã¾Í¿ÉÒÔÔÚÈκÎÐèÒªÒ»¸öÌá½»¶ÔÏó»òÕß SHA-1 ÖµµÄ Git ÃüÁîÖÐʹÓø÷ÖÖ§Ãû³ÆÁË¡£Èç¹ûÄãÏëÒªÏÔʾһ¸ö·ÖÖ§µÄ×îºóÒ»´ÎÌá½»µÄ¶ÔÏó£¬ÀýÈç¼ÙÉètopic1 ·ÖÖ§Ö¸Ïò ca82a6d£¬ÄÇôÏÂÃæµÄÃüÁîÊǵȼ۵ģº

$ git show ca82a6dff817ec66f44342007202690a93763949 $ git show topic1

Èç¹ûÄãÏëÖªµÀij¸ö·ÖÖ§Ö¸ÏòÄĸöÌØ¶¨µÄ SHA£¬»òÕßÏë¿´ÈκÎÒ»¸öÀý×ÓÖб»¼òдµÄ SHA-1£¬Äã¿ÉÒÔʹÓÃÒ»¸ö½Ð×ö rev-parse µÄ Git ̽²â¹¤¾ß¡£ÔÚµÚ 9 ÕÂÄã¿ÉÒÔ¿´µ½¹ØÓÚ̽²â¹¤¾ßµÄ¸ü¶àÐÅÏ¢£»¼òµ¥À´Ëµ£¬rev-parse ÊÇΪÁ˵ײã²Ù×÷¶ø²»ÊÇÈÕ³£²Ù×÷Éè¼ÆµÄ¡£²»¹ý£¬ÓÐʱÄãÏë¿´ Git ÏÖÔÚµ½µ×´¦ÓÚʲô״̬ʱ£¬Ëü¿ÉÄÜ»áºÜÓÐÓá£ÕâÀïÄã¿ÉÒÔ¶ÔÄãµÄ·ÖÖ§ÔËÖ´ÐÐrev-parse¡£

$ git rev-parse topic1 ca82a6dff817ec66f44342007202690a93763949

ÒýÓÃÈÕÖ¾ÀïµÄ¼ò³Æ

ÔÚÄ㹤×÷µÄͬʱ£¬Git ÔÚºǫ́µÄ¹¤×÷Ö®Ò»¾ÍÊDZ£´æÒ»·ÝÒýÓÃÈÕÖ¾¡ª¡ªÒ»·Ý¼Ç¼×î½ü¼¸¸öÔÂÄãµÄ HEAD ºÍ·ÖÖ§ÒýÓõÄÈÕÖ¾¡£

Äã¿ÉÒÔʹÓà git reflog À´²é¿´ÒýÓÃÈÕÖ¾£º

$ git reflog 734713b... HEAD@{0}: commit: fixed refs handling, added gc auto, 
updated d921970... HEAD@{1}: merge phedders/rdo

ÿ´ÎÄãµÄ·ÖÖ§¶¥¶ËÒòΪijЩԭÒò±»ÐÞ¸Äʱ£¬Git ¾Í»áΪÄ㽫ÐÅÏ¢±£´æÔÚÕâ¸öÁÙʱÀúÊ·¼Ç¼ÀïÃæ¡£ÄãÒ²¿ÉÒÔʹÓÃÕâ·ÝÊý¾ÝÀ´Ö¸Ã÷¸üÔçµÄ·ÖÖ§¡£Èç¹ûÄãÏë²é¿´²Ö¿âÖÐ HEAD ÔÚÎå´ÎǰµÄÖµ£¬Äã¿ÉÒÔʹÓÃÒýÓÃÈÕÖ¾µÄÊä³öÖеÄ@{n} ÒýÓãº

$ git show HEAD@{5}

ÄãÒ²¿ÉÒÔʹÓÃÕâ¸öÓï·¨À´²é¿´Ò»¶¨Ê±¼äǰ·ÖÖ§Ö¸ÏòÄÄÀï¡£ÀýÈ磬Ïë¿´ÄãµÄ master ·ÖÖ§×òÌìÔÚÄÄ£¬Äã¿ÉÒÔÊäÈë

$ git show master@{yesterday}

Ëü¾Í»áÏÔʾ×òÌì·ÖÖ§µÄ¶¥¶ËÔÚÄÄ¡£ÕâÏî¼¼ÊõÖ»¶Ô»¹ÔÚÄãÒýÓÃÈÕÖ¾ÀïµÄÊý¾ÝÓÐÓã¬ËùÒÔ²»ÄÜÓÃÀ´²é¿´±È¼¸¸öÔÂǰ»¹ÔçµÄÌá½»¡£

ÏëÒª¿´ÀàËÆÓÚ git log Êä³ö¸ñʽµÄÒýÓÃÈÕÖ¾ÐÅÏ¢£¬Äã¿ÉÒÔÔËÐÐ git log -g£º

$ git log -g master commit 734713bc047d87bf7eac9674765ae793478c50d3 Reflog:
 master@{0} (Scott Chacon <schacon@gmail.com>) Re

ÐèҪעÒâµÄÊÇ£¬ÈÕÖ¾ÒýÓÃÐÅÏ¢Ö»´æÔÚÓÚ±¾µØ¡ª¡ªÕâÊÇÒ»¸öÄãÔÚ²Ö¿âÀï×ö¹ýʲôµÄÈÕÖ¾¡£ÆäËûÈ˵IJֿ⿽±´ÀïµÄÒýÓúÍÄãµÄÏàͬ£»¶øÄãпˡһ¸ö²Ö¿âµÄʱºò£¬ÒýÓÃÈÕÖ¾Êǿյģ¬ÒòΪÄãÔÚ²Ö¿âÀﻹûÓвÙ×÷¡£Ö»ÓÐÄã¿Ë¡ÁËÒ»¸öÏîÄ¿ÖÁÉÙÁ½¸öÔ£¬git show HEAD@{2.months.ago} ²Å»áÓÐÓ᪡ªÈç¹ûÄãÊÇÎå·ÖÖÓǰ¿Ë¡µÄ²Ö¿â£¬½«²»»áÓнá¹û·µ»Ø¡£

׿ÏÈÒýÓÃ

ÁíÒ»ÖÖÖ¸Ã÷ij´ÎÌá½»µÄ³£Ó÷½·¨ÊÇͨ¹ýËüµÄ׿ÏÈ¡£Èç¹ûÄãÔÚÒýÓÃ×îºó¼ÓÉÏÒ»¸ö ^£¬Git ½«ÆäÀí½âΪ´Ë´ÎÌá½»µÄ¸¸Ìá½»¡£ ¼ÙÉèÄãµÄ¹¤³ÌÀúÊ·ÊÇÕâÑùµÄ£º

$ git log --pretty=format:'%h %s' --graph * 734713b fixed refs handling, added gc auto, updated tests * d921970 Merge commit

ÄÇô£¬Ïë¿´ÉÏÒ»´ÎÌá½»£¬Äã¿ÉÒÔʹÓà HEAD^£¬Òâ˼ÊÇ¡°HEAD µÄ¸¸Ìá½»¡±£º

$ git show HEAD^ commit d921970aadf03b3cf0e71becdaab3147ba71cdef Merge: 
1c002dd... 35cfb2b... Author: Scott Chacon <schacon@

ÄãÒ²¿ÉÒÔÔÚ ^ ºóÌí¼ÓÒ»¸öÊý×Ö¡ª¡ªÀýÈ磬d921970^2 Òâ˼ÊÇ¡°d921970 µÄµÚ¶þ¸¸Ìá½»¡±¡£ÕâÖÖÓï·¨Ö»Ôںϲ¢ÌύʱÓÐÓã¬ÒòΪºÏ²¢Ìá½»¿ÉÄÜÓжà¸ö¸¸Ìá½»¡£µÚÒ»¸¸Ìá½»ÊÇÄãºÏ²¢Ê±ËùÔÚ·ÖÖ§£¬¶øµÚ¶þ¸¸Ìá½»ÊÇÄãËùºÏ²¢µÄ·ÖÖ§£º

$ git show d921970^ commit 1c002dd4b536e7479fe34593e72e6c6c1819e53b Author:
 Scott Chacon <schacon@gmail.com> Date: Thu Dec 1

ÁíÍâÒ»¸öÖ¸Ã÷׿ÏÈÌá½»µÄ·½·¨ÊÇ ~¡£ÕâÒ²ÊÇÖ¸ÏòµÚÒ»¸¸Ìá½»£¬ËùÒÔ HEAD~ ºÍ HEAD^ Êǵȼ۵ġ£µ±ÄãÖ¸¶¨Êý×ÖµÄʱºò¾ÍÃ÷ÏÔ²»Ò»ÑùÁË¡£HEAD~2 ÊÇÖ¸¡°µÚÒ»¸¸Ìá½»µÄµÚÒ»¸¸Ìá½»¡±£¬Ò²¾ÍÊÇ¡°×游Ìá½»¡±¡ª¡ªËü»á¸ù¾ÝÄãÖ¸¶¨µÄ´ÎÊý¼ìË÷µÚÒ»¸¸Ìá½»¡£ÀýÈ磬ÔÚÉÏÃæÁгöµÄÀúÊ·¼Ç¼ÀïÃæ£¬HEAD~3 »áÊÇ

$ git show HEAD~3 commit 1c3618887afb5fbcbea25b7c013f4e2114448b8d Author: 
Tom Preston-Werner <tom@mojombo.com> Date: Fri Nov 

Ò²¿ÉÒÔд³É HEAD^^^£¬Í¬ÑùÊǵÚÒ»¸¸Ìá½»µÄµÚÒ»¸¸Ìá½»µÄµÚÒ»¸¸Ìá½»£º

$ git show HEAD^^^ commit 1c3618887afb5fbcbea25b7c013f4e2114448b8d Author: 
Tom Preston-Werner <tom@mojombo.com> Date: Fri Nov

ÄãÒ²¿ÉÒÔ»ìºÏʹÓÃÕâЩÓï·¨¡ª¡ªÄã¿ÉÒÔͨ¹ý HEAD~3^2 Ö¸Ã÷ÏÈǰÒýÓõĵڶþ¸¸Ìá½»£¨¼ÙÉèËüÊÇÒ»¸öºÏ²¢Ìá½»£©¡£

Ìá½»·¶Î§

ÏÖÔÚÄãÒѾ­¿ÉÒÔÖ¸Ã÷µ¥´ÎµÄÌá½»£¬ÈÃÎÒÃÇÀ´¿´¿´ÔõÑùÖ¸Ã÷Ò»¶¨·¶Î§µÄÌá½»¡£ÕâÔÚÄã¹ÜÀí·ÖÖ§µÄʱºòÓÈÏÔÖØÒª¡ª¡ªÈç¹ûÄãÓкܶà·ÖÖ§£¬Äã¿ÉÒÔÖ¸Ã÷·¶Î§À´È¦¶¨Ò»Ð©ÎÊÌâµÄ´ð°¸£¬±ÈÈ磺¡°Õâ¸ö·ÖÖ§ÉÏÎÒÓÐÄÄЩ¹¤×÷»¹Ã»ºÏ²¢µ½Ö÷·ÖÖ§µÄ£¿¡±

Ë«µã

×î³£ÓõÄÖ¸Ã÷·¶Î§µÄ·½·¨ÊÇË«µãµÄÓï·¨¡£ÕâÖÖÓï·¨Ö÷ÒªÊÇÈà Git Çø·Ö³ö¿É´ÓÒ»¸ö·ÖÖ§ÖлñµÃ¶ø²»ÄÜ´ÓÁíÒ»¸ö·ÖÖ§ÖлñµÃµÄÌá½»¡£ÀýÈ磬¼ÙÉèÄãÓÐÀàËÆÓÚͼ 6-1 µÄÌá½»ÀúÊ·¡£

ͼ 6-1. ·¶Î§Ñ¡ÔñµÄÌá½»ÀúʷʵÀý

ÄãÏëÒª²é¿´ÄãµÄÊÔÑé·ÖÖ§ÉÏÄÄЩûÓб»Ìá½»µ½Ö÷·ÖÖ§£¬ÄÇôÄã¾Í¿ÉÒÔʹÓà master..experiment À´Èà Git ÏÔʾÕâЩÌá½»µÄÈÕÖ¾¡ª¡ªÕâ¾ä»°µÄÒâ˼ÊÇ¡°ËùÓпɴÓexperiment·ÖÖ§ÖлñµÃ¶ø²»ÄÜ´Ómaster·ÖÖ§ÖлñµÃµÄÌá½»¡±¡£ÎªÁËʹÀý×Ó¼òµ¥Ã÷ÁË£¬ÎÒʹÓÃÁËͼ±êÖÐÌá½»¶ÔÏóµÄ×ÖĸÀ´´úÌæÕæÊµÈÕÖ¾µÄÊä³ö£¬ËùÒÔ»áÏÔʾ£º

$ git log master..experiment D C

ÁíÒ»·½Ã棬Èç¹ûÄãÏë¿´Ïà·´µÄ¡ª¡ªËùÓÐÔÚ master ¶ø²»ÔÚ experiment ÖеķÖÖ§¡ª¡ªÄã¿ÉÒÔ½»»»·ÖÖ§µÄÃû×Ö¡£experiment..master ÏÔʾËùÓпÉÔÚmaster »ñµÃ¶øÔÚ experiment Öв»ÄܵÄÌá½»£º

$ git log experiment..master F E

ÕâÔÚÄãÏë±£³Ö experiment ·ÖÖ§×îкÍÔ¤ÀÀÄ㽫ºÏ²¢µÄÌá½»µÄʱºòÌØ±ðÓÐÓá£Õâ¸öÓï·¨µÄÁíÒ»ÖÖ³£¼ûÓÃ;ÊDz鿴Ä㽫°ÑÊ²Ã´ÍÆË͵½Ô¶³Ì£º

$ git log origin/master..HEAD

ÕâÌõÃüÁîÏÔʾÈκÎÔÚÄ㵱ǰ·ÖÖ§É϶ø²»ÔÚÔ¶³Ìorigin ÉϵÄÌá½»¡£Èç¹ûÄãÔËÐÐ git push ²¢ÇÒµÄÄãµÄµ±Ç°·ÖÖ§ÕýÔÚ¸ú×Ùorigin/master£¬±»git log origin/master..HEAD ÁгöµÄÌá½»¾ÍÊǽ«±»´«Êäµ½·þÎñÆ÷ÉϵÄÌá½»¡£ ÄãÒ²¿ÉÒÔÁô¿ÕÓï·¨ÖеÄÒ»±ßÀ´Èà Git À´¼Ù¶¨ËüÊÇ HEAD¡£ÀýÈ磬ÊäÈëgit log origin/master.. ½«µÃµ½ºÍÉÏÃæµÄÀý×ÓÒ»ÑùµÄ½á¹û¡ª¡ª Git ʹÓà HEAD À´´úÌæ²»´æÔÚµÄÒ»±ß¡£

¶àµã

Ë«µãÓï·¨¾ÍÏñËÙ¼ÇÒ»ÑùÓÐÓ㻵«ÊÇÄãÒ²Ðí»áÏëÕë¶ÔÁ½¸öÒÔÉϵķÖÖ§À´Ö¸Ã÷ÐÞ¶©°æ±¾£¬±ÈÈç²é¿´ÄÄЩÌá½»±»°üº¬ÔÚijЩ·ÖÖ§ÖеÄÒ»¸ö£¬µ«ÊDz»ÔÚÄ㵱ǰµÄ·ÖÖ§ÉÏ¡£GitÔÊÐíÄãÔÚÒýÓÃǰʹÓÃ^×Ö·û»òÕß--notÖ¸Ã÷Ä㲻ϣÍûÌá½»±»°üº¬ÆäÖеķÖÖ§¡£Òò´ËÏÂÃæÈý¸öÃüÁîÊǵÈͬµÄ£º

$ git log refA..refB $ git log ^refA refB $ git log refB --not refA

ÕâÑùºÜºÃ£¬ÒòΪËüÔÊÐíÄãÔÚ²éѯÖÐÖ¸¶¨¶àÓÚÁ½¸öµÄÒýÓ㬶øÕâÊÇË«µãÓï·¨Ëù×ö²»µ½µÄ¡£ÀýÈ磬Èç¹ûÄãÏë²éÕÒËùÓдÓrefA»òrefB°üº¬µÄµ«ÊDz»±»refC°üº¬µÄÌá½»£¬Äã¿ÉÒÔÊäÈëÏÂÃæÖеÄÒ»¸ö

$ git log refA refB ^refC $ git log refA refB --not refC

Õ⽨Á¢ÁËÒ»¸ö·Ç³£Ç¿´óµÄÐÞ¶©°æ±¾²éѯϵͳ£¬Ó¦¸Ã¿ÉÒÔ°ïÖúÄã½â¾ö·ÖÖ§Àï°üº¬ÁËʲôÕâ¸öÎÊÌâ¡£

Èýµã

×îºóÒ»ÖÖÖ÷ÒªµÄ·¶Î§Ñ¡ÔñÓï·¨ÊÇÈýµãÓï·¨£¬Õâ¸ö¿ÉÒÔÖ¸¶¨±»Á½¸öÒýÓÃÖеÄÒ»¸ö°üº¬µ«ÓÖ²»±»Á½Õßͬʱ°üº¬µÄ·ÖÖ§¡£»Ø¹ýÍ·À´¿´Ò»ÏÂͼ6-1ÀïËùÁеÄÌá½»ÀúÊ·µÄÀý×Ó¡£ Èç¹ûÄãÏë²é¿´master»òÕßexperimentÖаüº¬µÄµ«²»ÊÇÁ½Õß¹²ÓеÄÒýÓã¬Äã¿ÉÒÔÔËÐÐ

$ git log master...experiment F E D C

Õâ¸öÔٴθø³öÄãÆÕͨµÄlogÊä³öµ«ÊÇÖ»ÏÔʾÄÇËÄ´ÎÌá½»µÄÐÅÏ¢£¬°´ÕÕ´«Í³µÄÌá½»ÈÕÆÚÅÅÁС£

ÕâÖÖÇéÐÎÏ£¬logÃüÁîµÄÒ»¸ö³£ÓòÎÊýÊÇ--left-right£¬Ëü»áÏÔʾÿ¸öÌá½»µ½µ×´¦ÓÚÄÄÒ»²àµÄ·ÖÖ§¡£ÕâʹµÃÊý¾Ý¸ü¼ÓÓÐÓá£

$ git log --left-right master...experiment < F < E > D > C

ÓÐÁËÒÔÉϹ¤¾ß£¬ÈÃGitÖªµÀÄãÒª²ì¿´ÄÄЩÌá½»¾ÍÈÝÒ׵öàÁË¡£

6.2 ½»»¥Ê½ÔÝ´æ

GitÌṩÁ˺ܶà½Å±¾À´¸¨ÖúijЩÃüÁîÐÐÈÎÎñ¡£ÕâÀÄ㽫¿´µ½Ò»Ð©½»»¥Ê½ÃüÁËüÃǰïÖúÄã·½±ãµØ¹¹½¨Ö»°üº¬Ìض¨×éºÏºÍ²¿·ÖÎļþµÄÌá½»¡£ÔÚÄãÐÞ¸ÄÁËÒ»´óÅúÎļþÈ»ºó¾ö¶¨½«ÕâЩ±ä¸ü·Ö²¼ÔÚ¼¸¸ö¸÷ÓвàÖØµÄÌá½»¶ø²»Êǵ¥¸öÓÖ´óÓÖÂÒµÄÌύʱ£¬ÕâЩ¹¤¾ß·Ç³£ÓÐÓá£ÓÃÕâÖÖ·½·¨£¬Äã¿ÉÒÔÈ·±£ÄãµÄÌá½»ÔÚÂß¼­ÉÏ»®·ÖΪÏàÓ¦µÄ±ä¸ü¼¯£¬ÒÔ±ãÓÚ¹©ºÍÄãÒ»Æð¹¤×÷µÄ¿ª·¢ÕßÉóÔÄ¡£Èç¹ûÄãÔËÐÐgit addʱ¼ÓÉÏ-i»òÕß--interactiveÑ¡ÏGit¾Í½øÈëÁËÒ»¸ö½»»¥Ê½µÄshellģʽ£¬ÏÔʾһЩÀàËÆÓÚÏÂÃæµÄÐÅÏ¢£º

$ git add -i staged unstaged path 1: unchanged +0/-1 TODO 2: unchanged +1/-1 index.html 3: unchanged +5/-1 lib/simplegit.rb

Äã»á¿´µ½Õâ¸öÃüÁîÒÔÒ»¸öÍêÈ«²»Í¬µÄÊÓͼÏÔʾÁËÄãµÄÔÝ´æÇø¡ª¡ªÖ÷ÒªÊÇÄãͨ¹ýgit statusµÃµ½µÄÄÇЩÐÅÏ¢µ«ÊÇÉÔ΢¼ò½àµ«ÐÅÏ¢¸ü¼Ó·á¸»Ò»Ð©¡£ËüÔÚ×ó²àÁгöÁËÄãÔÝ´æµÄ±ä¸ü£¬ÔÚÓÒ²àÁгöÁËδ±»ÔÝ´æµÄ±ä¸ü¡£

ÔÚÕâÖ®ºóÊÇÒ»¸öÃüÁîÇø¡£ÕâÀïÄã¿ÉÒÔ×öºÜ¶àÊÂÇ飬°üÀ¨ÔÝ´æÎļþ£¬³·»ØÎļþ£¬Ôݴ沿·ÖÎļþ£¬¼ÓÈëδ±»×·×ÙµÄÎļþ£¬²é¿´ÔÝ´æÎļþµÄ²î±ð¡£

ÔÝ´æºÍ³·»ØÎļþ

Èç¹ûÄãÔÚWhat now>µÄÌáʾºóÊäÈë2»òÕßu£¬Õâ¸ö½Å±¾»áÌáʾÄãÄÇЩÎļþÄãÏëÒªÔݴ棺

What now> 2 staged unstaged path 1: unchanged +0/-1 TODO 2: 
unchanged +1/-1 index.html 3: unchanged +5/-1 lib/simplegit.rb U

Èç¹ûÏëÔÝ´æTODOºÍindex.html£¬Äã¿ÉÒÔÊäÈëÏàÓ¦µÄ±àºÅ£º

Update>> 1,2 staged unstaged path * 1: unchanged +0/-1 TODO * 2: 
unchanged +1/-1 index.html 3: unchanged +5/-1 lib/simplegit.

ÿ¸öÎļþÅԱߵÄ*±íʾѡÖеÄÎļþ½«±»ÔÝ´æ¡£Èç¹ûÄãÔÚupdate>>ÌáʾºóÖ±½ÓÇÃÈë»Ø³µ£¬Git»áÌæÄã°ÑËùÓÐÑ¡ÖеÄÄÚÈÝÔݴ棺

Update>> updated 2 paths *** Commands *** 1: status 2: update 3: 
revert 4: add untracked 5: patch 6: diff 7: quit 8: help Wha

ÏÖÔÚÄã¿ÉÒÔ¿´µ½TODOºÍindex.htmlÎļþ±»ÔÝ´æÁËͬʱsimplegit.rbÎļþÈÔȻδ±»ÔÝ´æ¡£Èç¹ûÕâʱÄãÏëÒª³·»ØTODOÎļþ£¬¾ÍʹÓÃ3»òÕßr£¨´ú±írevert£¬»Ö¸´£©Ñ¡Ï

*** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> 3 staged unstaged 

Ôٴβ鿴GitµÄ״̬£¬Äã»á¿´µ½ÄãÒѾ­³·»ØÁËTODOÎļþ

*** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> 1 staged unstaged

Òª²é¿´ÄãÔÝ´æÄÚÈݵIJîÒ죬Äã¿ÉÒÔʹÓÃ6»òÕßd£¨±íʾdiff£©ÃüÁî¡£Ëü»áÏÔʾÄãÔÝ´æÎļþµÄÁÐ±í£¬Äã¿ÉÒÔÑ¡ÔñÆäÖеö£¬ÏÔʾÆä±»ÔÝ´æµÄ²îÒì¡£Õâ¸úÄãÔÚÃüÁîÐÐÏÂÖ¸¶¨git diff --cached·Ç³£ÏàËÆ£º

*** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> 6 staged unstaged p

ͨ¹ýÕâЩ»ù±¾ÃüÁÄã¿ÉÒÔʹÓý»»¥Ê½Ôö¼Óģʽ¸ü¼Ó·½±ãµØ´¦ÀíÔÝ´æÇø¡£

ÔÝ´æ²¹¶¡

Ö»ÈÃGitÔÝ´æÎļþµÄijЩ²¿·Ö¶øºöÂÔÆäËûÒ²ÊÇÓпÉÄܵġ£ÀýÈ磬Äã¶Ôsimplegit.rbÎļþ×÷ÁËÁ½´¦Ð޸ĵ«ÊÇÖ»ÏëÔÝ´æÆäÖÐÒ»¸ö¶øºöÂÔÁíÒ»¸ö£¬ÔÚGitÖÐʵÏÖÕâÒ»µã·Ç³£ÈÝÒס£ÔÚ½»»¥Ê½µÄÌáʾ·ûÏ£¬ÊäÈë5»òÕßp£¨±íʾpatch£¬²¹¶¡£©¡£Git»áѯÎÊÄÄЩÎļþÄãÏ£Íû²¿·ÖÔݴ棻Ȼºó¶ÔÓÚ±»Ñ¡ÖÐÎļþµÄÿһ½Ú£¬Ëû»áÖð¸öÏÔʾÎļþµÄ²îÒìÇø¿é²¢Ñ¯ÎÊÄãÊÇ·ñÏ£ÍûÔÝ´æËûÃÇ£º

diff --git a/lib/simplegit.rb b/lib/simplegit.rb index dd5ecc4..57399e0 100644 --- a/lib/simplegit.rb +++ b/lib/simplegit.rb @

´Ë´¦ÄãÓкܶàÑ¡Ôñ¡£ÊäÈë?¿ÉÒÔÏÔʾÁÐ±í£º

Stage this hunk [y,n,a,d,/,j,J,g,e,?]? ? y - stage this hunk n - do not stage this hunk a - stage this and all the remaining h

Èç¹ûÄãÏëÔÝ´æ¸÷¸öÇø¿é£¬Í¨³£Äã»áÊäÈëy»òÕßn£¬µ«ÊÇÔÝ´æÌض¨ÎļþÀïµÄÈ«²¿Çø¿é»òÕßÔÝÊ±Ìø¹ý¶ÔÒ»¸öÇø¿éµÄ´¦ÀíͬÑùÒ²ºÜÓÐÓá£Èç¹ûÄãÔÝ´æÁËÎļþµÄÒ»¸ö²¿·Ö¶ø±£ÁôÁíÍâÒ»¸ö²¿·Ö²»±»Ôݴ棬ÄãµÄ״̬Êä³ö¿´ÆðÀ´»áÊÇÕâÑù£º

What now> 1 staged unstaged path 1: unchanged +0/-1 TODO 2: +1/-1 nothing index.html 3: +1/-1 +4/-0 lib/simplegit.rb

simplegit.rbµÄ״̬·Ç³£ÓÐÒâ˼¡£ËüÏÔʾÓм¸Ðб»ÔÝ´æÁË£¬Óм¸ÐÐûÓС£Ä㲿·ÖµØÔÝ´æÁËÕâ¸öÎļþ¡£ÔÚÕâʱ£¬Äã¿ÉÒÔÍ˳ö½»»¥Ê½½Å±¾È»ºóÔËÐÐgit commitÀ´Ìá½»²¿·ÖÔÝ´æµÄÎļþ¡£

×îºóÄãÒ²¿ÉÒÔ²»Í¨¹ý½»»¥Ê½Ôö¼ÓµÄģʽÀ´ÊµÏÖ²¿·ÖÎļþÔݴ桪¡ªÄã¿ÉÒÔÔÚÃüÁîÐÐÏÂͨ¹ýgit add -p»òÕßgit add --patchÀ´Æô¶¯Í¬ÑùµÄ½Å±¾¡£

6.3 ´¢²Ø£¨Stashing£©

¾­³£ÓÐÕâÑùµÄÊÂÇé·¢Éú£¬µ±ÄãÕýÔÚ½øÐÐÏîÄ¿ÖÐijһ²¿·ÖµÄ¹¤×÷£¬ÀïÃæµÄ¶«Î÷´¦ÓÚÒ»¸ö±È½ÏÔÓÂÒµÄ״̬£¬¶øÄãÏëתµ½ÆäËû·ÖÖ§ÉϽøÐÐһЩ¹¤×÷¡£ÎÊÌâÊÇ£¬Äã²»ÏëÌá½»½øÐÐÁËÒ»°ëµÄ¹¤×÷£¬·ñÔòÒÔºóÄãÎÞ·¨»Øµ½Õâ¸ö¹¤×÷µã¡£½â¾öÕâ¸öÎÊÌâµÄ°ì·¨¾ÍÊÇgit stashÃüÁî¡£

¡°¡®´¢²Ø¡±¡°¿ÉÒÔ»ñÈ¡Ä㹤×÷Ŀ¼µÄÖмä״̬¡ª¡ªÒ²¾ÍÊÇÄãÐ޸ĹýµÄ±»×·×ÙµÄÎļþºÍÔÝ´æµÄ±ä¸ü¡ª¡ª²¢½«Ëü±£´æµ½Ò»¸öδÍê½á±ä¸üµÄ¶ÑÕ»ÖУ¬ËæÊ±¿ÉÒÔÖØÐÂÓ¦Óá£

´¢²ØÄãµÄ¹¤×÷

ΪÁËÑÝʾÕâÒ»¹¦ÄÜ£¬Äã¿ÉÒÔ½øÈëÄãµÄÏîÄ¿£¬ÔÚһЩÎļþÉϽøÐй¤×÷£¬ÓпÉÄÜ»¹ÔÝ´æÆäÖÐÒ»¸ö±ä¸ü¡£Èç¹ûÄãÔËÐÐ git status£¬Äã¿ÉÒÔ¿´µ½ÄãµÄÖмä״̬£º

$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: index

ÏÖÔÚÄãÏëÇл»·ÖÖ§£¬µ«ÊÇÄ㻹²»ÏëÌá½»ÄãÕýÔÚ½øÐÐÖеŤ×÷£»ËùÒÔÄã´¢²ØÕâЩ±ä¸ü¡£ÎªÁËÍù¶ÑÕ»ÍÆËÍÒ»¸öеĴ¢²Ø£¬Ö»ÒªÔËÐÐ git stash£º

$ git stash Saved working directory and index state \ "WIP on master: 049d078 added the index file" HEAD is now at 049d078 a

ÄãµÄ¹¤×÷Ŀ¼¾Í¸É¾»ÁË£º

$ git status # On branch master nothing to commit (working directory clean)

Õâʱ£¬Äã¿ÉÒÔ·½±ãµØÇл»µ½ÆäËû·ÖÖ§¹¤×÷£»ÄãµÄ±ä¸ü¶¼±£´æÔÚÕ»ÉÏ¡£Òª²é¿´ÏÖÓеĴ¢²Ø£¬Äã¿ÉÒÔʹÓà git stash list£º

$ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c264051... Revert "added f

ÔÚÕâ¸ö°¸ÀýÖУ¬Ö®Ç°ÒѾ­½øÐÐÁËÁ½´Î´¢²Ø£¬ËùÒÔÄã¿ÉÒÔ·ÃÎʵ½Èý¸ö²»Í¬µÄ´¢²Ø¡£Äã¿ÉÒÔÖØÐÂÓ¦ÓÃÄã¸Õ¸ÕʵʩµÄ´¢²Ø£¬Ëù²ÉÓõÄÃüÁî¾ÍÊÇ֮ǰÔÚԭʼµÄ stash ÃüÁîµÄ°ïÖúÊä³öÀïÌáʾµÄ£ºgit stash apply¡£Èç¹ûÄãÏëÓ¦ÓøüÔçµÄ´¢²Ø£¬Äã¿ÉÒÔͨ¹ýÃû×ÖÖ¸¶¨Ëü£¬ÏñÕâÑù£ºgit stash apply stash@{2}¡£Èç¹ûÄã²»Ö¸Ã÷£¬Git ĬÈÏʹÓÃ×î½üµÄ´¢²Ø²¢³¢ÊÔÓ¦ÓÃËü£º

$ git stash apply # On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) #

Äã¿ÉÒÔ¿´µ½ Git ÖØÐÂÐÞ¸ÄÁËÄãËù´¢²ØµÄÄÇЩµ±Ê±ÉÐδÌá½»µÄÎļþ¡£ÔÚÕâ¸ö°¸ÀýÀÄã³¢ÊÔÓ¦Óô¢²ØµÄ¹¤×÷Ŀ¼ÊǸɾ»µÄ£¬²¢ÇÒÊôÓÚͬһ·ÖÖ§£»µ«ÊÇÒ»¸ö¸É¾»µÄ¹¤×÷Ŀ¼ºÍÓ¦Óõ½ÏàͬµÄ·ÖÖ§Éϲ¢²»ÊÇÓ¦Óô¢²ØµÄ±ØÒªÌõ¼þ¡£Äã¿ÉÒÔÔÚÆäÖÐÒ»¸ö·ÖÖ§Éϱ£ÁôÒ»·Ý´¢²Ø£¬ËæºóÇл»µ½ÁíÍâÒ»¸ö·ÖÖ§£¬ÔÙÖØÐÂÓ¦ÓÃÕâЩ±ä¸ü¡£ÔÚ¹¤×÷Ŀ¼Àï°üº¬ÒÑÐ޸ĺÍδÌá½»µÄÎļþʱ£¬ÄãÒ²¿ÉÒÔÓ¦Óô¢²Ø¡ª¡ªGit »á¸ø³ö¹é²¢³åÍ»Èç¹ûÓÐÈκαä¸üÎÞ·¨¸É¾»µØ±»Ó¦Óá£

¶ÔÎļþµÄ±ä¸ü±»ÖØÐÂÓ¦Ó㬵«ÊDZ»ÔÝ´æµÄÎļþûÓÐÖØÐ±»ÔÝ´æ¡£ÏëÄÇÑùµÄ»°£¬Äã±ØÐëÔÚÔËÐÐ git stash apply ÃüÁîʱ´øÉÏÒ»¸ö --index µÄÑ¡ÏîÀ´¸æËßÃüÁîÖØÐÂÓ¦Óñ»ÔÝ´æµÄ±ä¸ü¡£Èç¹ûÄãÊÇÕâô×öµÄ£¬ÄãÓ¦¸ÃÒѾ­»Øµ½ÄãÔ­À´µÄλÖãº

$ git stash apply --index # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # mod

apply Ñ¡ÏîÖ»³¢ÊÔÓ¦Óô¢²ØµÄ¹¤×÷¡ª¡ª´¢²ØµÄÄÚÈÝÈÔÈ»ÔÚÕ»ÉÏ¡£ÒªÒƳýËü£¬Äã¿ÉÒÔÔËÐÐ git stash drop£¬¼ÓÉÏÄãÏ£ÍûÒÆ³ýµÄ´¢²ØµÄÃû×Ö£º

$ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c264051... Revert "added f

ÄãÒ²¿ÉÒÔÔËÐÐ git stash pop À´ÖØÐÂÓ¦Óô¢²Ø£¬Í¬Ê±Á¢¿Ì½«Æä´Ó¶ÑÕ»ÖÐÒÆ×ß¡£

Un-applying a Stash

In some use case scenarios you might want to apply stashed changes, do some work, but then un-apply those changes that originally came form the stash. Git does not provide such astash unapply command, but it is possible to achieve the effect by simply retrieving the patch associated with a stash and applying it in reverse:

$ git stash show -p stash@{0} | git apply -R

Again, if you don¡¯t specify a stash, Git assumes the most recent stash:

$ git stash show -p | git apply -R

You may want to create an alias and effectively add a stash-unapply command to your git. For example:

$ git config --global alias.stash-unapply '!git stash show -p | git apply -R' $ git stash $ #... work work work $ git stash-

´Ó´¢²ØÖд´½¨·ÖÖ§

Èç¹ûÄã´¢²ØÁËһЩ¹¤×÷£¬ÔÝʱ²»È¥Àí»á£¬È»ºó¼ÌÐøÔÚÄã´¢²Ø¹¤×÷µÄ·ÖÖ§ÉϹ¤×÷£¬ÄãÔÚÖØÐÂÓ¦Óù¤×÷ʱ¿ÉÄÜ»áÅöµ½Ò»Ð©ÎÊÌâ¡£Èç¹û³¢ÊÔÓ¦Óõıä¸üÊÇÕë¶ÔÒ»¸öÄãÄÇÖ®ºóÐ޸ĹýµÄÎļþ£¬Äã»áÅöµ½Ò»¸ö¹é²¢³åÍ»²¢ÇÒ±ØÐëÈ¥»¯½âËü¡£Èç¹ûÄãÏëÓøü·½±ãµÄ·½·¨À´ÖØÐ¼ìÑéÄã´¢²ØµÄ±ä¸ü£¬Äã¿ÉÒÔÔËÐÐgit stash branch£¬Õâ»á´´½¨Ò»¸öеķÖÖ§£¬¼ì³öÄã´¢²Ø¹¤×÷ʱµÄËù´¦µÄÌá½»£¬ÖØÐÂÓ¦ÓÃÄãµÄ¹¤×÷£¬Èç¹û³É¹¦£¬½«»á¶ªÆú´¢²Ø¡£

$ git stash branch testchanges Switched to a new branch "testchanges" # On branch testchanges # Changes to be committed: # (

ÕâÊÇÒ»¸öºÜ°ôµÄ½Ý¾¶À´»Ö¸´´¢²ØµÄ¹¤×÷È»ºóÔÚеķÖÖ§ÉϼÌÐøµ±Ê±µÄ¹¤×÷¡£

   
2437 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

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

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

ÅäÖùÜÀíʵ¼ù
ÅäÖùÜÀí·½·¨¡¢¹¤¾ßÓëÓ¦ÓÃ
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
²úÆ··¢²¼¹ÜÀí
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]


Èí¼þÅäÖùÜÀíµÄÎÊÌ⡢ĿµÄ
Èí¼þÅäÖùÜÀí¹æ·¶
CQWeb 7.1ÐÔÄܲâÊÔÓëµ÷ÓÅÖ¸ÄÏ
ΪʲôÐèҪʹÓÃClearCase
ClearCaseÓëRTCµÄ¼¯³É
ÀûÓÃClearQuest ½øÐвâÊÔ¹ÜÀí


²úÆ··¢²¼¹ÜÀí
ÅäÖùÜÀí·½·¨¡¢Êµ¼ù¡¢¹¤¾ß
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
ʹÓÃCCÓëCQ½øÐÐÏîĿʵ¼ù
CVSÓëÅäÖùÜÀí
Subversion¹ÜÀíÔ±


ÅäÖùÜÀíʵ¼ù£¨´Ó×éÖ¯¼¶µ½ÏîÄ¿¼¶£©
ͨºÅÔº ÅäÖùÜÀí¹æ·¶ÓëÓ¦ÓÃ
ÅäÖùÜÀíÈÕ¹¹½¨¼°³ÖÐø¼¯³É
µ¤·ð˹ ClearCaseÓëÅäÖùÜÀí
ÖйúÒÆ¶¯ Èí¼þÅäÖùÜÀí
ÖйúÒøÐÐ Èí¼þÅäÖùÜÀí
Ìì½ò»ªÒíÀ¶Ìì¿Æ¼¼ ÅäÖùÜÀíÓëPvcs