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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ͼ½âGit
 
 
  2849  次浏览      27
 2021-7-1 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Ҫͼ½âgitÖеÄ×î³£ÓÃÃüÁî,Èç¹ûÄãÉÔ΢Àí½âgitµÄ¹¤×÷Ô­Àí£¬ÕâÆªÎÄÕÂÄܹ»ÈÃÄãÀí½âµÄ¸ü͸³¹¡£

±¾ÎÄÀ´×ÔÓÚmarklodato.github.io£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

»ù±¾Ó÷¨

ÉÏÃæµÄËÄÌõÃüÁîÔÚ¹¤×÷Ŀ¼¡¢ÔÝ´æÄ¿Â¼(Ò²½Ð×öË÷Òý)ºÍ²Ö¿âÖ®¼ä¸´ÖÆÎļþ¡£

git add files °Ñµ±Ç°Îļþ·ÅÈëÔÝ´æÇøÓò¡£

git commit ¸øÔÝ´æÇøÓòÉú³É¿ìÕÕ²¢Ìá½»¡£

git reset -- files ÓÃÀ´³·Ïú×îºóÒ»´Îgit add files£¬ÄãÒ²¿ÉÒÔÓÃgit reset ³·ÏúËùÓÐÔÝ´æÇøÓòÎļþ¡£

git checkout -- files °ÑÎļþ´ÓÔÝ´æÇøÓò¸´ÖƵ½¹¤×÷Ŀ¼£¬ÓÃÀ´¶ªÆú±¾µØÐ޸ġ£

Äã¿ÉÒÔÓà git reset -p, git checkout -p, or git add -p½øÈë½»»¥Ä£Ê½¡£

Ò²¿ÉÒÔÌø¹ýÔÝ´æÇøÓòÖ±½Ó´Ó²Ö¿âÈ¡³öÎļþ»òÕßÖ±½ÓÌá½»´úÂë¡£

git commit -a Ï൱ÓÚÔËÐÐ git add °ÑËùÓе±Ç°Ä¿Â¼ÏµÄÎļþ¼ÓÈëÔÝ´æÇøÓòÔÙÔËÐС£git commit.

git commit files ½øÐÐÒ»´Î°üº¬×îºóÒ»´ÎÌá½»¼ÓÉϹ¤×÷Ŀ¼ÖÐÎļþ¿ìÕÕµÄÌá½»¡£²¢ÇÒÎļþ±»Ìí¼Óµ½ÔÝ´æÇøÓò¡£

git checkout HEAD -- files »Ø¹öµ½¸´ÖÆ×îºóÒ»´ÎÌá½»¡£

Ô¼¶¨

ºóÎÄÖÐÒÔÏÂÃæµÄÐÎʽʹÓÃͼƬ¡£

ÂÌÉ«µÄ5λ×Ö·û±íʾÌá½»µÄID£¬·Ö±ðÖ¸Ïò¸¸½Úµã¡£·ÖÖ§ÓÃéÙÉ«ÏÔʾ£¬·Ö±ðÖ¸ÏòÌØ¶¨µÄÌá½»¡£µ±Ç°·ÖÖ§Óɸ½ÔÚÆäÉϵÄHEAD±êʶ¡£ ÕâÕÅͼƬÀïÏÔʾ×îºó5´ÎÌá½»£¬ed489ÊÇ×îÐÂÌá½»¡£ main·ÖÖ§Ö¸Ïò´Ë´ÎÌá½»£¬ÁíÒ»¸östable·ÖÖ§Ö¸Ïò׿¸¸Ìá½»½Úµã¡£

ÃüÁîÏê½â

Diff

ÓÐÐí¶àÖÖ·½·¨²é¿´Á½´ÎÌá½»Ö®¼äµÄ±ä¶¯¡£ÏÂÃæÊÇһЩʾÀý¡£

Commit

