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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
25¸ö Git ½ø½×¼¼ÇÉ
 
×÷ÕߣºAndy Jeffries À´Ô´£ºlinux.cn ·¢²¼ÓÚ 2015-6-4
  3230  次浏览      27
 

ÎÒÒѾ­Ê¹ÓÃgit²î²»¶à18¸öÔÂÁË£¬¾õµÃ×Ô¼º¶ÔËüÓ¦¸ÃÒѾ­·Ç³£Á˽⡣ȻºóÀ´×ÔGitHubµÄScott Chacon¹ýÀ´¸øLVS×öÅàѵ£¬¶øÎÒÔÚµÚÒ»ÌìÀï¾Íѧµ½Á˺ܶࡣ

×÷Ϊһ¸ö¶Ôgit¸Ð¾õÁ¼ºÃµÄÈË£¬ÎÒ¾õµÃ·ÖÏí´ÓÉçÇøÀïÕÆÎÕµÄһЩÓмÛÖµµÄÐÅÏ¢£¬Ò²ÐíÄܰïijÈ˽â¾öÎÊÌâ¶ø²»ÓÃ×öÌ«ÉîÈëÑо¿¡£

»ù±¾¼¼ÇÉ

1. °²×°ºóµÄµÚÒ»²½

ÔÚ°²×°ºÃgitºó£¬ÄãµÚÒ»¼þ¸Ã×öµÄÊÂÊÇÉèÖÃÄãµÄÃû×ֺ͵ç×ÓÓÊÏ䣬ÒòΪÿ´ÎÌá½»¶¼ÒªÓõ½ÕâЩÐÅÏ¢£º

$ git config --global user.name "Some One"
$ git config --global user.email "someone@gmail.com"

2. GitÊÇ»ùÓÚÖ¸ÕëµÄ

±£´æÔÚgitÀïµÄÒ»Çж¼ÊÇÎļþ¡£µ±Äã´´½¨Ò»¸öÌá½»µÄʱºò£¬»á½¨Á¢Ò»¸ö°üº¬ÄãµÄÌá½»ÐÅÏ¢ºÍÏà¹ØÊý¾Ý£¨Ãû×Ö£¬ÓʼþµØÖ·£¬ÈÕÆÚ/ʱ¼ä£¬Ç°Ò»¸öÌá½»£¬µÈµÈ£©µÄÎļþ£¬²¢°ÑËüÁ´½Óµ½Ò»¸öÊ÷ÎļþÖС£Õâ¸öÊ÷ÎļþÖаüº¬Á˶ÔÏó»òÆäËûÊ÷µÄÁÐ±í¡£ÕâÀïµÄÌáµ½µÄ¶ÔÏ󣨻ò¶þ½øÖÆ´ó¶ÔÏó£©ÊǺͱ¾´ÎÌá½»Ïà¹ØµÄʵ¼ÊÄÚÈÝ£¨ËüÒ²ÊÇÒ»¸öÎļþ£¬ÁíÍ⣬¾¡¹ÜÎļþÃû²¢Ã»Óаüº¬ÔÚ¶ÔÏóÀµ«ÊÇ´æ´¢ÔÚÊ÷ÖУ©¡£ËùÓÐÕâЩÎļþ¶¼Ê¹ÓöÔÏóµÄSHA-1¹þÏ£Öµ×÷ΪÎļþÃû¡£

ÓÃÕâÖÖ·½Ê½£¬·ÖÖ§ºÍ±êÇ©¾ÍÊǼòµ¥µÄÎļþ£¨»ù±¾ÉÏÊÇÕâÑù£©£¬°üº¬Ö¸Ïò¸ÃÌá½»µÄSHA-1¹þÏ£Öµ¡£Ê¹ÓÃÕâЩË÷Òý»á´øÀ´ÓÅÐãµÄÁé»îÐÔºÍËÙ¶È£¬±ÈÈç´´½¨Ò»¸öзÖÖ§¾ÍÊǼòµ¥µØÓ÷ÖÖ§Ãû×ÖºÍËù·Ö³öµÄÄǸöÌá½»µÄSHA-1Ë÷ÒýÀ´´´½¨Ò»¸öÎļþ¡£µ±È»£¬Äã²»ÐèÒª×Ô¼º×öÕâЩ£¬¶øÖ»ÒªÊ¹ÓÃGitÃüÁîÐй¤¾ß£¨»òÕßGUI£©£¬µ«ÊÇʵ¼ÊÉϾÍÊÇÕâô¼òµ¥¡£

