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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
25¸ö¿ª·¢©§ÈçºÎÔÚ Git Àï³·Ïú(¼¸ºõ)ÈκβÙ×÷
 
À´Ô´£º²®ÀÖÔÚÏß ·¢²¼ÓÚ 2015-6-25
  2920  次浏览      28
 

Èκΰ汾¿ØÖÆÏµÍ³µÄÒ»¸ö×îÓеÄÓÃÌØÐÔ¾ÍÊÇ¡°³·Ïú (undo)¡±ÄãµÄ´íÎó²Ù×÷µÄÄÜÁ¦¡£ÔÚ Git À¡°³·Ïú¡± Ô̺¬Á˲»ÉÙÂÔÓвî±ðµÄ¹¦ÄÜ¡£

µ±Äã½øÐÐÒ»´ÎеÄÌá½»µÄʱºò£¬Git »á±£´æÄã´úÂë¿âÔÚÄǸöÌØ¶¨Ê±¼äµãµÄ¿ìÕÕ£»Ö®ºó£¬Äã¿ÉÒÔÀûÓà Git ·µ»Øµ½ÄãµÄÏîÄ¿µÄÒ»¸öÔçÆÚ°æ±¾¡£

ÔÚ±¾Æª²©ÎÄÀÎһὲ½âijЩÄãÐèÒª¡°³·Ïú¡±ÒÑ×ö³öµÄÐ޸ĵij£¼û³¡¾°£¬ÒÔ¼°ÀûÓà Git ½øÐÐÕâЩ²Ù×÷µÄ×î¼Ñ·½·¨¡£

³·ÏúÒ»¸ö¡°Òѹ«¿ª¡±µÄ¸Ä±ä

³¡¾°: ÄãÒѾ­Ö´ÐÐÁË git push, °ÑÄãµÄÐ޸ķ¢Ë͵½ÁË GitHub£¬ÏÖÔÚÄãÒâʶµ½ÕâЩ commit µÄÆäÖÐÒ»¸öÊÇÓÐÎÊÌâµÄ£¬ÄãÐèÒª³·ÏúÄÇÒ»¸ö commit.

·½·¨: git revert <SHA>

Ô­Àí: git revert »á²úÉúÒ»¸öÐ嵀 commit£¬ËüºÍÖ¸¶¨ SHA ¶ÔÓ¦µÄ commit ÊÇÏà·´µÄ£¨»òÕß˵ÊÇ·´×ªµÄ£©¡£Èç¹ûÔ­Ï鵀 commit ÊÇ¡°ÎïÖÊ¡±£¬Ð嵀 commit ¾ÍÊÇ¡°·´ÎïÖÊ¡± ¡ª ÈκδÓÔ­Ï鵀 commit Àïɾ³ýµÄÄÚÈÝ»áÔÚÐ嵀 commit Àï±»¼Ó»ØÈ¥£¬ÈκÎÔÚÔ­Ï鵀 commit Àï¼ÓÈëµÄÄÚÈÝ»áÔÚÐ嵀 commit Àﱻɾ³ý¡£

ÕâÊÇ Git ×ȫ¡¢×î»ù±¾µÄ³·Ïú³¡¾°£¬ÒòΪËü²¢²»»á¸Ä±äÀúÊ· ¡ª ËùÒÔÄãÏÖÔÚ¿ÉÒÔ git push еġ°·´×ª¡± commit À´µÖÏûÄã´íÎóÌá½»µÄ commit¡£

ÐÞÕý×îºóÒ»¸ö commit ÏûÏ¢

³¡¾°: ÄãÔÚ×îºóÒ»Ìõ commit ÏûÏ¢ÀïÓиö±ÊÎó£¬ÒѾ­Ö´ÐÐÁË git commit -m "Fxies bug #42"£¬µ«ÔÚ git push ֮ǰÄãÒâʶµ½ÏûÏ¢Ó¦¸ÃÊÇ ¡°Fixes bug #42¡å¡£

·½·¨: git commit --amend »ò git commit --amend -m "Fixes bug #42"