Ìύʱ£¬gitÓÃÔÝ´æÇøÓòµÄÎļþ´´½¨Ò»¸öеÄÌá½»£¬²¢°Ñ´ËʱµÄ½ÚµãÉèΪ¸¸½Úµã¡£È»ºó°Ñµ±Ç°·ÖÖ§Ö¸ÏòеÄÌá½»½Úµã¡£ÏÂͼÖУ¬µ±Ç°·ÖÖ§ÊÇmain¡£ ÔÚÔËÐÐÃüÁî֮ǰ£¬mainÖ¸Ïòed489£¬Ìá½»ºó£¬mainÖ¸ÏòеĽڵãf0cec²¢ÒÔed489×÷Ϊ¸¸½Úµã¡£

¼´±ãµ±Ç°·ÖÖ§ÊÇij´ÎÌá½»µÄ׿¸¸½Úµã£¬git»áͬÑù²Ù×÷¡£ÏÂͼÖУ¬ÔÚmain·ÖÖ§µÄ׿¸¸½Úµãstable·ÖÖ§½øÐÐÒ»´ÎÌá½»£¬Éú³ÉÁË1800b¡£ ÕâÑù£¬stable·ÖÖ§¾Í²»ÔÙÊÇmain·ÖÖ§µÄ׿¸¸½Úµã¡£´Ëʱ£¬ºÏ²¢ (»òÕß ÑܺÏ) ÊDZØÐëµÄ¡£

Èç¹ûÏë¸ü¸ÄÒ»´ÎÌá½»£¬Ê¹Óà git commit --amend¡£git»áʹÓÃÓ뵱ǰÌá½»ÏàͬµÄ¸¸½Úµã½øÐÐÒ»´ÎÐÂÌá½»£¬¾ÉµÄÌá½»»á±»È¡Ïû¡£

ÁíÒ»¸öÀý×ÓÊÇ·ÖÀëHEADÌá½»,ºóÎĽ²¡£

Checkout

checkoutÃüÁîÓÃÓÚ´ÓÀúÊ·Ìá½»£¨»òÕßÔÝ´æÇøÓò£©Öп½±´Îļþµ½¹¤×÷Ŀ¼£¬Ò²¿ÉÓÃÓÚÇл»·ÖÖ§¡£

µ±¸ø¶¨Ä³¸öÎļþÃû£¨»òÕß´ò¿ª-pÑ¡Ï»òÕßÎļþÃûºÍ-pÑ¡Ïîͬʱ´ò¿ª£©Ê±£¬git»á´ÓÖ¸¶¨µÄÌá½»Öп½±´Îļþµ½ÔÝ´æÇøÓòºÍ¹¤×÷Ŀ¼¡£±ÈÈ磬git checkout HEAD~ foo.c»á½«Ìá½»½ÚµãHEAD~(¼´µ±Ç°Ìá½»½ÚµãµÄ¸¸½Úµã)ÖеÄfoo.c¸´ÖƵ½¹¤×÷Ŀ¼²¢ÇÒ¼Óµ½ÔÝ´æÇøÓòÖС££¨Èç¹ûÃüÁîÖÐûÓÐÖ¸¶¨Ìá½»½Úµã£¬Ôò»á´ÓÔÝ´æÇøÓòÖп½±´ÄÚÈÝ¡££©×¢Ò⵱ǰ·ÖÖ§²»»á·¢Éú±ä»¯¡£

µ±²»Ö¸¶¨ÎļþÃû£¬¶øÊǸø³öÒ»¸ö£¨±¾µØ£©·Ö֧ʱ£¬ÄÇôHEAD±êʶ»áÒÆ¶¯µ½ÄǸö·ÖÖ§£¨Ò²¾ÍÊÇ˵£¬ÎÒÃÇ¡°Çл»¡±µ½ÄǸö·ÖÖ§ÁË£©£¬È»ºóÔÝ´æÇøÓòºÍ¹¤×÷Ŀ¼ÖеÄÄÚÈÝ»áºÍHEAD¶ÔÓ¦µÄÌá½»½ÚµãÒ»Ö¡£ÐÂÌá½»½Úµã£¨ÏÂͼÖеÄa47c3£©ÖеÄËùÓÐÎļþ¶¼»á±»¸´ÖÆ£¨µ½ÔÝ´æÇøÓòºÍ¹¤×÷Ŀ¼ÖУ©£»Ö»´æÔÚÓÚÀϵÄÌá½»½Úµã£¨ed489£©ÖеÄÎļþ»á±»É¾³ý£»²»ÊôÓÚÉÏÊöÁ½ÕßµÄÎļþ»á±»ºöÂÔ£¬²»ÊÜÓ°Ïì¡£