ÄãÒ²ÐíÌý˵¹ý½ÐHEADµÄË÷Òý¡£ÕâÖ»ÊǼòµ¥µÄÒ»¸öÎļþ£¬°üº¬ÁËÄ㵱ǰָÏòµÄÄǸöÌá½»µÄSHA-1Ë÷ÒýÖµ¡£Èç¹ûÄãÕýÔÚ½â¾öÒ»´ÎºÏ²¢³åͻȻºó¿´µ½ÁËHEAD£¬Õâ²¢²»ÊÇÒ»¸öÌØ±ðµÄ·ÖÖ§»ò·ÖÖ§ÉϵÄÒ»¸ö±ØÐèµÄÌØÊâλÖã¬Ö»ÊDZêÃ÷Ä㵱ǰËùÔÚλÖá£

ËùÓеķÖÖ§Ö¸Õë¶¼±£´æÔÚ.git/refs/headsÀHEADÔÚ.git/HEADÀ¶ø±êÇ©±£´æÔÚ.git/refs/tagsÀï - ×Ô¼º¿ÉÒÔËæ±ã½øÈ¥¿´¿´¡£

3. Á½¸ö°Ö°Ö£¨¸¸½Úµã£© - Äãû¿´´í£¡

ÔÚÀúÊ·Öв鿴һ¸öºÏ²¢Ìá½»µÄÐÅϢʱ£¬Ä㽫¿´µ½ÓÐÁ½¸ö¸¸½Úµã£¨²»Í¬ÓÚ¹¤×÷¸±±¾Éϵij£¹æÌá½»µÄÇé¿ö£©¡£µÚÒ»¸ö¸¸½ÚµãÊÇÄãËùÔڵķÖÖ§£¬µÚ¶þ¸öÊÇÄãºÏ²¢¹ýÀ´µÄ·ÖÖ§¡£

4. ºÏ²¢³åÍ»

ĿǰÎÒÏàÐÅÄãÅöµ½¹ýºÏ²¢³åÍ»²¢ÇÒ½â¾ö¹ý¡£Í¨³£ÊDZ༭һÏÂÎļþ£¬È¥µô<<<<£¬====£¬>>>>±êÖ¾£¬±£ÁôÐèÒªÁôϵĴúÂë¡£ÓÐʱÄܹ»¿´µ½ÕâÁ½¸öÐÞ¸Ä֮ǰµÄ´úÂë»áºÜ²»´í£¬±ÈÈ磬ÔÚÕâÁ½¸öÏÖÔÚ³åÍ»µÄ·Ö֧֮ǰµÄ¸Ä¶¯¡£ÏÂÃæÊÇÒ»ÖÖ·½Ê½£º

$ git diff --merge
diff --cc dummy.rb
index 5175dde,0c65895..4a00477
--- a/dummy.rb
+++ b/dummy.rb
@@@ -1,5 -1,5 +1,5 @@@
class MyFoo
def say
- puts "Bonjour"
- puts "Hello world"
++ puts "Annyong Haseyo"
end
end

Èç¹ûÊǶþ½øÖÆÎļþ£¬±È½Ï²îÒì¾ÍûÄÇô¼òµ¥ÁË...ͨ³£ÄãÒª×öµÄ¾ÍÊDzâÊÔÕâ¸ö¶þ½øÖÆÎļþµÄÁ½¸ö°æ±¾À´¾ö¶¨±£ÁôÄĸö£¨»òÕßÔÚ¶þ½øÖÆÎļþ±à¼­Æ÷ÀïÊÖ¹¤¸´ÖƳåÍ»²¿·Ö£©¡£´ÓÒ»¸öÌØ¶¨·ÖÖ§»ñÈ¡Îļþ¿½±´£¨±ÈÈç˵ÄãÔںϲ¢masterºÍfeature123Á½¸ö·ÖÖ§£©£º