Ô­Àí: git commit --amend »áÓÃÒ»¸öÐ嵀 commit ¸üв¢Ìæ»»×î½üµÄ commit £¬Õâ¸öÐ嵀 commit »á°ÑÈκÎÐÞ¸ÄÄÚÈݺÍÉÏÒ»¸ö commit µÄÄÚÈݽáºÏÆðÀ´¡£Èç¹ûµ±Ç°Ã»ÓÐÌá³öÈκÎÐ޸ģ¬Õâ¸ö²Ù×÷¾ÍÖ»»á°ÑÉÏ´ÎµÄ commit ÏûÏ¢ÖØÐ´Ò»±é¡£

³·Ïú¡°±¾µØµÄ¡±ÐÞ¸Ä

³¡¾°: һֻè´Ó¼üÅÌÉÏ×ß¹ý£¬ÎÞÒâÖб£´æÁËÐ޸ģ¬È»ºóÆÆ»µÁ˱༭Æ÷¡£²»¹ý£¬Ä㻹ûÓÐ commit ÕâЩÐ޸ġ£ÄãÏëÒª»Ö¸´±»ÐÞ¸ÄÎļþÀïµÄËùÓÐÄÚÈÝ ¡ª ¾ÍÏñÉÏ´Î commit µÄʱºòһģһÑù¡£

·½·¨: git checkout -- <bad filename>

Ô­Àí: git checkout »á°Ñ¹¤×÷Ŀ¼ÀïµÄÎļþÐ޸ĵ½ Git ֮ǰ¼Ç¼µÄij¸ö״̬¡£Äã¿ÉÒÔÌṩһ¸öÄãÏë·µ»ØµÄ·ÖÖ§Ãû»òÌØ¶¨ SHA £¬»òÕßÔÚȱʡÇé¿öÏ£¬Git »áÈÏΪÄãÏ£Íû checkout µÄÊÇ HEAD£¬µ±Ç° checkout ·ÖÖ§µÄ×îºóÒ»´Î commit¡£

¼Çס£ºÄãÓÃÕâÖÖ·½·¨¡°³·Ïú¡±µÄÈκÎÐÞ¸ÄÕæµÄ»áÍêÈ«Ïûʧ¡£ÒòΪËüÃÇ´ÓÀ´Ã»Óб»Ìá½»¹ý£¬ËùÒÔÖ®ºó Git Ò²ÎÞ·¨°ïÖúÎÒÃǻָ´ËüÃÇ¡£ÄãҪȷ±£×Ô¼ºÁ˽âÄãÔÚÕâ¸ö²Ù×÷ÀïÈÓµôµÄ¶«Î÷ÊÇʲô£¡£¨Ò²Ðí¿ÉÒÔÏÈÀûÓà git diff È·ÈÏһϣ©

ÖØÖá°±¾µØµÄ¡±ÐÞ¸Ä

³¡¾°: ÄãÔÚ±¾µØÌá½»ÁËһЩ¶«Î÷£¨»¹Ã»ÓÐ push£©£¬µ«ÊÇËùÓÐÕâЩ¶«Î÷¶¼ºÜÔã¸â£¬ÄãÏ£Íû³·ÏúÇ°ÃæµÄÈý´ÎÌá½» ¡ª ¾ÍÏñËüÃÇ´ÓÀ´Ã»Óз¢Éú¹ýÒ»Ñù¡£

·½·¨: git reset <last good SHA> »ò git reset --hard <last good SHA>

Ô­Àí: git reset »á°ÑÄãµÄ´úÂë¿âÀúÊ··µ»Øµ½Ö¸¶¨µÄ SHA ״̬¡£ ÕâÑù¾ÍÏñÊÇÕâЩÌá½»´ÓÀ´Ã»Óз¢Éú¹ý¡£È±Ê¡Çé¿öÏ£¬ git reset »á±£Áô¹¤×÷Ŀ¼¡£ÕâÑù£¬Ìá½»ÊÇûÓÐÁË£¬µ«ÊÇÐÞ¸ÄÄÚÈÝ»¹ÔÚ´ÅÅÌÉÏ¡£ÕâÊÇÒ»ÖÖ°²È«µÄÑ¡Ôñ£¬µ«Í¨³£ÎÒÃÇ»áÏ£ÍûÒ»²½¾Í¡°³·Ïú¡±Ìá½»ÒÔ¼°ÐÞ¸ÄÄÚÈÝ ¡ª Õâ¾ÍÊÇ --hard Ñ¡ÏîµÄ¹¦ÄÜ¡£