Èç¹û¼ÈûÓÐÖ¸¶¨ÎļþÃû£¬Ò²Ã»ÓÐÖ¸¶¨·ÖÖ§Ãû£¬¶øÊÇÒ»¸ö±êÇ©¡¢Ô¶³Ì·ÖÖ§¡¢SHA-1Öµ»òÕßÊÇÏñmain~3ÀàËÆµÄ¶«Î÷£¬¾ÍµÃµ½Ò»¸öÄäÃû·ÖÖ§£¬³Æ×÷detached HEAD£¨±»·ÖÀëµÄHEAD±êʶ£©¡£ÕâÑù¿ÉÒԺܷ½±ãµØÔÚÀúÊ·°æ±¾Ö®¼ä»¥ÏàÇл»¡£±ÈÈç˵ÄãÏëÒª±àÒë1.6.6.1°æ±¾µÄgit£¬Äã¿ÉÒÔÔËÐÐgit checkout v1.6.6.1£¨ÕâÊÇÒ»¸ö±êÇ©£¬¶ø·Ç·ÖÖ§Ãû£©£¬±àÒ룬°²×°£¬È»ºóÇл»»ØÁíÒ»¸ö·ÖÖ§£¬±ÈÈç˵git checkout main¡£È»¶ø£¬µ±Ìá½»²Ù×÷Éæ¼°µ½¡°·ÖÀëµÄHEAD¡±Ê±£¬ÆäÐÐΪ»áÂÔÓв»Í¬£¬ÏêÇé¼ûÔÚÏÂÃæ¡£

HEAD±êʶ´¦ÓÚ·ÖÀë״̬ʱµÄÌá½»²Ù×÷

µ±HEAD´¦ÓÚ·ÖÀë״̬£¨²»ÒÀ¸½ÓÚÈÎÒ»·ÖÖ§£©Ê±£¬Ìá½»²Ù×÷¿ÉÒÔÕý³£½øÐУ¬µ«ÊDz»»á¸üÐÂÈκÎÒÑÃüÃûµÄ·ÖÖ§¡£(Äã¿ÉÒÔÈÏΪÕâÊÇÔÚ¸üÐÂÒ»¸öÄäÃû·ÖÖ§¡£)

Ò»µ©´ËºóÄãÇл»µ½±ðµÄ·ÖÖ§£¬±ÈÈç˵main£¬ÄÇôÕâ¸öÌá½»½Úµã£¨¿ÉÄÜ£©ÔÙÒ²²»»á±»ÒýÓõ½£¬È»ºó¾Í»á±»¶ªÆúµôÁË¡£×¢ÒâÕâ¸öÃüÁîÖ®ºó¾Í²»»áÓж«Î÷ÒýÓÃ2eecb¡£

µ«ÊÇ£¬Èç¹ûÄãÏë±£´æÕâ¸ö״̬£¬¿ÉÒÔÓÃÃüÁîgit checkout -b nameÀ´´´½¨Ò»¸öеķÖÖ§¡£

Reset

resetÃüÁî°Ñµ±Ç°·ÖÖ§Ö¸ÏòÁíÒ»¸öλÖ㬲¢ÇÒÓÐÑ¡ÔñµÄ±ä¶¯¹¤×÷Ŀ¼ºÍË÷Òý¡£Ò²ÓÃÀ´ÔÚ´ÓÀúÊ·²Ö¿âÖи´ÖÆÎļþµ½Ë÷Òý£¬¶ø²»¶¯¹¤×÷Ŀ¼¡£

Èç¹û²»¸øÑ¡ÏÄÇôµ±Ç°·ÖÖ§Ö¸Ïòµ½ÄǸöÌá½»¡£Èç¹ûÓÃ--hardÑ¡ÏÄÇô¹¤×÷Ŀ¼Ҳ¸üУ¬Èç¹ûÓÃ--softÑ¡ÏÄÇô¶¼²»±ä¡£

