һЩ´¦Öóͷ£gitÍâµØÎóɾµÄÒªÁìºÍ¼¼ÇÉ
gitÊÇÆÕ±éʹÓõİ汾¿ØÖƹ¤¾ß£¬¿ÉÒÔÀû±ãµØÖÎÀí´úÂë¼°ÆäÀúÊ·¼Í¼¡£È»¶ø£¬ÓÐʱÎÒÃǻ᲻СÐÄÔÚÍâµØÎóɾÎļþ»òÎļþ¼Ð£¬Õâ¶Ô´úÂë¿âµÄÍêÕûÐÔºÍÇå¾²ÐÔ¶¼»á±¬·¢Ó°Ïì¡£ÕâƪÎÄÕ½«ÏÈÈÝһЩ´¦Öóͷ£gitÍâµØÎóɾµÄÒªÁìºÍ¼¼ÇÉ¡£
ʹÓÃgitÏÂÁî»Ö¸´Îļþ
µ±ÎÒÃÇÔÚÍâµØÎóɾÁËÎļþ»òÎļþ¼Ðʱ£¬¿ÉÒÔʹÓÃgitÏÂÁîÀ´»Ö¸´ËüÃÇ¡£Ê×ÏÈ£¬ÐèÒªÖªµÀɾ³ýµÄÎļþ»òÎļþ¼ÐµÄ׼ȷ·¾¶ºÍÃû³Æ¡£È»ºó£¬ÔÚÖÕ¶ËÖÐʹÓÃÒÔÏÂgitÏÂÁ
git checkout -- path/to/file
µÇ¼ºó¸´ÖÆ
ÈôÊÇÒª»Ö¸´Õû¸öÎļþ¼Ð£¬¿ÉÒÔʹÓÃÒÔÏÂÏÂÁ
git checkout -- path/to/folder/
µÇ¼ºó¸´ÖÆ
Õ⽫»Ö¸´±»É¾³ýµÄÎļþ»òÎļþ¼Ð£¬²¢ÁýÕÖÄ¿½ñ·ÖÖ§ÖеÄÏìÓ¦Îļþ¡£
ʹÓÃgit logÉó²éÀúÊ·¼Í¼
ÈôÊÇÄ㲻ȷ¶¨±»ÎóɾµÄÎļþµÄ·¾¶ºÍÃû³Æ£¬¿ÉÒÔʹÓÃgit logÏÂÁîÉó²é×î½üµÄÌá½»¼Í¼£¬ÏàʶÄÄЩÎļþ±»É¾³ýÁË¡£ÔÚÖÕ¶ËÖÐÊäÈëÒÔÏÂÏÂÁ
git log --oneline --diff-filter=D
µÇ¼ºó¸´ÖÆ
Õ⽫ÏÔʾËùÓб»É¾³ýµÄÎļþ¼°Æäɾ³ýµÄÌá½»¼Í¼¡£Äã¿ÉÒÔ¸´ÖƸÃÌá½»¼Í¼µÄSHAÖµ£¬È»ºóʹÓÃÒÔÏÂÏÂÁîÀ´»Ö¸´Ëü£º
git checkout <commit> -- path/to/file</commit>
µÇ¼ºó¸´ÖÆ
ʹÓÃgit stash»Ö¸´±»ÎóɾµÄÐÞ¸Ä
ÈôÊÇÄãÎóɾÁËij¸öÎļþµÄÐ޸ģ¬µ«ÉÐδÌá½»µ½ÍâµØ¿ÍÕ»£¬¿ÉÒÔʹÓÃgit stashÏÂÁîÀ´»Ö¸´ËüÃÇ¡£ÔÚÖÕ¶ËÖУ¬ÊäÈëÒÔÏÂÏÂÁîÀ´ÉúÑı任£º
git stash save "My changes"
µÇ¼ºó¸´ÖÆ
È»ºó¿ÉÒÔʹÓÃgit stash listÏÂÁîÁгöËùÓÐÉúÑĵı任£¬ÕÒµ½ÄãÏë»Ö¸´µÄ±ä»»£¬²¢Ê¹ÓÃÒÔÏÂÏÂÁÆäÓ¦Óõ½ÄãµÄ·ÖÖ§ÉÏ£º
git stash apply stash@{0}
µÇ¼ºó¸´ÖÆ
ʹÓÃgit reset×÷·Ïɾ³ý²Ù×÷
ÈôÊÇÄãÎóɾÁËÎļþ»òÎļþ¼Ð²¢Ìá½»µ½ÁËÍâµØ¿ÍÕ»£¬¿ÉÒÔʹÓÃgit resetÏÂÁî×÷·Ïɾ³ý²Ù×÷¡£ÔÚÖÕ¶ËÖÐÊäÈëÒÔÏÂÏÂÁ
git reset HEAD^
µÇ¼ºó¸´ÖÆ
Õ⽫×÷·Ï×î½üµÄÌá½»£¬²¢±£´æ±»É¾³ýµÄÎļþºÍÎļþ¼Ð¡£È»ºó£¬Äã¿ÉÒÔʹÓÃgit checkoutÏÂÁî»Ö¸´±»É¾³ýµÄÎļþ¡£
ʹÓÃgit reflog²éÕÒ±»É¾³ýµÄÌá½»
ÈôÊÇÎóɾµÄÎļþ»òÎļþ¼ÐÒѱ»Ìá½»µ½ÍâµØ¿ÍÕ»£¬²¢ÇÒʹÓÃÁËgit resetÏÂÁîÀ´×÷·Ïɾ³ý²Ù×÷£¬Äã¿ÉÒÔʹÓÃgit reflogÏÂÁî²éÕÒ±»É¾³ýµÄÌá½»¡£ÔÚÖÕ¶ËÖÐÊäÈëÒÔÏÂÏÂÁ
git reflog
µÇ¼ºó¸´ÖÆ
Õ⽫ÏÔʾ×î½üµÄgit²Ù×÷¼Í¼¡£Äã¿ÉÒÔÔÚÁбíÖвéÕÒ×÷·Ïɾ³ý²Ù×÷µÄSHAÖµ£¬È»ºóʹÓÃgit checkoutÏÂÁÆä»Ö¸´¡£
×ܽá
ÔÚgitÖÐÎóɾÎļþ»òÎļþ¼ÐÊǺܳ£¼ûµÄÎÊÌâ¡£ÎÞÂÛÊÇÔÚÎóɾǰÕÕ¾ÉÎóɾ֮ºó£¬Ä㶼¿ÉÒÔͨ¹ýÖÖÖÖÏÂÁîºÍ¼¼ÇÉÀ´»Ö¸´´úÂë¿âµÄÍêÕûÐÔºÍÇå¾²ÐÔ¡£ÕâЩҪÁìÖÐÓÐЩ¿ÉÒÔÔÚÍâµØ¿ÍջʹÓã¬ÓÐЩ¿ÉÒÔÔÚÔ¶³Ì¿ÍջʹÓ㬵«ÎÞÂÛÔõÑù£¬¼á³ÖÉóÉ÷ºÍÄÍÐÄ£¬Ê¹ÓÃ׼ȷµÄÒªÁ죬×ÜÄÜÕһر»É¾³ýµÄÎļþ¡£
ÒÔÉϾÍÊÇһЩ´¦Öóͷ£gitÍâµØÎóɾµÄÒªÁìºÍ¼¼ÇɵÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