ÔÚ³·Ïú¡°±¾µØÐ޸ġ±Ö®ºóÔÙ»Ö¸´

³¡¾°: ÄãÌá½»Á˼¸¸ö commit£¬È»ºóÓà git reset --hard ³·ÏúÁËÕâЩÐ޸썼ûÉÏÒ»¶Î£©£¬½Ó×ÅÄãÓÖÒâʶµ½£ºÄãÏ£Íû»¹Ô­ÕâЩÐ޸ģ¡

·½·¨: git reflog ºÍ git reset »ò git checkout

Ô­Àí: git reflog ¶ÔÓÚ»Ö¸´ÏîÄ¿ÀúÊ·ÊÇÒ»¸ö³¬°ôµÄ×ÊÔ´¡£Äã¿ÉÒÔ»Ö¸´¼¸ºõ Èκζ«Î÷ ¡ª ÈκÎÄã commit ¹ýµÄ¶«Î÷ ¡ª ֻҪͨ¹ý reflog¡£

Äã¿ÉÄÜÒѾ­ÊìϤÁË git log ÃüÁËü»áÏÔʾ commit µÄÁÐ±í¡£ git reflog Ò²ÊÇÀàËÆµÄ£¬²»¹ýËüÏÔʾµÄÊÇÒ»¸ö HEAD ·¢Éú¸Ä±äµÄʱ¼äÁбí.

һЩעÒâÊÂÏ

  • ËüÉæ¼°µÄÖ»ÊÇ HEAD µÄ¸Ä±ä¡£ÔÚÄãÇл»·ÖÖ§¡¢Óà git commit ½øÐÐÌá½»¡¢ÒÔ¼°Óà git reset ³·Ïú commit ʱ£¬HEAD »á¸Ä±ä£¬µ«µ±ÄãÓà git checkout -- <bad filename> ³·Ïúʱ£¨ÕýÈçÎÒÃÇÔÚÇ°Ãæ½²µ½µÄÇé¿ö£©£¬HEAD ²¢²»»á¸Ä±ä ¡ª ÈçǰËùÊö£¬ÕâЩÐ޸ĴÓÀ´Ã»Óб»Ìá½»¹ý£¬Òò´Ë reflog Ò²ÎÞ·¨°ïÖúÎÒÃǻָ´ËüÃÇ¡£
  • git reflog ²»»áÓÀÔ¶±£³Ö¡£Git »á¶¨ÆÚÇåÀíÄÇЩ ¡°Óò»µ½µÄ¡± ¶ÔÏó¡£²»ÒªÖ¸Íû¼¸¸öÔÂǰµÄÌá½»»¹Ò»Ö±ÌÉÔÚÄÇÀï¡£
  • ÄãµÄ reflog ¾ÍÊÇÄãµÄ£¬Ö»ÊÇÄãµÄ¡£Äã²»ÄÜÓà git reflog À´»Ö¸´ÁíÒ»¸ö¿ª·¢ÕßûÓÐ push ¹ýµÄ commit¡£

ÄÇô¡­ÄãÔõôÀûÓà reflog À´¡°»Ö¸´¡±Ö®Ç°¡°³·Ïú¡±µÄ commit ÄØ£¿ËüÈ¡¾öÓÚÄãÏë×öµ½µÄµ½µ×ÊÇʲô£º

  • Èç¹ûÄãÏ£Íû׼ȷµØ»Ö¸´ÏîÄ¿µÄÀúÊ·µ½Ä³¸öʱ¼äµã£¬Óà git reset --hard <SHA>
  • Èç¹ûÄãÏ£ÍûÖØ½¨¹¤×÷Ŀ¼ÀïµÄÒ»¸ö»ò¶à¸öÎļþ£¬ÈÃËüÃǻָ´µ½Ä³¸öʱ¼äµãµÄ״̬£¬Óà git checkout <SHA> -- <filename>
  • Èç¹ûÄãÏ£Íû°ÑÕâЩ commit ÀïµÄijһ¸öÖØÐÂÌá½»µ½ÄãµÄ´úÂë¿âÀÓà git cherry-pick <SHA>