Èç¹ûûÓиø³öÌá½»µãµÄ°æ±¾ºÅ£¬ÄÇôĬÈÏÓÃHEAD¡£ÕâÑù£¬·ÖÖ§Ö¸Ïò²»±ä£¬µ«ÊÇË÷Òý»á»Ø¹öµ½×îºóÒ»´ÎÌá½»£¬Èç¹ûÓÃ--hardÑ¡Ï¹¤×÷Ŀ¼ҲͬÑù¡£

Èç¹û¸øÁËÎļþÃû(»òÕß -pÑ¡Ïî), ÄÇô¹¤×÷Ч¹ûºÍ´øÎļþÃûµÄcheckout²î²»¶à£¬³ýÁËË÷Òý±»¸üС£

Merge

merge ÃüÁî°Ñ²»Í¬·ÖÖ§ºÏ²¢ÆðÀ´¡£ºÏ²¢Ç°£¬Ë÷Òý±ØÐëºÍµ±Ç°Ìá½»Ïàͬ¡£Èç¹ûÁíÒ»¸ö·ÖÖ§Êǵ±Ç°Ìá½»µÄ׿¸¸½Úµã£¬ÄÇôºÏ²¢ÃüÁʲôҲ²»×ö¡£ ÁíÒ»ÖÖÇé¿öÊÇÈç¹ûµ±Ç°Ìá½»ÊÇÁíÒ»¸ö·ÖÖ§µÄ׿¸¸½Úµã£¬¾Íµ¼ÖÂfast-forwardºÏ²¢¡£Ö¸ÏòÖ»ÊǼòµ¥µÄÒÆ¶¯£¬²¢Éú³ÉÒ»¸öеÄÌá½»¡£

·ñÔò¾ÍÊÇÒ»´ÎÕæÕýµÄºÏ²¢¡£Ä¬Èϰѵ±Ç°Ìá½»(ed489 ÈçÏÂËùʾ)ºÍÁíÒ»¸öÌá½»(33104)ÒÔ¼°ËûÃǵĹ²Í¬×游½Úµã(b325c)½øÐÐÒ»´ÎÈý·½ºÏ²¢¡£½á¹ûÊÇÏȱ£´æµ±Ç°Ä¿Â¼ºÍË÷Òý£¬È»ºóºÍ¸¸½Úµã33104Ò»Æð×öÒ»´ÎÐÂÌá½»¡£

Cherry Pick

cherry-pickÃüÁî"¸´ÖÆ"Ò»¸öÌá½»½Úµã²¢ÔÚµ±Ç°·ÖÖ§×öÒ»´ÎÍêȫһÑùµÄÐÂÌá½»¡£

Rebase

ÑܺÏÊǺϲ¢ÃüÁîµÄÁíÒ»ÖÖÑ¡Ôñ¡£ºÏ²¢°ÑÁ½¸ö¸¸·ÖÖ§ºÏ²¢½øÐÐÒ»´ÎÌá½»£¬Ìá½»ÀúÊ·²»ÊÇÏßÐԵġ£ÑܺÏÔÚµ±Ç°·ÖÖ§ÉÏÖØÑÝÁíÒ»¸ö·ÖÖ§µÄÀúÊ·£¬Ìá½»ÀúÊ·ÊÇÏßÐԵġ£ ±¾ÖÊÉÏ£¬ÕâÊÇÏßÐÔ»¯µÄ×Ô¶¯µÄ cherry-pick

ÉÏÃæµÄÃüÁî¶¼ÔÚtopic·ÖÖ§ÖнøÐУ¬¶ø²»ÊÇmain·ÖÖ§£¬ÔÚmain·ÖÖ§ÉÏÖØÑÝ£¬²¢ÇÒ°Ñ·ÖÖ§Ö¸ÏòеĽڵ㡣עÒâ¾ÉÌύûÓб»ÒýÓ㬽«±»»ØÊÕ¡£

ÒªÏÞÖÆ»Ø¹ö·¶Î§£¬Ê¹ÓÃ--ontoÑ¡Ïî¡£ÏÂÃæµÄÃüÁîÔÚmain·ÖÖ§ÉÏÖØÑݵ±Ç°·ÖÖ§´Ó169a6ÒÔÀ´µÄ×î½ü¼¸¸öÌá½»£¬¼´2c33a¡£

