ÉîÈëÏàʶgit rebaseµÄʹÓÃÒªÁì
gitÊÇÏÖÔÚ×îÊ¢Ðеİ汾¿ØÖƹ¤¾ßÖ®Ò»£¬Ëü´øÀ´ÁËһЩ¸Ä±ä£¬°üÀ¨Ö§³Ö¶à¸ö·ÖÖ§£¬²¢ÇÒÓÐÖúÓÚÖÎÀí´úÂë°æ±¾¸üС£µ±ÎÒÃÇÔÚÍŶÓÖÐÏàÖú¿ª·¢Ê±£¬ÍùÍù»áÓöµ½Ò»Ð©Ê±¼äÐèÒªºÏ²¢·ÖÖ§£¬¶øÕâʱgit rebaseµÄʹÓþÍÏԵü«ÎªÖ÷Òª¡£ÏÂÃæÎÒÃÇÀ´Ò»ÆðÏàʶһÏÂgit rebaseµÄÓ÷¨¡£
Ê×ÏÈ£¬ÎÒÃÇÏÈÏàʶһÏÂGit·ÖÖ§ºÏ²¢µÄÊÂÇé·½·¨¡£Git·ÖÖ§ºÏ²¢ÓÐÁ½ÖÖ·½·¨£ºÒ»ÖÖÊǺϲ¢·ÖÖ§£¬×ÝÈ»Óà git merge ÏÂÁËü½«Á½¸ö·ÖÖ§µÄÐ޸ĺϲ¢µ½Ò»Æð¡£ÁíÒ»ÖÖÊÇʹÓÃGit Rebase¡£Git Rebase¿ÉÒÔ½«Ò»¸ö·ÖÖ§µÄÐÞ¸ÄÓ¦Óõ½ÁíÒ»¸ö·ÖÖ§ÉÏ¡£ÕâÖÖ·½·¨±ÈºÏ²¢·ÖÖ§Ô½·¢ÇåÎú¡¢¼òÆÓ£¬Í¬Ê±»á±¬·¢ÕûÆëµÄ Git ÈÕÖ¾¡£
Git RebaseµÄÖ÷Òª×÷ÓÃÊÇÖØÐÂÕûºÏÌá½»£¬²¢½«ËüÃÇ·ÅÔÚÒ»¸öÇå½àµÄÌá½»¼Í¼ÖС£Ëü¿ÉÒÔÈÃÎÒÃǵÄÌá½»ÀúÊ·¼á³ÖÕûÆ룬»¹Äܹ»×ÊÖúÎÒÃǽâ¾öºÏ²¢³åÍ»µÄÎÊÌâ¡£Git RebaseµÄ²Ù×÷Àú³Ì±ÈMerge²Ù×÷Ô½·¢Öش󣬿ÉÊÇÈÔÈ»ÊÇÒ»¸öºÜÊÇÓÐÓõŤ¾ß¡£
ÏÂÃæÎÒÃÇͨ¹ýÒ»¸öʵÀýÀ´Ñ§Ï°Git RebaseµÄÓ÷¨¡£
Ê×ÏÈ£¬ÎÒÃÇÏȽ¨ÉèÁ½¸ö·ÖÖ§£ºmasterºÍdev¡£
git checkout -b master git checkout -b dev
µÇ¼ºó¸´ÖÆ
ÔÚdev·ÖÖ§ÉÏ£¬ÎÒÃÇн¨Ò»¸öÎļþ²¢Ìí¼ÓÄÚÈÝ£¬È»ºóÌá½»¡£
touch file.txt echo "This is a file." >> file.txt git add . git commit -m 'Added file.txt'
µÇ¼ºó¸´ÖÆ
Çл»»Ømaster·ÖÖ§£¬²¢ÐÞ¸ÄÎļþÄÚÈÝ¡£
git checkout master echo "This is a modified file." > file.txt git add . git commit -m 'Modified file.txt'
µÇ¼ºó¸´ÖÆ
ÏÖÔÚÎÒÃÇÒª½«dev·ÖÖ§µÄÌá½»Ó¦Óõ½master·ÖÖ§ÉÏ¡£ÎÒÃÇ¿ÉÒÔʹÓà git rebase ÏÂÁîÀ´Íê³É´Ë²Ù×÷¡£
git rebase dev
µÇ¼ºó¸´ÖÆ
Ö´ÐÐÒÔÉÏÏÂÁîºó£¬Git»á½«dev·ÖÖ§ÉϵÄÌá½»Ó¦Óõ½master·ÖÖ§ÉÏ£¬ÈôÊÇ·ºÆðºÏ²¢³åÍ»£¬ÎÒÃÇÐèÒªÊÖ¶¯½â¾öËüÃÇ¡£
Git RebaseµÄ×¢ÖØÊÂÏ
Ëü²»Ó¦¸ÃÔÚ¹«¹²·ÖÖ§ÉÏÖ´ÐС£
Ö´ÐÐGit Rebase²Ù×÷¿ÉÄÜ»á¸Ä±äÌá½»ÀúÊ·£¬Òò´ËÓ¦¸ÃÉóÉ÷ʹÓÃËü¡£
ÈôÊǶà¸ö¿ª·¢ÕßÔÚͳһ·ÖÖ§ÉÏÏàÖú¿ª·¢£¬ÔòÓ¦¸ÃÔںϲ¢Ö®Ç°¶ÔÆä¾ÙÐÐе÷¡£
ÔÚÏàÖú¿ª·¢ÖУ¬Git RebaseÊÇÒ»¸öºÜÊÇÖ÷ÒªµÄ¹¤¾ß¡£Ëü¿ÉÒÔÈÃÎÒÃǵÄÌá½»ÀúÊ·¼á³ÖÕûÆë¡¢ÓÐÐò¡£±ðµÄ£¬Ëü»¹¿ÉÒÔ×ÊÖúÎÒÃǽâ¾öºÏ²¢³åÍ»¡£Ïàʶ²¢×¼È·µØʹÓÃGit RebaseÊÇÿ¸ö¿ª·¢Õß±ØÐèÕÆÎÕµÄÊÖÒÕÖ®Ò»¡£
ÒÔÉϾÍÊÇÉîÈëÏàʶgit rebaseµÄʹÓÃÒªÁìµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