ÀûÓ÷ÖÖ§µÄÁíÒ»ÖÖ×ö·¨

³¡¾°: Äã½øÐÐÁËһЩÌá½»£¬È»ºóÒâʶµ½Ä㿪ʼ check out µÄÊÇ master ·ÖÖ§¡£ÄãÏ£ÍûÕâЩÌá½»½øµ½ÁíÒ»¸öÌØÐÔ£¨feature£©·ÖÖ§Àï¡£

·½·¨: git branch feature, git reset --hard origin/master, and git checkout feature

Ô­Àí: Äã¿ÉÄÜϰ¹ßÁËÓà git checkout -b <name> ´´½¨ÐµķÖÖ§ ¡ª ÕâÊÇ´´½¨Ð·ÖÖ§²¢ÂíÉÏ check out µÄÁ÷Ðнݾ¶ ¡ª µ«ÊÇÄ㲻ϣÍûÂíÉÏÇл»·ÖÖ§¡£ÕâÀ git branch feature ´´½¨Ò»¸ö½Ð×ö feature µÄзÖÖ§²¢Ö¸ÏòÄã×î½üµÄ commit£¬µ«»¹ÊÇÈÃÄã check out ÔÚ master ·ÖÖ§ÉÏ¡£

ÏÂÒ»²½£¬ÔÚÌá½»ÈκÎÐ嵀 commit ֮ǰ£¬Óà git reset --hard °Ñ master ·ÖÖ§µ¹»Ø origin/master ¡£²»¹ý±ðµ£ÐÄ£¬ÄÇЩ commit »¹ÔÚ feature ·ÖÖ§Àï¡£

×îºó£¬Óà git checkout Çл»µ½Ð嵀 feature ·ÖÖ§£¬²¢ÇÒÈÃÄã×î½üËùÓеŤ×÷³É¹û¶¼ÍêºÃÎÞËð¡£

¼°Ê±·ÖÖ§£¬Ê¡È¥·±Ëö

³¡¾°: ÄãÔÚ master ·ÖÖ§µÄ»ù´¡ÉÏ´´½¨ÁË feature ·ÖÖ§£¬µ« master ·ÖÖ§ÒѾ­ÖͺóÓÚ origin/master ºÜ¶à¡£ÏÖÔÚ master ·ÖÖ§ÒѾ­ºÍ origin/master ͬ²½£¬ÄãÏ£ÍûÔÚ feature ÉϵÄÌá½»ÊÇ´ÓÏÖÔÚ¿ªÊ¼£¬¶ø²»ÊÇÒ²´ÓÖͺóºÜ¶àµÄµØ·½¿ªÊ¼¡£

·½·¨: git checkout feature ºÍ git rebase master

Ô­Àí: Òª´ïµ½Õâ¸öЧ¹û£¬Äã±¾À´¿ÉÒÔͨ¹ý git reset (²»¼Ó --hard, ÕâÑù¿ÉÒÔÔÚ´ÅÅÌÉϱ£ÁôÐÞ¸Ä) ºÍ git checkout -b <new branch name> È»ºóÔÙÖØÐÂÌá½»Ð޸쬲»¹ýÕâÑù×öµÄ»°£¬Äã¾Í»áʧȥÌá½»ÀúÊ·¡£ÎÒÃÇÓиüºÃµÄ°ì·¨¡£

git rebase master »á×öÈçϵÄÊÂÇ飺

  • Ê×ÏÈËü»áÕÒµ½Ä㵱ǰ check out µÄ·ÖÖ§ºÍ master ·ÖÖ§µÄ¹²Í¬×æÏÈ¡£
  • È»ºóËü reset µ±Ç° check out µÄ·ÖÖ§µ½ÄǸö¹²Í¬×æÏÈ£¬ÔÚÒ»¸öÁÙʱ±£´æÇø´æ·ÅËùÓÐ֮ǰµÄÌá½»¡£
  • È»ºóËü°Ñµ±Ç° check out µÄ·ÖÖ§Ìáµ½ master µÄĩβ²¿·Ö£¬²¢´ÓÁÙʱ±£´æÇøÖØÐ°Ѵæ·ÅµÄ commit Ìá½»µ½ master ·ÖÖ§µÄ×îºóÒ»¸ö commit Ö®ºó¡£

