gitÔõôɾ³ý´óÎļþ£¨ÈýÖÖÒªÁ죩
¹ØÓÚʹÓÃgit¾ÙÐа汾ÖÎÀíµÄ¿ª·¢ÕßÀ´Ëµ£¬É¾³ý²»ÐëÒªµÄ´óÎļþÊÇÒ»¸ö³£¼ûµÄʹÃü¡£ÕâЩ´óÎļþÍùÍù»áÕ¼Óдó×ڵĴ洢¿Õ¼ä£¬µ¼Ö¿ÍÕ»±äµÃ´Ö±¿¡£ÈôÊDz»ÊµÊ±´¦Öóͷ£ÕâЩ´óÎļþ£¬»áÑÏÖØÓ°Ïì´úÂëµÄ¿ª·¢ºÍ°²ÅÅ¡£
ÄÇô£¬ÔõÑùÔÚGitÖÐɾ³ý´óÎļþÄØ£¿
µÚÒ»ÖÖÒªÁìÊÇʹÓùýÂËÎļþ¡£¿ÉÒÔͨ¹ý.gitignoreÎļþÀ´ºöÂÔһЩ²»ÐëÒªµÄÎļþ£¬´Ó¶øïÔÌÌá½»µÄÊý¾ÝÁ¿¡£ÀýÈ磬¿ÉÒÔ½«ËùÓеĶþ½øÖÆÎļþ¶¼Ìí¼Óµ½.gitignoreÎļþÖУ¬ÕâÑù¾ÍÄܹ»ºöÂÔµôËüÃÇ¡£¿ÉÊÇ£¬ÈôÊÇÕâЩÎļþÒѾ±»Ìá½»µ½¿ÍÕ»ÖУ¬ÄÇôÕâÑùµÄÒªÁì¾ÍÎÞ·¨Íêȫɾ³ýËüÃÇ¡£Òò´Ë£¬ÐèҪ˼Á¿ÏÂÃæÏÈÈݵÄÁíÒ»ÖÖÒªÁì¡£
µÚ¶þÖÖÒªÁìÊÇʹÓÃGit LFS£¨Large File Storage£©¡£Git LFSÊÇÒ»¸öGitÀ©Õ¹£¬ÓÃÓÚ´æ´¢´óÐͶþ½øÖÆÎļþ£¬ÀýÈçͼÏñ¡¢ÊÓƵºÍÒôƵÎļþµÈ¡£Ê¹ÓÃGit LFS£¬¿ÉÒÔ½«ÕâЩ´óÎļþÒƳöGit¿ÍÕ»£¬´Ó¶ø¼õÇáGit¿ÍÕ»µÄ¸ººÉ¡£Git LFSÔÚGit²Ù×÷ÖеÄʹÓÃÒªÁìÓëͨÀýGit²Ù×÷ºÜÊÇÏàËÆ£¬Ö»ÐèÒªÉÔ΢¾ÙÐÐһЩÉèÖü´¿É¡£Ïêϸ¶øÑÔ£¬Ê×ÏÈÐèҪװÖÃGit LFSÀ©Õ¹£¬È»ºóÔÚÏîÄ¿ÖÐÆôÓÃËü¡£½ÓÏÂÀ´£¬¿ÉÒÔ½«´óÎļþÌá½»µ½Git LFS¿âÖУ¬ÕâÑù¾Í¿ÉÒÔÏñ²Ù×÷ͨË×Git¿ÍÕ»Ò»Ñù²Ù×÷ÕâЩ´óÎļþ¡£ÐèҪעÖصÄÊÇ£¬´ËʱÐÞ¸ÄÎļþʱÐèҪʹÓÃGit LFSÏÂÁî¾ÙÐÐÌá½»ºÍÍÆËÍ¡£
µÚÈýÖÖÒªÁìÊÇʹÓÃGit Filter-branch¡£ÈôÊÇÒѾ½«´óÎļþÌá½»µ½Git¿ÍÕ»ÖУ¬¿ÉÒÔʹÓÃGit Filter-branchÏÂÁîɾ³ýËüÃÇ¡£Git Filter-branchÊÇÒ»¸öGitÏÂÁ¿ÉÒÔÖØдGit¿ÍÕ»µÄÌá½»ÀúÊ·£¬´Ó¶øɾ³ýÌض¨Îļþ»òÎļþ¼Ð¡£Ïêϸ¶øÑÔ£¬ÐèҪʹÓÃÒÔÏÂÏÂÁ
git filter-branch --tree-filter 'rm -f path-to-file' HEAD
µÇ¼ºó¸´ÖÆ
ÆäÖУ¬¡°path-to-file¡±ÊÇҪɾ³ýµÄÎļþ·¾¶¡£Ö´ÐÐÉÏÊöÏÂÁîºó£¬Git½«É¨ÃèÕû¸öÌá½»ÀúÊ·£¬²¢É¾³ý°üÀ¨¡°path-to-file¡±µÄÌá½»¡£
×ÛÉÏËùÊö£¬É¾³ý²»ÐëÒªµÄ´óÎļþÊÇÒ»¸ö·Ç¾³£¼ûµÄGitʹÃü¡£¿ÉÒÔʹÓùýÂËÎļþ¡¢Git LFSºÍGit Filter-branchµÈÒªÁìÀ´Íê³ÉÕâ¸öʹÃü£¬ÏêϸҪÁìӦƾ֤ÇéÐÎÑ¡Ôñ¡£ÎÞÂÛʹÓÃÄÄÖÖÒªÁ죬¶¼ÐèҪȷ±£ÔÚɾ³ý´óÎļþ֮ǰ¾ÙÐб¸·Ý£¬ÒÔ±ÜÃâ²»ÐëÒªµÄËðʧ¡£
ÒÔÉϾÍÊÇgitÔõôɾ³ý´óÎļþ£¨ÈýÖÖÒªÁ죩µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