ÔõÑùɾ³ý Git ÖÐµÄ log
Ëæ×ÅÈí¼þ¿ª·¢µÄÒ»Ö±Éú³¤£¬°æ±¾¿ØÖÆÊÇÒ»Ïî±Ø±¸ÊÖÒÕ¡£¶ø git ×÷ΪÏÖÔÚ×îΪʢÐеİ汾¿ØÖƹ¤¾ß£¬Ò²ÊÇÿ¸ö¿ª·¢Õß±ØÐèÏàʶµÄ¹¤¾ßÖ®Ò»¡£Ëæ×Å git µÄ²Ù×÷Ô½À´Ô½ÊìϤ£¬¹ØÓÚ git ÖÐµÄ log£¨ÈÕÖ¾£©Ò²±äµÃÔ½À´Ô½Ãô¸Ð¡£ÔÚ¿ª·¢ÖУ¬ÎÒÃÇÐèҪʹÓà log À´¸ú×Ù´úÂë±ä»»µÄÀúÊ·£¬µ«ÓÐʱ¼ä£¬ÎÒÃÇÒ²ÐèҪɾ³ýһЩÃô¸ÐµÄ log ¼Í¼¡£±¾ÎĽ«ÏÈÈÝÔõÑùɾ³ý git ÖÐµÄ log ¡£
ʲôÊÇ Git µÄ log£¿
ÔÚ Git ÖУ¬log ÊÇÖ¸¼Í¼ÁË¿ÍÕ»ÖÐÿһ´ÎÌá½»£¨commit£©ÀúÊ·µÄÏÂÁÿһ´ÎÌá½»¶¼»áÓÐÒ»¸ö SHA-1 ±êʶ·û£¬¿ÉÒÔͨ¹ýËüÀ´ÅÌÎʶÔÓ¦µÄÌá½»ÀúÊ·ÐÅÏ¢¡£log ÏÂÁî¿ÉÒÔÉó²éÌض¨Ìá½»¹æÄ£µÄÀúÊ·¼Í¼¡£
ΪʲôÐèҪɾ³ý Git ÖÐµÄ log£¿
ͨ³£ÇéÐÎÏ£¬±£´æ commit µÄÀúÊ·¼Í¼ÊǺÜÖ÷ÒªµÄ£¬ÓÉÓÚËüÃÇ¿ÉÒÔ¸ú×Ùµ½´úÂëµÄ±ä»»ÀúÊ·¡£µ«ÓÐʱ¼ä£¬¿ª·¢ÕßÒ²ÐèҪɾ³ýijЩÃô¸ÐÐÅÏ¢£¬ÒÔ±£»¤´úÂëµÄÇå¾²ÐÔ¡£ºÃ±ÈÎÒÃÇÔÚÌá½»½ÓÂëʱ²»Ð¡ÐĽ«ÃÜÂë¡¢ÃÜÔ¿µÈÃô¸ÐÐÅϢ̻¶Á˳öÈ¥£¬ÄÇô¾ÍÐèҪɾ³ýÕâЩÐÅÏ¢£¬±ÜÃâ±»¶ñÒâÓû§Ê¹ÓᣴËʱ£¬É¾³ý Git ÖÐµÄ log ¼Í¼¾ÍºÜÊÇÐëÒª¡£
ÔõÑùɾ³ý Git ÖÐµÄ log£¿
ÔÚ Git ÖУ¬ÓÐÁ½ÖÖÒªÁì¿ÉÒÔɾ³ý log £¬»®·ÖÊÇ£º
1. ɾ³ý×î½üµÄ commit
ÔÚijЩÇéÐÎÏ£¬¿ª·¢ÕßÖ»ÐèҪɾ³ý×î½üµÄÒ»´Î commit £¬ºÃ±ÈÌá½»ÁËÃô¸ÐÐÅϢʱ¡£¿ÉÒÔʹÓÃÒÔÏÂÏÂÁ
git reset --hard HEAD~1
µÇ¼ºó¸´ÖÆ
Õâ¸öÏÂÁî»á½«×î½üµÄÒ»´Î commit £¨¼´ HEAD£©É¾³ý£¬²¢»ØÍ˵½ÉÏÒ»´ÎÌá½»µÄ°æ±¾£¨¼´ HEAD~1£©¡£
ÈôÊÇÏëÒªÖØÐÂÌá½»½ÓÂ룬²¢±£´æ֮ǰµÄ commit ÀúÊ·£¬¿ÉÒÔʹÓÃÒÔÏÂÏÂÁ
git push origin HEAD --force
µÇ¼ºó¸´ÖÆ
Õâ¸öÏÂÁǿÖÆÌá½»½ÓÂ룬²¢ÁýÕÖÔ¶³Ì¿ÍÕ»ÖеÄÀúÊ·¼Í¼¡£
2. ɾ³ý¶à¸ö commit
ÈôÊÇҪɾ³ý¶à¸ö commit £¬ÔòʹÓÃÏÂÁ
git rebase -i commit_id
µÇ¼ºó¸´ÖÆ
Õâ¸öÏÂÁîÖÐµÄ commit_id ´ú±íÄãÏëҪɾ³ýµÄ commit °æ±¾µÄÇ°Ò»¸ö commit id¡£Ö´ÐдËÏÂÁîºó£¬»á·¿ªÒ»¸ö½»»¥Ê½µÄ±à¼Æ÷£¬½«ÆäÖÐµÄ pick ÐÞ¸ÄΪ edit £¬ÔÙÉúÑÄÍ˳ö¡£
½Ó×Å£¬Ö´ÐÐÒÔÏÂÏÂÁ
git reset HEAD^
µÇ¼ºó¸´ÖÆ
Õâ¸öÏÂÁ½« git »Ø¹öµ½ÉÏÒ»¸ö commit £¬°ÑÕâ´Î commit µÄ¸ü¸Ä·¿ªµ½ÊÂÇéÇø¡£
Íê³ÉÐÞ¸´ºó£¬Ö´ÐÐÒÔÏÂÏÂÁ
git add . git commit --amend git rebase --continue
µÇ¼ºó¸´ÖÆ
Õâ¸öÏÂÁî»á½«ÐÞ¸ÄÌá½»µ½ÏìÓ¦µÄ commit ÖС£ÈôÓöµ½³åÍ»£¬ÔòÐèÒª¾ÙÐжÔÓ¦µÄºÏ²¢²Ù×÷¡£
×ܽá
Git ÊÇÒ»¸öºÜÊÇÇ¿Ê¢µÄ°æ±¾¿ØÖƹ¤¾ß£¬log ÏÂÁîÒ²ÊÇ¿ª·¢±Ø±¸µÄÒ»ÏîÊÖÒÕ¡£µ±ÎÒÃÇÐèҪɾ³ý log ¼Í¼ʱ£¬¿ÉÒÔʹÓÃÒÔÉÏÌáµ½µÄÒªÁì¡£¿ÉÊÇ£¬ÔÚÖ´ÐÐÕâЩ²Ù×÷֮ǰ£¬ÎÒÃÇÓ¦¸ÃÔÚ×Ðϸ˼Ë÷£¬×èÖ¹²»ÐëÒªµÄΣº¦¡£ÓÉÓÚɾ³ý commit ¼Í¼»áÆÆËð Git ÖдúÂëµÄÍêÕûÐÔºÍÒ»ÖÂÐÔ£¬ÕâÓпÉÄÜ»áÔì³É¼«´óµÄÀ§ÈźÍËðʧ¡£
ÒÔÉϾÍÊÇÔõÑùɾ³ý Git ÖÐµÄ logµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