´óÁ¿µÄ³·Ïú/»Ö¸´

³¡¾°: ÄãÏòij¸ö·½Ïò¿ªÊ¼ÊµÏÖÒ»¸öÌØÐÔ£¬µ«Êǰë·ÄãÒâʶµ½ÁíÒ»¸ö·½°¸¸üºÃ¡£ÄãÒѾ­½øÐÐÁËÊ®¼¸´ÎÌá½»£¬µ«ÄãÏÖÔÚÖ»ÐèÒªÆäÖеÄÒ»²¿·Ö¡£ÄãÏ£ÍûÆäËû²»ÐèÒªµÄÌύͳͳÏûʧ¡£

·½·¨: git rebase -i <earlier SHA>

Ô­Àí: -i ²ÎÊýÈà rebase ½øÈë¡°½»»¥Ä£Ê½¡±¡£Ëü¿ªÊ¼ÀàËÆÓÚÇ°ÃæÌÖÂÛµÄ rebase£¬µ«ÔÚÖØÐ½øÐÐÈκÎÌύ֮ǰ£¬Ëü»áÔÝÍ£ÏÂÀ´²¢ÔÊÐíÄãÏêϸµØÐÞ¸Äÿ¸öÌá½»¡£

rebase -i »á´ò¿ªÄãµÄȱʡÎı¾±à¼­Æ÷£¬ÀïÃæÁгöºòÑ¡µÄÌá½»¡£ÈçÏÂËùʾ£º

Ç°ÃæÁ½ÁÐÊǼü£ºµÚÒ»¸öÊÇÑ¡¶¨µÄÃüÁ¶ÔÓ¦µÚ¶þÁÐÀïµÄ SHA È·¶¨µÄ commit¡£È±Ê¡Çé¿öÏ£¬ rebase -i ¼Ù¶¨Ã¿¸ö commit ¶¼ÒªÍ¨¹ý pick ÃüÁî±»ÔËÓá£

Òª¶ªÆúÒ»¸ö commit£¬Ö»ÒªÔڱ༭Æ÷Àïɾ³ýÄÇÒ»ÐоÍÐÐÁË¡£Èç¹ûÄã²»ÔÙÐèÒªÏîÄ¿ÀïµÄÄǼ¸¸ö´íÎóµÄÌá½»£¬Äã¿ÉÒÔɾ³ýÉÏÀýÖеÄ1¡¢3¡¢4ÐС£

Èç¹ûÄãÐèÒª±£Áô commit µÄÄÚÈÝ£¬¶øÊÇ¶Ô commit ÏûÏ¢½øÐб༭£¬Äã¿ÉÒÔʹÓà reword ÃüÁî¡£ °ÑµÚÒ»ÁÐÀïµÄ pick Ìæ»»Îª reword (»òÕßÖ±½ÓÓà r)¡£ÓÐÈË»á¾õµÃÔÚÕâÀïÖ±½ÓÖØÐ´ commit ÏûÏ¢¾ÍÐÐÁË£¬µ«ÊÇÕâÑù²»¹ÜÓà ¡ªrebase -i »áºöÂÔ SHA ÁÐÇ°ÃæµÄÈκζ«Î÷¡£ËüºóÃæµÄÎı¾Ö»ÊÇÓÃÀ´°ïÖúÎÒÃǼÇס 0835fe2 ÊǸÉɶµÄ¡£µ±ÄãÍê³É rebase -i µÄ²Ù×÷Ö®ºó£¬Äã»á±»ÌáʾÊäÈëÐèÒª±àдµÄÈκΠcommit ÏûÏ¢¡£

Èç¹ûÄãÐèÒª°ÑÁ½¸ö commit ºÏ²¢µ½Ò»Æð£¬Äã¿ÉÒÔʹÓà squash »ò fixup ÃüÁÈçÏÂËùʾ£º