$ git checkout master flash/foo.fla # »òÕß...
$ git checkout feature132 flash/foo.fla
$ # È»ºó...
$ git add flash/foo.fla

ÁíÒ»ÖÖ·½Ê½ÊÇͨ¹ýgitÊä³öÎļþ - Äã¿ÉÒÔÊä³öµ½ÁíÍâµÄÎļþÃû£¬È»ºóµ±Äã¾ö¶¨ÁËÒªÓÃÄĸöºó£¬ÔÙ½«Ñ¡¶¨µÄÕýÈ·Îļþ¸´ÖÆÎªÕý³£µÄÎļþÃû

$ git show master:flash/foo.fla > master-foo.fla
$ git show feature132:flash/foo.fla > feature132-foo.fla
$ # ¼ì³ömaster-foo.flaºÍfeature132-foo.fla
$ # ¼ÙÈç˵ÎÒÃǾö¶¨À´×Ôfeature132µÄÎļþÊÇÕýÈ·µÄ
$ rm flash/foo.fla
$ mv feature132-foo.fla flash/foo.fla
$ rm master-foo.fla
$ git add flash/foo.fla

¸üУº¸ÐлCarlÔÚÔ­²©¿ÍÎÄÕÂÉÏÆÀÂÛÀïµÄÌáÐÑ£¬Äãʵ¼ÊÉÏ¿ÉÒÔÓá°git checkout ¡ªours flash/foo.fla¡±ºÍ¡°git checkout ¡ªtheirs flash/foo.fla¡±À´¼ì³öÌØ¶¨°æ±¾µÄÎļþ£¬¶ø²»ÓüÇסÄãÔںϲ¢µÄ·ÖÖ§Ãû×Ö¡£¾ÍÎÒ¸öÈËÀ´ËµÏ²»¶¸ü¾«È·Ò»µã£¬µ«ÕâÒ²ÊÇÒ»ÖÖ·½Ê½...

¼Ç×ÅÔÚ½â¾öÍê³åÍ»ºóÒª½«Îļþ¼ÓÈëÌá½»£¨ÏñÎÒÉÏÃæ×öµÄÄÇÑù£©¡£

·þÎñÆ÷£¬·ÖÖ§ºÍ±êÇ©

5. Ô¶¶Ë·þÎñÆ÷

gitµÄÒ»¸ö³¬Ç¿´óµÄ¹¦ÄܾÍÊÇ¿ÉÒÔÓв»Ö¹Ò»¸öÔ¶¶Ë·þÎñÆ÷£¨Êµ¼ÊÉÏÄãÒ»Ö±¶¼ÔÚÒ»¸ö±¾µØ²Ö¿âÉϹ¤×÷£©¡£Äã²¢²»ÊÇÒ»¶¨¶¼ÒªÓÐÕâЩ·þÎñÆ÷µÄдȨÏÞ£¬Äã¿ÉÒÔÓжà¸ö¿ÉÒÔ¶ÁÈ¡µÄ·þÎñÆ÷£¨ÓÃÀ´ºÏ²¢ËûÃǵŤ×÷£©È»ºóдÈëµ½ÁíÍâÒ»¸ö²Ö¿â¡£Ìí¼ÓÒ»¸öеÄÔ¶¶Ë·þÎñÆ÷ºÜ¼òµ¥£º

$ git remote add john git@github.com:johnsomeone/someproject.git

Èç¹ûÄãÏë²é¿´Ô¶¶Ë·þÎñÆ÷µÄÐÅÏ¢¿ÉÒÔÕâÑù×ö£º

 ÏÔʾÿ¸öÔ¶¶Ë·þÎñÆ÷µÄURL
$ git remote -v
# Ìṩ¸ü¶àÏêϸÐÅÏ¢
$ git remote show name

