Ïê½âgitÕÒ»Øɾ³ýÎļþµÄ¼¸ÖÖÒªÁì
ÔÚʹÓà git ¾ÙÐдúÂë°æ±¾¿ØÖÆʱ£¬ÓÐʱ¼ä»áÎóɾ³ýij¸öÎļþ£¬Õâʱ¼äÎÒÃÇ¿ÉÒÔͨ¹ý git µÄһЩÉñÆæ²Ù×÷½«ÕâЩÎóɾ³ýµÄÎļþÕÒ»ØÀ´£¬±¾ÎĽ«ÏÈÈÝ git ÕÒ»Øɾ³ýÎļþµÄ¼¸ÖÖÒªÁì¡£
1. ʹÓà checkout »Ö¸´É¾³ýµÄÎļþ
ÈôÊÇÎÒÃÇÎóɾ³ýÁËij¸öÎļþ£¬¿ÉÒÔͨ¹ýʹÓà checkout ÏÂÁîÀ´»Ö¸´£º
git checkout -- <file_path></file_path>
µÇ¼ºó¸´ÖÆ
Õâ¸öÏÂÁîµÄ¼ÄÒåÊǽ«¸ÃÎļþ»Ö¸´µ½×îеİ汾¡£ÈôÊǸÃÎļþÒ»¾Ìá½»µ½¹ý Git ÖУ¬Ôò»á»Ö¸´µ½×î½üÒ»´ÎÌá½»¸ÃÎļþµÄ°æ±¾¡£ÈôÊÇÕâ¸öÎļþûÓÐÌá½»¹ý£¬ÓÖ±»Îóɾ³ýÁË£¬Ôò¿ÉÒÔͨ¹ý checkout ÏÂÁî»Ö¸´ÎªÄ¿½ñδÌá½»µÄ״̬¡£
ÐèҪעÖصÄÊÇ£¬Ê¹Óà checkout ÏÂÁî»áÁýÕÖµôÍâµØµÄÐ޸ģ¬ÒÔÊÇÔÚʹÓÃÇ°ÐèÒª½«ÍâµØµÄÐÞË¢ÐÂÐб¸·Ý»òÕßÌá½»µ½°æ±¾¿â¡£
2. ʹÓà reset »Ö¸´É¾³ýµÄÎļþ
ͬÑùµÄ£¬ÎÒÃÇÒ²¿ÉÒÔʹÓà reset ÏÂÁî¾ÙÐлָ´Îļþ£º
git reset HEAD <file_path></file_path>
µÇ¼ºó¸´ÖÆ
Õâ¸öÏÂÁîµÄ¼ÄÒåÊǽ«¸ÃÎļþ´ÓÔÝ´æÇø»Ö¸´µ½ÊÂÇéÇø£¬Ò²¾ÍÊÇ×÷·Ï¶Ô¸ÃÎļþµÄÔÝ´æ¡£ÈôÊÇÎÒÃǸոս«¸ÃÎļþɾ³ýʱûÓÐÖ´ÐÐ commit ÏÂÁÔò¸ÃÎļþÊÇÔÚÔÝ´æÇø±»É¾³ýµÄ¡£Ê¹Óà reset ÏÂÁî¿ÉÒÔ½«¸ÃÎļþ´ÓÔÝ´æÇø»Ö¸´µ½ÊÂÇéÇø¡£
ÐèҪעÖصÄÊÇ£¬Ê¹Óà reset ÏÂÁî²»»áɾ³ýÎļþ£¬Ö»Êǽ«Îļþ´ÓÔÝ´æÇøÒƶ¯»ØÊÂÇéÇø¡£ÈôÊÇÐèÒª½«ÎļþÍêȫɾ³ý£¬Ôò¿ÉÒÔʹÓà rm ÏÂÁÆäɾ³ý£¬È»ºóÔÙʹÓà commit ÏÂÁîÌύɾ³ý²Ù×÷¡£
3. ʹÓà reflog »Ö¸´É¾³ýµÄÎļþ
ÈôÊÇÎÒÃÇÎóɾ³ýij¸öÎļþ£¬²¢ÇÒ֮ǰµÄһЩ²Ù×÷ÒѾÌá½»µ½ÁË°æ±¾¿â£¬ÔòÎÒÃÇ¿ÉÒÔʹÓà Git µÄ reflog ÏÂÁîÀ´ÕÒ»ØÕâ¸öÎļþ¡£
reflog ÏÂÁî¼Í¼ÁË Git µÄËùÓвÙ×÷£¬°üÀ¨Ã¿´ÎÌá½»¡¢ºÏ²¢¡¢ÖØÖõȡ£ÎÒÃÇ¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁîÉó²é reflog£º
git reflog
µÇ¼ºó¸´ÖÆ
Õâ¸öÏÂÁî»áÁгö Git µÄËùÓвÙ×÷¼Í¼£¬°üÀ¨²Ù×÷µÄ SHA1 °æ±¾ºÅºÍÌá½»µÄ×¢ÊÍ¡£¼Í¼µÄ±àºÅԽС£¬Ô½¿¿½üÄ¿½ñ״̬¡£
ÎÒÃÇ¿ÉÒÔͨ¹ýÔÚ reflog ÖÐÕÒµ½Îóɾ³ýÎļþµÄ SHA1 °æ±¾ºÅ£¬È»ºóʹÓÃÒÔÏÂÏÂÁî¾ÙÐлָ´£º
git checkout HEAD@{<commit-number>} <file_path></file_path></commit-number>
µÇ¼ºó¸´ÖÆ
ÆäÖÐ ÌåÏÖÒª»Ö¸´µÄÌá½»°æ±¾ºÅ¡£ÎÒÃÇ¿ÉÒÔÔÚ reflog ÖÐÕÒµ½Îóɾ³ýÎļþµÄ commit-number£¬È»ºó½«ÆäÌæ»»µ½ÉÏÃæµÄÏÂÁîÖС£
ÐèҪעÖصÄÊÇ£¬ÈôÊÇ֮ǰ¾ÙÐÐÁ˺ϲ¢»òÕßÖØÖòÙ×÷£¬ÔÚʹÓà reflog »Ö¸´Îļþʱ¿ÉÄܻᱬ·¢³åÍ»£¬ÐèÒªÊÖ¶¯½â¾ö³åÍ»¡£
½áÂÛ
Îóɾ³ýÎļþÊÇ¿ª·¢Ö°Ô±¾³£Óöµ½µÄÎÊÌ⣬¿ÉÊÇ Git ÌṩÁËÐí¶àÒªÁìÀ´×ÊÖúÎÒÃÇÕÒ»ØÕâЩÎóɾ³ýµÄÎļþ¡£±¾ÎÄÏÈÈÝÁËʹÓà checkout¡¢reset ºÍ reflog ¾ÙÐÐÎļþ»Ö¸´µÄÒªÁ죬ÐèҪƾ֤²î±ðµÄ³¡¾°Ñ¡ÔñºÏÊʵÄÒªÁì¾ÙÐвÙ×÷¡£ÔÚ¾ÙÐлָ´²Ù×÷֮ǰ£¬ÐèҪעÖر¸·ÝÍâµØÐ޸ĻòÕßÌá½»µ½°æ±¾¿â£¬×èÖ¹·ºÆðÊý¾ÝɥʧµÄÇéÐΡ£
ÒÔÉϾÍÊÇÏê½âgitÕÒ»Øɾ³ýÎļþµÄ¼¸ÖÖÒªÁìµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