squash ºÍ fixup »á¡°ÏòÉÏ¡±ºÏ²¢ ¡ª ´øÓÐÕâÁ½¸öÃüÁîµÄ commit »á±»ºÏ²¢µ½ËüµÄǰһ¸ö commit Àï¡£ÔÚÕâ¸öÀý×ÓÀ 0835fe2 ºÍ 6943e85 »á±»ºÏ²¢³ÉÒ»¸ö commit£¬ 38f5e4e ºÍ af67f82 »á±»ºÏ²¢³ÉÁíÒ»¸ö¡£

Èç¹ûÄãÑ¡ÔñÁË squash£¬ Git »áÌáʾÎÒÃǸøÐºϲ¢µÄ commit Ò»¸öÐ嵀 commit ÏûÏ¢£» fixup Ôò»á°ÑºÏ²¢Çåµ¥ÀïµÚÒ»¸ö commit µÄÏûÏ¢Ö±½Ó¸øÐºϲ¢µÄ commit ¡£ ÕâÀÄãÖªµÀ af67f82 ÊÇÒ»¸ö¡°ÍêÁËÍêÁË¡­.¡± µÄ commit£¬ËùÒÔÄã»áÁô×Å 38f5e4e asµÄ commit ÏûÏ¢£¬µ«Äã»á¸øºÏ²¢ÁË 0835fe2 ºÍ 6943e85 µÄРcommit ±àдһ¸öеÄÏûÏ¢¡£

ÔÚÄã±£´æ²¢Í˳ö±à¼­Æ÷µÄʱºò£¬Git »á°´´Ó¶¥²¿µ½µ×²¿µÄ˳ÐòÔËÓÃÄãµÄ commit¡£Äã¿ÉÒÔͨ¹ýÔÚ±£´æÇ°ÐÞ¸Ä commit ˳ÐòÀ´¸Ä±äÔËÓõÄ˳Ðò¡£Èç¹ûÄãÔ¸Ò⣬ÄãÒ²¿ÉÒÔͨ¹ýÈçϰ²ÅÅ°Ñ af67f82 ºÍ 0835fe2 ºÏ²¢µ½Ò»Æð£º

ÐÞ¸´¸üÔçÆÚµÄ commit

³¡¾°: ÄãÔÚÒ»¸ö¸üÔçÆÚµÄ commit ÀïÍü¼ÇÁ˼ÓÈëÒ»¸öÎļþ£¬Èç¹û¸üÔçµÄ commit Äܰüº¬Õâ¸öÍü¼ÇµÄÎļþ¾ÍÌ«°ôÁË¡£Ä㻹ûÓÐ push£¬µ«Õâ¸ö commit ²»ÊÇ×î½üµÄ£¬ËùÒÔÄãû·¨Óà commit --amend.

·½·¨: git commit --squash <SHA of the earlier commit> ºÍ git rebase --autosquash -i <even earlier SHA>

Ô­Àí: git commit --squash »á´´½¨Ò»¸öÐ嵀 commit £¬Ëü´øÓÐÒ»¸ö commit ÏûÏ¢£¬ÀàËÆÓÚ squash! Earlier commit¡£ (ÄãÒ²¿ÉÒÔÊÖ¹¤´´½¨Ò»¸ö´øÓÐÀàËÆ commit ÏûÏ¢µÄ commit£¬µ«ÊÇ commit --squash ¿ÉÒÔ°ïÄãÊ¡ÏÂÊäÈëµÄ¹¤×÷¡£)

Èç¹ûÄã²»Ïë±»ÌáʾΪкϲ¢µÄ commit ÊäÈëÒ»ÌõÐ嵀 commit ÏûÏ¢£¬ÄãÒ²¿ÉÒÔÀûÓà git commit --fixup ¡£ÔÚÕâ¸öÇé¿öÏ£¬ÄãºÜ¿ÉÄÜ»áÓÃcommit --fixup £¬ÒòΪÄãÖ»ÊÇÏ£ÍûÔÚ rebase µÄʱºòʹÓÃÔçÆÚ commit µÄ commit ÏûÏ¢¡£

rebase --autosquash -i »á¼¤»îÒ»¸ö½»»¥Ê½µÄ rebase ±à¼­Æ÷£¬µ«ÊDZ༭Æ÷´ò¿ªµÄʱºò£¬ÔÚ commit Çåµ¥ÀïÈκΠsquash! ºÍ fixup! µÄ commit ¶¼ÒѾ­Åä¶Ôµ½Ä¿±ê commit ÉÏÁË£¬ÈçÏÂËùʾ£º

ÔÚʹÓà --squash ºÍ --fixup µÄʱºò£¬Äã¿ÉÄܲ»¼ÇµÃÏëÒªÐÞÕýµÄ commit µÄ SHA ÁË¡ª Ö»¼ÇµÃËüÊÇÇ°ÃæµÚ 1 ¸ö»òµÚ 5 ¸ö commit¡£Äã»á·¢ÏÖ Git µÄ ^ ºÍ ~ ²Ù×÷·ûÌØ±ðºÃÓá£HEAD^ ÊÇ HEAD µÄǰһ¸ö commit¡£ HEAD~4 ÊÇ HEAD ÍùǰµÚ 4 ¸ö ¨C »òÕßÒ»ÆðË㣬µ¹ÊýµÚ 5 ¸ö commit¡£

Í£Ö¹×·×ÙÒ»¸öÎļþ

³¡¾°: ÄãżȻ°Ñ application.log ¼Óµ½´úÂë¿âÀïÁË£¬ÏÖÔÚÿ´ÎÄãÔËÐÐÓ¦Óã¬Git ¶¼»á±¨¸æÔÚ application.log ÀïÓÐδÌá½»µÄÐ޸ġ£Äã°Ñ *.login ·Åµ½ÁË .gitignore ÎļþÀ¿ÉÎļþ»¹ÊÇÔÚ´úÂë¿âÀï ¡ª ÄãÔõô²ÅÄܸæËß Git ¡°³·Ïú¡± ¶ÔÕâ¸öÎļþµÄ×·×ÙÄØ£¿

·½·¨: git rm --cached application.log

Ô­Àí: ËäÈ» .gitignore »á×èÖ¹ Git ×·×ÙÎļþµÄÐ޸ģ¬ÉõÖÁ²»¹Ø×¢ÎļþÊÇ·ñ´æÔÚ£¬µ«ÕâÖ»ÊÇÕë¶ÔÄÇЩÒÔǰ´ÓÀ´Ã»ÓÐ×·×Ù¹ýµÄÎļþ¡£Ò»µ©ÓиöÎļþ±»¼ÓÈë²¢Ìá½»ÁË£¬Git ¾Í»á³ÖÐø¹Ø×¢¸ÃÎļþµÄ¸Ä±ä¡£ÀàËÆµØ£¬Èç¹ûÄãÀûÓà git add -f À´Ç¿ÖÆ»ò¸²¸ÇÁË .gitignore£¬ Git »¹»á³ÖÐø×·×ٸıäµÄÇé¿ö¡£Ö®ºóÄã¾Í²»±ØÓÃ-f À´Ìí¼ÓÕâ¸öÎļþÁË¡£

Èç¹ûÄãÏ£Íû´Ó Git µÄ×·×Ù¶ÔÏóÖÐɾ³ýÄǸö±¾Ó¦ºöÂÔµÄÎļþ£¬ git rm --cached »á´Ó×·×Ù¶ÔÏóÖÐɾ³ýËü£¬µ«ÈÃÎļþÔÚ´ÅÅÌÉϱ£³ÖÔ­·â²»¶¯¡£ÒòΪÏÖÔÚËüÒѾ­±»ºöÂÔÁË£¬ÄãÔÚ git status Àï¾Í²»»áÔÙ¿´¼ûÕâ¸öÎļþ£¬Ò²²»»áÔÙżȻÌá½»¸ÃÎļþµÄÐÞ¸ÄÁË¡£

   
2920 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

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

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

ÅäÖùÜÀíʵ¼ù
ÅäÖùÜÀí·½·¨¡¢¹¤¾ßÓëÓ¦ÓÃ
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
²úÆ··¢²¼¹ÜÀí
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

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

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

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