ÄãËæÊ±¶¼¿ÉÒԲ鿴±¾µØ·ÖÖ§ºÍÔ¶¶Ë·ÖÖ§µÄ²îÒ죺

$ git diff master..john/master

ÄãÒ²¿ÉÒԲ鿴ûÓÐÔÚÔ¶¶Ë·ÖÖ§ÉϵÄHEADµÄ¸Ä¶¯£º

$ git log remote/branch..
# ×¢Ò⣺..ºóÃæÃ»ÓнáÊøµÄÌØ¶¨ÒýÓÃ

6. ±êÇ©

ÔÚgitÀïÓÐÁ½ÖÖÀàÐ͵ıêÇ© - ÇáÁ¿¼¶±êÇ©ºÍ´ø×¢ÊͱêÇ©¡£¼Çס¼¼ÇÉ2Àï˵¹ýgitÊÇ»ùÓÚÖ¸ÕëµÄ£¬ÕâÁ½ÕßÖ®¼äµÄ²îÒìÒ²ºÜ¼òµ¥¡£ÇáÁ¿¼¶±êǩֻÊÇÒ»¸ö¼òµ¥µÄÖ¸ÏòÒ»´ÎÌá½»µÄ´øÃû×ÖÖ¸Õë¡£ÄãËæÊ±¶¼¿ÉÒÔ½«ËüÖ¸ÏòÁíÒ»¸öÌá½»¡£´ø×¢ÊͱêÇ©ÊÇÒ»¸öÖ¸Ïò±êÇ©¶ÔÏóµÄ´øÃû×ÖÖ¸Õ룬´øÓÐ×Ô¼ºµÄÐÅÏ¢ºÍÀúÊ·¡£ÒòΪÓÐ×Ô¼ºµÄÐÅÏ¢£¬Ëü¿ÉÒÔ¸ù¾ÝÐèÒªÓÃGPGÇ©Ãû¡£

½¨Á¢ÕâÁ½ÖÖÀàÐ͵ıêÇ©¶¼ºÜ¼òµ¥£¨Ö»ÓÐÒ»¸öÃüÁîÐпª¹ØµÄ²îÒ죩

$ git tag to-be-tested
$ git tag -a v1.1.0 # »áÌáʾÊäÈë±êÇ©µÄÐÅÏ¢

7. ½¨Á¢·ÖÖ§

ÔÚgitÀィÁ¢·ÖÖ§·Ç³£¼òµ¥£¨¶øÇÒÏñÉÁµçÒ»Ñù¿ì£¬ÒòΪËüÖ»ÐèÒª´´½¨Ò»¸öСÓÚ100×Ö½ÚµÄÎļþ£©¡£ÓÃÆÕͨ·½Ê½½¨Á¢Ð·ÖÖ§²¢Çл»¹ýÈ¥£º

$ git branch feature132
$ git checkout feature132

µ±È»£¬Èç¹ûÄãÈ·¶¨×Ô¼ºÖ±½ÓÇл»µ½Ð½¨µÄ·ÖÖ§£¬¿ÉÒÔÓÃÒ»¸öÃüÁîʵÏÖ£º

$ git checkout -b feature132

Èç¹ûÄãÏëÖØÃüÃûÒ»¸ö±¾µØ·ÖÖ§Ò²ºÜ¼òµ¥£¨¿ÉÒÔÏÔʾ·¢ÉúÁËʲôµÄ½Ï³¤µÄ·½Ê½£©£º

$ git checkout -b twitter-experiment feature132
$ git branch -d feature132

¸üУºÄãÒ²¿ÉÒÔ£¨ÏñBrian PalmerÔÚÔ­²©¿ÍÎÄÕÂµÄÆÀÂÛÀïÌá³öµÄ£©Ö»Óá°git branch¡±µÄ-m¿ª¹ØÔÚÒ»¸öÃüÁîÀïʵÏÖ£¨ÏñMikeÌá³öµÄ£¬Èç¹ûÄãÖ»Ö¸¶¨ÁËÒ»¸ö·ÖÖ§²ÎÊý£¬¾Í»áÖØÃüÃûµ±Ç°·ÖÖ§£©£º