ͬÑùÓÐgit rebase --interactiveÈÃÄã¸ü·½±ãµÄÍê³ÉһЩ¸´ÔÓ²Ù×÷£¬±ÈÈ綪Æú¡¢ÖØÅÅ¡¢Ð޸ġ¢ºÏ²¢Ìá½»¡£Ã»ÓÐͼƬÌåÏÖÕâЩ£¬Ï¸½Ú¿´ÕâÀï:git-rebase(1)

¼¼Êõ˵Ã÷

ÎļþÄÚÈݲ¢Ã»ÓÐÕæÕý´æ´¢ÔÚË÷Òý(.git/index)»òÕßÌá½»¶ÔÏóÖУ¬¶øÊÇÒÔblobµÄÐÎʽ·Ö±ð´æ´¢ÔÚÊý¾Ý¿âÖÐ(.git/objects)£¬²¢ÓÃSHA-1ÖµÀ´Ð£Ñé¡£ Ë÷ÒýÎļþÓÃʶ±ðÂëÁгöÏà¹ØµÄblobÎļþÒÔ¼°±ðµÄÊý¾Ý¡£¶ÔÓÚÌá½»À´Ëµ£¬ÒÔÊ÷(tree)µÄÐÎʽ´æ´¢£¬Í¬ÑùÓöÔÓڵĹþϣֵʶ±ð¡£Ê÷¶ÔӦ׏¤×÷Ŀ¼ÖеÄÎļþ¼Ð£¬Ê÷Öаüº¬µÄ Ê÷»òÕßblob¶ÔÏó¶ÔÓ¦×ÅÏàÓ¦µÄ×ÓĿ¼ºÍÎļþ¡£Ã¿´ÎÌá½»¶¼´æ´¢ÏÂËüµÄÉÏÒ»¼¶Ê÷µÄʶ±ðÂë¡£

Èç¹ûÓÃdetached HEADÌá½»£¬ÄÇô×îºóÒ»´ÎÌá½»»á±»the reflog for HEADÒýÓᣵ«ÊǹýÒ»¶Îʱ¼ä¾ÍʧЧ£¬×îÖÕ±»»ØÊÕ£¬Óëgit commit --amend»òÕßgit rebaseºÜÏñ¡£

 

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

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

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

ÅäÖùÜÀíʵ¼ù
ÅäÖùÜÀí·½·¨¡¢¹¤¾ßÓëÓ¦ÓÃ
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
²úÆ··¢²¼¹ÜÀí
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
gitÔ­Àíͼ½â
Git·ÖÖ§¹ÜÀíʵ¼ù
GitѧϰºÍÏîĿӦÓÃʵÀý
Git ÌìÌìÓà µ«ÊÇ Git Ô­ÀíÄãÁ˽âÂð£¿
¶Ô±È Git Óë SVN£¬ÕâÆª½²µÄºÜÒ×¶®
×îпγÌ
Git°æ±¾¿ØÖÆÏµÍ³
ÅäÖùÜÀíÓë³ÖÐø¼¯³Éʵ¼ù
ÅäÖùÜÀí·½·¨¡¢Êµ¼ù¡¢¹¤¾ßÓëÓ¦ÓÃ
³ÖÐø¼¯³ÉÓëÃô½Ý¿ª·¢
ÅäÖùÜÀíʵ¼ù£¨´Ó×éÖ¯¼¶µ½ÏîÄ¿¼¶£©
³É¹¦°¸Àý
ijµ¥Î»Ñз¢ÖÐÐÄ ²úÆ·¼¯³ÉÓë·þÎñƽ̨
ijµç×ÓÖÆÔìÉÌ ÅäÖùÜÀíÓë³ÖÐø¼¯³É
±±¾© ÅäÖùÜÀíÓë³ÖÐø¼¯³Éʵ¼ù
½ðÑÅÍØ ·Ö²¼Ê½³ÖÐø¼¯³É¹¤¾ßÁ´
±±¾© ³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù