ÁÄÁÄÔõÑùʹÓÃgit×÷·ÏÐÞ¸Ä
ÔÚʹÓÃgit¾ÙÐа汾¿ØÖÆʱ£¬ÓÐʱÎÒÃÇ»áÎóÐÞ¸ÄÁËÎļþ»òÕß²»ÏëÌύijЩÎļþ£¬¶øÓÖ²»Ïëɾ³ýËü¡£Õâʱ£¬ÎÒÃÇ¿ÉÒÔʹÓÃgit×÷·ÏÐÞ¸ÄÏÂÁîÀ´×÷·ÏÕâЩÐ޸ġ£±¾ÎĽ«ÏÈÈÝÔõÑùʹÓÃgit×÷·ÏÐ޸ġ£
Ò»¡¢Ê¹Óà git checkout ×÷·ÏÐÞ¸Ä
git checkout ÏÂÁî¿ÉÒÔÓÃÀÍÆÈ´»·ÖÖ§»òÕ߻ָ´Îļþ¡£µ±ÎÒÃÇʹÓà git checkout ÎļþÃû ÏÂÁîÀ´»Ö¸´Îļþʱ£¬Ëü»á½«¸ÃÎļþ»ØÍ˵½×î½üµÄÌύ״̬¡£Ò²¾ÍÊÇ˵£¬¸ÃÎļþµÄËùÓÐÐ޸Ķ¼½«±»×÷·Ï¡£
ÀýÈ磬ÎÒÃǶÔÎļþ a.txt ¾ÙÐÐÁËÐ޸ģ¬ÏëÒª×÷·Ï´ËÐ޸ģ¬¿ÉÒÔʹÓÃÈçÏÂÏÂÁ
$ git checkout a.txt
µÇ¼ºó¸´ÖÆ
Ö´ÐÐÉÏÊöÏÂÁîºó£¬git »á½« a.txt Îļþ»ØÍ˵½×î½üÒ»´ÎÌύʱµÄ״̬¡£
¶þ¡¢Ê¹Óà git reset ×÷·ÏÌá½»
ÓÐʱ¼äÎÒÃDz»Ð¡ÐĽ«Ò»Ð©²»ÐèÒªÌá½»µÄÎļþÌí¼Óµ½ÁËÌá½»ÖУ¬»òÕßÌá½»ÁËһЩ¹ýʧµÄÎļþ¡£Õâʱ£¬ÎÒÃÇ¿ÉÒÔʹÓà git reset ÏÂÁîÀ´×÷·ÏÕâЩÌá½»¡£
¼ÙÉèÎÒÃÇ×îеÄÌύΪ commit1£¬ÎÒÃÇÐèÒª×÷·Ï¸ÃÌá½»£¬Ê¹ÓÃÈçÏÂÏÂÁ
$ git reset HEAD^
µÇ¼ºó¸´ÖÆ
ÉÏÊöÏÂÁîÖУ¬HEAD^ ÌåÏÖ»ØÍ˵½ÉÏÒ»´ÎÌá½»£¬Ò²¾ÍÊÇ commit1 µÄÇ°Ò»´ÎÌá½»¡£Ö´ÐиÃÏÂÁîºó£¬ÎÒÃÇ¿ÉÒÔ¼ÌÐøÐÞ¸Ä×ðÁú¿Ê±´úÂ룬²¢ÖØÐÂÌá½»¡£
ÐèҪעÖصÄÊÇ£¬git reset ÏÂÁîµÄʹÓÃÐèÒªÉóÉ÷£¬ÓÉÓÚËü»áɾ³ýÀúÊ·Ìá½»£¬ÈôÊDz»Ð¡ÐĻָ´²»ÁËÌá½»£¬¿ÉÄܻᵼÖÂÑÏÖصĴúÂëɥʧ¡£
Èý¡¢Ê¹Óà git revert ×÷·ÏÌá½»
ÁíÍ⣬ÎÒÃÇ»¹¿ÉÒÔʹÓà git revert ÏÂÁîÀ´×÷·ÏÌá½»¡£git revert ÏÂÁî»á½¨ÉèÒ»¸öеÄÌá½»£¬¸ÃÌá½»»á·´×ªÎÒÃÇÖ¸¶¨µÄÌá½»ÄÚÈÝ¡£
ÀýÈ磬ÎÒÃÇÐèÒª×÷·Ï commit1£¬¿ÉÒÔʹÓÃÈçÏÂÏÂÁ
$ git revert commit1
µÇ¼ºó¸´ÖÆ
Ö´ÐÐÉÏÊöÏÂÁîºó£¬git »á½¨ÉèÒ»¸öÃûΪ “Revert commit1” µÄÐÂÌá½»£¬¸ÃÌá½»»áɾ³ý commit1 µÄËùÓÐÐ޸ġ£ÐèҪעÖصÄÊÇ£¬git revert ÏÂÁî²»»áɾ³ýÀúÊ·Ìá½»£¬Òò´ËÔ½·¢Çå¾²ºÍ¿É¿¿¡£
×ܽá
×÷·ÏÐÞ¸ÄÊÇgitÖг£ÓõIJÙ×÷Ö®Ò»£¬¿ÉÒÔÓÐÓÃ×èÖ¹Ìá½»Ö¯Îó»ò²»ÐëÒªµÄÎļþ¡£±¾ÎÄÏÈÈÝÁËÈýÖÖ³£ÓÃµÄ git ×÷·ÏÐ޸ļƻ®£º git checkout¡¢git reset ºÍ git revert¡£ÎÒÃÇ¿ÉÒÔƾ֤ÏÖÕæÏàÐÎÑ¡ÔñÏìÓ¦µÄÒªÁìÀ´¾ÙÐÐ×÷·ÏÐ޸IJÙ×÷¡£
ÒÔÉϾÍÊÇÁÄÁÄÔõÑùʹÓÃgit×÷·ÏÐ޸ĵÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