$ git branch -m twitter-experiment
$ git branch -m feature132 twitter-experiment

8. ºÏ²¢·ÖÖ§

Ò²ÐíÔÚ½«À´µÄij¸öʱºò£¬ÄãÏ£Íû½«¸Ä¶¯ºÏ²¢¡£ÓÐÁ½ÖÖ·½Ê½£º

$ git checkout master
$ git merge feature83 # »òÕß...
$ git rebase feature83

mergeºÍrebaseÖ®¼äµÄ²î±ðÊÇmerge»á³¢ÊÔ´¦Àí¸Ä¶¯²¢½¨Á¢Ò»¸öеĻìºÏÁËÁ½ÕßµÄÌá½»¡£rebase»á³¢ÊÔ°ÑÄã´ÓÒ»¸ö·ÖÖ§×îºóÒ»´Î·ÖÀëºóµÄËùÓи͝£¬Ò»¸ö¸ö¼Óµ½¸Ã·ÖÖ§µÄHEADÉÏ¡£²»¹ý£¬ÔÚÒѾ­½«·ÖÖ§ÍÆµ½Ô¶¶Ë·þÎñÆ÷ºó²»ÒªÔÙrebaseÁË - Õâ»áÒýÆð³åÍ»/ÎÊÌâ¡£

Èç¹ûÄ㲻ȷ¶¨ÔÚÄÄЩ·ÖÖ§ÉÏ»¹ÓжÀÓеŤ×÷ - ËùÒÔÄãÒ²²»ÖªµÀÄÄЩ·ÖÖ§ÐèÒªºÏ²¢¶øÄÄЩ¿ÉÒÔɾ³ý£¬git branchÓÐÁ½¸ö¿ª¹Ø¿ÉÒÔ°ïÄ㣺

# ÏÔʾÒѾ­È«²¿ºÏ²¢µ½µ±Ç°·ÖÖ§µÄ·ÖÖ§
$ git branch --merged
# ÏÔʾûÓкϲ¢µ½µ±Ç°·ÖÖ§µÄ·ÖÖ§
$ git branch --no-merged

9. Ô¶¶Ë·ÖÖ§

Èç¹ûÄãÔÚ±¾µØÓÐÒ»¸ö·ÖÖ§Ï£ÍûÍÆµ½Ô¶¶Ë·þÎñÆ÷ÉÏ£¬Äã¿ÉÒÔÓÃÒ»ÐÐÃüÁîÍÆËÍÉÏÈ¥£º

$ git push origin twitter-experiment:refs/heads/twitter-experiment
# originÊÇÎÒÃÇ·þÎñÆ÷µÄÃû×Ö£¬¶øtwitter-experimentÊÇ·ÖÖ§Ãû×Ö

¸üУº¸ÐлErlendÔÚÔ­²©¿ÍÎÄÕÂÉÏµÄÆÀÂÛ - Õâ¸öʵ¼ÊÉϺÍgit push origin twitter-experimentЧ¹ûÒ»Ñù£¬²»¹ýʹÓÃÍêÕûµÄÓï·¨£¬Äã¿ÉÒÔÔÚÁ½ÕßÖ®¼äʹÓò»Í¬µÄ·ÖÖ§Ãû£¨ÕâÑù±¾µØ·ÖÖ§¿ÉÒÔÊÇadd-ssl-support¶øÔ¶¶ËÊÇissue-1723£©¡£

Èç¹ûÄãÏëÔÚÔ¶¶Ë·þÎñÆ÷ÉÏɾ³ýÒ»¸ö·ÖÖ§£¨×¢Òâ·ÖÖ§ÃûÇ°ÃæµÄðºÅ£©£º

$ git push origin :twitter-experiment

Èç¹ûÄãÏë²é¿´ËùÓÐÔ¶¶Ë·ÖÖ§µÄ״̬¿ÉÒÔÕâÑù×ö£º

$ git remote show origin

Õâ¸öÃüÁî¿ÉÄÜ»áÁгö·þÎñÆ÷ÉÏһЩÒÔǰÓйýµ«ÏÖÔÚÒѾ­²»ÔÚÁ˵ķÖÖ§¡£Èç¹ûÅöµ½ÕâÖÖÇé¿öÄã¿ÉÒÔÓÃÏÂÃæµÄÃüÁî´ÓÄã±¾µØ·ÖÖ§ÀïÇåÀíµô£º

$ git remote prune

×îºó£¬Èç¹ûÄãÏëÔÚ±¾µØ¸ú×ÙÒ»¸öÔ¶¶Ë·ÖÖ§£¬ÆÕͨµÄ·½Ê½ÊÇ£º

$ git branch --track myfeature origin/myfeature
$ git checkout myfeature

²»¹ý£¬Ð°æµÄgitÔÚʹÓÃ-b±ê¼Ç¼ì³ö·Ö֧ʱ»á×Ô¶¯É趨¸ú×Ù£º

$ git checkout -b myfeature origin/myfeature

ÔÚ´¢²Øµã£¬Ë÷ÒýºÍÎļþϵͳÖб£´æÄÚÈÝ

10. ´¢²Ø

ÔÚgitÀïÄã¿ÉÒ԰ѵ±Ç°¹¤×÷״̬·Å½øÒ»¸ö´¢²Ø¶ÑÕ»ÖУ¬È»ºó¿ÉÒÔÔÙÈ¡³öÀ´¡£×î¼òµ¥µÄÇéÐÎÊÇÏÂÃæÕâÑù£º

$ git stash
# ×öµãÆäËûÊÂÇé...
$ git stash pop

Ðí¶àÈ˽¨ÒéʹÓÃgit stash applyÀ´´úÌæpop£¬²»¹ýÈç¹ûÕâÑù×öµÄ»°×îºó»áÒÅÁôÒ»¸öºÜ³¤µÄ´¢²ØÁÐ±í¡£¶ø¡°pop¡±»áÔÚÈ«²¿¼ÓÔØºó×Ô¶¯´Ó¶ÑÕ»ÖÐÒÆ³ý¡£Èç¹ûʹÓùýgit stash apply£¬ÄãÒ²¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁî´Ó¶ÑÕ»ÉÏÒÆ³ý×îºóÒ»Ï

$ git stash drop

git»á»ùÓÚµ±Ç°µÄÌá½»ÐÅÏ¢×Ô¶¯´´½¨ÆÀÂÛ¡£Èç¹ûÄã¸üÏ£ÍûÓÐ×Ô¶¨ÒåÐÅÏ¢µÄ»°£¨ÒòΪËü¿ÉÄܺÍǰһ¸öÌύûÓÐÈκÎÁªÏµ£©£º

$ git stash save "My stash message"

Èç¹ûÄãÏ£Íû´ÓÁбíÖÐÈ¡³öÒ»¸öÌØ¶¨µÄ´¢²Øµã£¨²»Ò»¶¨·ÇµÃÊÇ×îºóÒ»¸ö£©¿ÉÒÔÏÈÁгöËüÃÇÈ»ºóÓÃÏÂÃæµÄ·½Ê½È¡³ö£º

$ git stash list
stash@{0}: On master: Changed to German
stash@{1}: On master: Language is now Italian
$ git stash apply stash@{1}

11. ½»»¥Ê½Ìí¼Ó

ÔÚsubversionµÄÊÀ½çÀïÄãÖ»ÄÜÐÞ¸ÄÎļþÈ»ºóÌá½»ËùÓи͝¡£¶øÔÚgitÀïÄãÓÐÇ¿´óµÃ¶àµÄ·½Ê½À´Ìá½»²¿·ÖÎļþ»òÕßÉõÖÁÊDz¿·Ö²¹¶¡¡£Ìá½»²¿·ÖÎļþ»òÎļþÖеIJ¿·Ö¸Ä¶¯ÄãÐèÒª½øÈë½»»¥Ê½Ä£Ê½£º

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

Õâ»áÈÃÄã½øÈëÒ»¸ö»ùÓڲ˵¥µÄ½»»¥Ê½Ìáʾ¡£Äã¿ÉÒÔʹÓÃÃüÁîÖеÄÊý×Ö»ò¸ßÁÁµÄ×Öĸ£¨Èç¹ûÄãÔÚÖÕ¶ËÀï´ò¿ªÁ˸ßÁÁµÄ»°£©À´½øÈëÏàÓ¦µÄģʽ¡£È»ºó¾ÍÖ»ÊÇÊäÈëÄãÏ£Íû²Ù×÷µÄÎļþµÄÊý×ÖÁË£¨Äã¿ÉÒÔʹÓÃÕâÑùµÄ¸ñʽ£¬1»òÕß1-4»ò2,4,7£©¡£

Èç¹ûÄãÏë½øÈë²¹¶¡Ä£Ê½£¨½»»¥Ê½Ä£Ê½Ï°´¡®p¡¯»ò¡®5¡¯£©£¬ÄãÒ²¿ÉÒÔÖ±½Ó½øÈ룺

$ git add -p    
diff --git a/dummy.rb b/dummy.rb
index 4a00477..f856fb0 100644
--- a/dummy.rb
+++ b/dummy.rb
@@ -1,5 +1,5 @@
class MyFoo
def say
- puts "Annyong Haseyo"
+ puts "Guten Tag"
end
end
Stage this hunk [y,n,q,a,d,/,e,?]?

Äã¿ÉÒÔ¿´µ½Ï·½»áÓÐһЩѡÏѡÔñÓÃÀ´Ìí¼Ó¸ÃÎļþµÄÕâ¸ö¸Ä¶¯¡¢¸ÃÎļþµÄËùÓи͝£¬µÈµÈ¡£Ê¹Óá®?¡¯ÃüÁî¿ÉÒÔÏêϸ½âÊÍÕâЩѡÏî¡£

12. ´ÓÎļþϵͳÀï±£´æ/È¡»Ø¸Ä¶¯

ÓÐЩÏîÄ¿£¨±ÈÈçGitÏîÄ¿±¾Éí£©ÔÚgitÎļþϵͳÖÐÖ±½Ó±£´æ¶îÍâÎļþ¶ø²¢Ã»Óн«ËüÃǼÓÈëµ½°æ±¾¿ØÖÆÖС£

ÈÃÎÒÃÇ´ÓÔÚgitÖд洢һ¸öËæ»úÎļþ¿ªÊ¼£º

$ echo "Foo" | git hash-object -w --stdin
51fc03a9bb365fae74fd2bf66517b30bf48020cb

ÕâÑùÕâ¸öÄ¿±êÎļþ¾ÍÒѾ­±£´æµ½Êý¾Ý¿âÖÐÁË£¬µ«ÊÇÈç¹ûÄãûÓÐÉ趨һ¸öÖ¸ÏòËüµÄÖ¸ÕëµÄ»°Ëü»á±»µ±×öÀ¬»ø»ØÊÕ¡£×î¼òµ¥µÄ·½Ê½ÊÇÉ趨һ¸ö±êÇ©£º

$ git tag myfile 51fc03a9bb365fae74fd2bf66517b30bf48020cb

×¢ÒâÕâÀïÎÒÃÇʹÓÃÁ˱êÇ©myfile¡£µ±ÎÒÃÇÐèҪʹÓÃÕâ¸öÎļþµÄʱºò¿ÉÒÔÕâÑù×ö£º

$ git cat-file blob myfile

Õâ¸ö¶ÔÓÚһЩ¹¤¾ßÎļþºÜÓÐÓ㬿ª·¢Õß¿ÉÄÜ»áÓõ½£¨ÃÜÂ룬GPGÃÜÔ¿£¬µÈµÈ£©µ«ÊÇÓÖ²»Ï£Íûÿ´Î¶¼¼ì³öµ½Ó²ÅÌ£¨ÓÈÆäÊÇÔÚʵ¼Ê¹¤×÷ÖУ©¡£

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

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

ÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀí°×ƤÊé
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