Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Git´úÂë·À¶ªÖ¸ÄÏ
 
  2515  次浏览      27
 2019-2-18
 
±à¼­ÍƼö:

±¾ÎÄÀ´×Ôoschina£¬ÎÄÕÂÈÕ³£Ê¹ÓÃGitʱÓöµ½µÄ³£¼ûµÄ´íÎó¼°Æä·¢ÉúÔ­ÒòµÈÏà¹ØÄÚÈÝ¡£

ÎÒÃÇÔÚÈÕ³£Ê¹ÓÃGitµÄ¹ý³ÌÖо­³£»á·¢ÉúһЩÒâÍâÇé¿ö£¬Èç¹û´¦Àí²»µ±£¬Ôò¿ÉÄÜ»á³öÏÖ´úÂ붪ʧµÄ¼ÙÏó¡£±¾ÎĽ«Õë¶ÔIDEA&GitÈÕ³£¿ª·¢ÖеÄһЩ³¡¾°£¬ÎªÄã²ã²ã²¦¿ªÃÔÎí£¬½âÎö³£¼ûµÄ´íÎó¼°Æä·¢ÉúÔ­Òò£¬ÈÃÄã´Ó´Ë²»ÔÙ¾åÅ´úÂë³åÍ»»ò¶ªÊ§ÎÊÌâ¡£

Ϊ¼ò»¯ÎÊÌ⣬±¾ÎļÙÉèËùÓÐÍŶӳÉÔ±¾ùÔÚͬһ·ÖÖ§ÉÏ¿ª·¢¡£

ÎÄÖиüвÙ×÷ÊÇÖ¸ÔÚIDEAÖе¥»÷²Ëµ¥VCS-Update Project...¡£

1. ³£¼û¹¤×÷Á÷³Ì

ͨ³£µ±ÄãÔçÉϵ½¹«Ë¾´ò¿ªµçÄÔ£¬Ê×ÏÈÖ´ÐиüвÙ×÷(µ¥»÷IDEA²Ëµ¥VCS-Update Project...)£¬È»ºó¿ªÊ¼Óä¿ìµØ±àÂë¡£±àÂëÍê³Éºóͨ³£ÒªÖ´ÐÐÒÔϼ¸¸ö²Ù×÷£º

¸üвÙ×÷

´´½¨±¾´ÎÌá½»

ÍÆËÍÔ¶³Ì·ÖÖ§

1.1 ¸üвÙ×÷

ΪÁ˱£Ö¤GitÓµÓÐÒ»¸ö¼ò½àµÄÌá½»ÀúÊ·£¬ÔÚÌύ֮ǰÐèÒªÏÈÖ´ÐиüвÙ×÷£¬¼´ÔÚIDEAÖÐÒÀ´Îµ¥»÷²Ëµ¥VCS-Update Project...£¬»òÕß°´ÏÂCtrl+T£¬µ¯³öÈçÏ´°¿Ú£º

´°¿Ú×ó²àÑ¡Ôñ¸üÐÂÀàÐÍ(Update Type)£º

Merge£º¸üÐÂʱִÐкϲ¢²Ù×÷¡£µÈ¼ÛÓÚÖ´ÐÐgit fetch && git merge»òÕßgit pull --no-rebase¡£

Rebase£º¸üÐÂʱִÐÐrebase²Ù×÷¡£µÈ¼ÛÓÚÖ´ÐÐgit fetch && git rebase»òÕßgit pull --rebase¡£

Branch Default£ºÔÚ.git/configÎļþÖÐÖ¸¶¨²»Í¬·ÖÖ§µÄ¸üÐÂÀàÐÍ¡£

´°¿ÚÓÒ²àÑ¡ÔñÔÚ¸üÐÂǰ¹¤×÷Ŀ¼(Working Directory)µÄÇåÀí·½Ê½£º

Using Stash£ºÊ¹ÓÃgit stash´¢²Ø±¾µØÐ޸ġ£

Using Shelve£ºÊ¹ÓÃIDEAÄÚÖõÄShelve¹¦ÄÜ´¢²Ø±¾µØÐ޸ġ£

ͨ³£Ñ¡ÔñMergeºÍUsing Stash¼´¿É£¬µ¥»÷OKºó£¬IDEAÖ´Ðв½ÖèÈçÏ£º

µÚ1²½£ºÊ¹ÓÃgit stash´¢²Ø±¾µØÐÞ¸Ä

µÚ2²½£ºÖ´ÐÐgit fetch && git mergeÀ­È¡Ô¶³Ì·ÖÖ§²¢ºÏ²¢

µÚ3²½£ºÖ´ÐÐgit stash pop»Ö¸´´¢²Ø

ÓÐЩͬѧ¿ÉÄܸüϰ¹ßÏÈ´´½¨±¾µØÌá½»£¬È»ºóÔÚÖ´ÐиüвÙ×÷£¬ÕâÑù»áµ¼ÖÂGit×Ô¶¯Éú³ÉÒ»¸öºÏ²¢Ìá½»£¬µ¼ÖÂÌá½»ÀúÊ·²»¹»¼ò½à¡£

1.2 ´´½¨±¾´ÎÌá½»

¸üÐÂÍê³Éºó£¬ÔÚIDEAÖе¥»÷²Ëµ¥VCS-Commit...´´½¨±¾´ÎÌá½»¡£

1.3 ÍÆËÍÔ¶³Ì·ÖÖ§

È»ºóµ¥»÷VCS-Git-Push...ÍÆËÍÖÁÔ¶³Ì·ÖÖ§¡£

2. ³£¼ûÎÊÌâ·ÖÎö

ÔÚÉÏÃæµÄ3²½Ö´Ðв½ÖèÖУ¬µÚ2²½ºÍµÚ3²½·¢ÉúÒâÍâµÄ·çÏÕ×î¸ß£¬×î³£¼ûµÄÁ½ÖÖÒâÍâÇé¿öÊdzåÍ»ºÍÎļþÕ¼Óã¬ÏÂÃæÎÒÃÇ·Ö±ðÌÖÂÛ¡£

2.1 ºÏ²¢Ô¶³Ì·ÖÖ§³åÍ»

Èç¹ûÔÚÖ´ÐиüвÙ×÷֮ǰ£¬ÄãµÄ±¾µØ·ÖÖ§ÒѾ­´´½¨¹ýÌá½»£¬²¢ÇÒÉÐÎ´ÍÆËÍÖÁÔ¶³Ì·ÖÖ§£¬ÔòÔÚµÚ2²½Ö´ÐÐgit mergeʱºÜ¿ÉÄܻᷢÉú³åÍ»¡£

´Ëʱ¹Ø±ÕÉÏÃæµÄ³åÍ»´°¿Ú£¬Version Control¹¤¾ß´°¿ÚÏÔʾÄÚÈÝÈçÏ£º

´°¿ÚÓÒϽÇÔ­±¾ÏÔʾ·ÖÖ§Ãû³ÆµÄλÖñä³ÉÁËMerging master£¬±íʾ±¾µØ·ÖÖ§masterĿǰ´¦ÓÚÕýÔںϲ¢×´Ì¬¡£µ¥»÷×ó²àºì¿òÄÚResolve°´Å¥¿ÉÒÔÔٴε÷³ö´¦Àí³åÍ»´°¿Ú¡£»ùÓÚIDEAµÄͼÐνçÃæÊÖ¶¯½â¾ö³åÍ»ºó£¬IDEA»á×Ô¶¯½«¸ÃÎļþ¼ÓÈëÔÝ´æÇø(¼ÓÈëÔÝ´æÇø¼´±íʾ³åÍ»½â¾öÍê³É)£¬×îºóÖ´ÐÐÒ»´ÎÌá½»±ã¿ÉÒÔÍê³É³åÍ»´¦Àí¡£

2.2 »Ö¸´´¢²Ø³åÍ»

ÔÚ¸üвÙ×÷µÄµÚ3²½Ö´ÐÐgit stash pop»Ö¸´´¢²ØÊ±£¬´¢²ØÄÚÈÝ¿ÉÄÜÓë¸Õ¸üеÄÄÚÈÝ·¢Éú³åÍ»¡£

»Ö¸´´¢²ØÊ±·¢ÉúµÄ³åÍ»¸úÉÏÃæµÄºÏ²¢³åÍ»ÉÔ΢ÓÐÐ©Çø±ð£¬Ê×ÏÈÊÇÓÒϽǵķÖÖ§Ãû³ÆÃ»ÓÐMerging×ÖÑù£¬ÁíÍâ»áÔÚÓÒϽǶîÍⵯ³öÒ»¸öС´°Ìáʾ»Ö¸´´¢²ØÊ§°Ü£¬²¢ÇÒ¸æËßÄã²»Óõ£ÐÄ£¬ËùÓеÄÐ޸ͼÔÚstashÁбíÖУ¬²¢Ã»ÓжªÊ§¡£²é¿´stashÁбíµÄ·½Ê½Îªµ¥»÷²Ëµ¥VCS-Git-UnStash Changes...:

Ñ¡ÖÐÁбí×îÉÏÃæµÄÌõÄ¿£¬È»ºóµ¥»÷Apply Stash£¬Ö®Ç°µÄÐ޸ľͻáÖØÐ»ص½¹¤×÷Ŀ¼¡£

ÎÒÃǼÌÐø»Øµ½³åÍ»ÎÊÌ⣬ÊÖ¶¯½â¾ö³åÍ»ºóÖ´ÐÐÒ»´ÎÌá½»¾Í¿ÉÒÔÁË¡£Èç¹ûÔÚ½â¾ö³åÍ»¹ý³ÌÖз¢ÉúÁËÎó²Ù×÷£¬¿ÉÒÔÓÒ»÷Default Changelist-Revert...Çå¿Õµ±Ç°¹¤×÷Ŀ¼ÄÚÈÝ£¬ÖØÐÂÖ´ÐÐÒ»´ÎApply Stash£¬È»ºóÖØ¸´½â¾ö³åÍ»¹ý³Ì¡£

2.3 ÎļþÕ¼ÓôíÎó

ÔÚÖ´ÐеÚ2²½git mergeʱ£¬¿ÉÄÜ»áÒòΪÎļþ±»Õ¼Óõ¼ÖÂÖ´ÐÐʧ°Ü¡£ÀýÈçÏîÄ¿¿ÉÄÜÒýÈëÁËһЩjarÎļþ£¬ÕâЩjarÎļþÔÚ±¾µØÒѾ­±»JVM¶¯Ì¬¼ÓÔØÁË£¬Èç¹ûÓÐÆäËüÈ˸üÐÂÁ˸ÃjarÎļþ²¢ÇÒÍÆË͵½ÁËÔ¶³Ì·ÖÖ§£¬µ±Äã¸üÐÂʱ±ã»áÓöµ½ÉÏÊöÎÊÌâ¡£

¶ÔÓÚÕâÖÖ´íÎóµÄ½â¾ö·½·¨ºÜ¼òµ¥£¬Ê×ÏȽâ³ýÎļþµÄÕ¼ÓÃ״̬£¬ÀýÈçÖÕÖ¹±¾µØJVM½ø³Ì£¬È»ºóÔٴεã»÷VCS-Update¡£

ÔÚÖ´ÐеÚ3²½git stash popʱ£¬Ò²»áÒòΪÎļþ±»Õ¼Óõ¼ÖÂÖ´ÐÐʧ°Ü¡£ÀýÈçÄã¸üÐÂÁËij¸öjarÎļþ£¬µ±»Ö¸´´¢²ØÊ±¿ÉÄÜÒòΪ¸ÃjarÎļþ±»Õ¼Óõ¼Ö»ָ´Ê§°Ü¡£

¶ÔÓÚÕâÖÖ´íÎó£¬ÄãÐèÒªÊ×ÏȽâ³ýÎļþÕ¼ÓÃ״̬£¬È»ºóÊÖ¶¯Ö´ÐÐunstash²Ù×÷¡£

3. ÏÈÌá½»»¹ÊÇÏȸüУ¿ÊǸöÎÊÌ⣡

3.1 ÏÈÌá½»ºó¸üе¼ÖµÄÎÊÌâ

3.1.1 ·¢Éú³åͻʱÄÑÒÔ´¦Àí

Èç¹ûÏÈÌá½»£¬µ«ÊÇÔÚ¸üÐÂʱȴ·¢ÉúÁ˳åÍ»£¬Õâ¾ÍÒâζ×ÅÄã¸Õ¸Õ´´½¨µÄÌá½»ÆäʵÊÇÓÐÎÊÌâµÄ£¬Í¨³£ÊÇÍŶӹµÍ¨»òÊÇ·Ö¹¤³öÁËÎÊÌ⣬µ«ÊDz»¹ÜÕâô˵£¬±ðÈËÒѾ­ÇÀÏÈÒ»²½pushÁË£¬ÄãµÄÌá½»±ã»á±»¾ÜÖ®ÃÅÍâ¡£¼´±ãÊÇÊÖ¶¯½â¾öÁ˳åÍ»£¬Õâ¸öÌá½»±£ÁôÔÚÀúÊ·ÖÐÒ²»á³ÉΪÒþ»¼£¬Èç¹ûÓÐÆäËûÈËreset»ØÕâ¸öÌá½»¼ÌÐø¹¤×÷£¬ÔòÔںϲ¢ÆäËü·ÖÖ§ÄÚÈÝʱ·¢Éú³åÍ»µÄ¸ÅÂÊ»á´ó´óÔö¼Ó£¬ËùÒÔ×îºÃ´¦Àí·½Ê½ÊÇÏȳ·ÏúÕâ¸öÌá½»(reset --soft HEAD~)£¬È»ºó¸üв¢½â¾ö³åÍ»£¬×îºó´´½¨Ò»¸öеÄÌá½»¡£

3.1.2 ´íÎóµÄ´¦Àí³åÍ»·½Ê½

ÔÚ·¢Éú³åÍ»ºó£¬ÓÐЩͬѧ¿ÉÄÜ»áÏëµ½ÏÂÃæµÄ´¦Àí·½Ê½£º

Çå¿Õµ±Ç°¹¤×÷¿Õ¼ä

µ÷Õû³åÍ»²¿·ÖµÄ´úÂë

È»ºóÔÙ´ÎÖ´ÐиüвÙ×÷

ÉÏÃæµÄ´¦Àí·½Ê½ºÜÃ÷ÏÔÊDz»¿ÉÐеģ¬ÒòΪÄãµ÷ÕûµÄ´úÂëÊ×Ñ¡»á±»IDEA´¢²Ø£¨stash£©ÆðÀ´£¬È»ºóÔÚ¸üеĵÚ2²½ÖÐÈÔÈ»»á·¢Éú³åÍ»£¬²¢ÇÒ·¢Éú³åͻʱ£¬ÄãµÄÐÞ¸ÄÉÐδ»Ö¸´´¢²Ø(unstash)£¬µ¼Ö¿´ÆðÀ´Äãµ÷ÕûµÄ´úÂë²»¼ûÁË£¬ÈÃÈËÃþ²»×ÅÍ·ÄÔ¡£

3.1.3 Rebase»á¸ÄдÌá½»ÀúÊ·

Èç¹ûÔÚIDEAµÄ¸üд°¿ÚÑ¡Ôñ¸üÐÂÀàÐÍΪRebase£¬ÔòµÈ¼ÛÓÚÊÖ¶¯Ö´ÐÐgit fetch && git rebase»òÕßgit pull --rebaseÃüÁî¡£ÕâÑùµÄºÃ´¦ÊDz»»áÉú³ÉÒ»¸ö×Ô¶¯ºÏ²¢Ìá½»£¬±£³Ö¼ò½àµÄÌá½»ÀúÊ·¡£µ«ÊÇÐèҪעÒâµÄÊÇ£¬RebaseÖ®ºó£¬ÄãµÄ±¾µØÌá½»»á±»¸Äд£¬ËäÈ»Ìá½»ÐÅÏ¢Ò»Ñù£¬µ«ÊÇcommit hashÒѾ­¸Ä±äÁË£¬ÈçÏÂͼËùʾ£º

ÔÚÖ´ÐÐÍêÈçϵÄRebaseÃüÁîºó£¬

$ git checkout dev
$ git rebase master

Ö´Ðнá¹ûΪ£º

Çë×¢Ò⣬½á¹ûÖеÄv4ºÍv5Ìá½»ÒѾ­±»¸ÄдÁË¡£

3.2 ÍÆ¼öÏȸüкóÌá½»

Èç¹ûÄãÊÂÏÈÖªµÀ»á·¢Éú³åÍ»£¬ÏàÐÅÄãÒ»¶¨²»»áÑ¡ÔñÏÈÌá½»´úÂ룬µ«ÊdzåÍ»ÊDz»¿É±ÜÃâµÄ£¬Õâ¾ÍÒªÇóÎÒÃÇÆ½Ê±Ñø³ÉÁ¼ºÃµÄ¿ª·¢Ï°¹ß¡£ÓëÆä½â¾öÌá½»ºóµÄ³åÍ»£¬²»È羡ÔçµØ½â¾ö³åͻȻºóÌá½»£¬ÕâÑù²»½ö¿ÉÒÔ¼õÉÙÒ»¸öÎÞÒâÒåµÄ×Ô¶¯ºÏ²¢Ìá½»£¬¶øÇÒ¿ÉÒÔÔÚ³åÍ»·¢Éúʱ¼ò»¯´¦Àí¹ý³Ì¡£

3.3 Ñø³ÉÁ¼ºÃϰ¹ß

ΪÁ˾¡Á¿±ÜÃâ³åÍ»·¢Éú£¬½¨ÒéÑø³ÉÈçÏ¿ª·¢Ï°¹ß£º

±àÂëǰÏȸüÐÂ

ÌύǰÏȸüÐÂ

Ìύǰ¼ì²éÊÇ·ñÓбàÒë´íÎó

Ìá½»Á£¶È¾¡¿ÉÄÜС£¬ÃèÊö¾¡¿ÉÄÜ׼ȷ

ÐÞ¸ÄÁ˹«¹²Îļþ£¬¾¡Ôç֪ͨÆäËû³ÉÔ±¸üÐÂ

×îºóÒ»Ìõ£¬Ò²ÊÇ×îÖØÒªµÄ£¬ÍŶӷֹ¤ÒªÃ÷È·

 
   
2515 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÿÈÕ¹¹½¨½â¾ö·½°¸
ÈçºÎÖÆ¶¨ÓÐЧµÄÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀíÖ÷Òª»î¶¯¼°ÊµÏÖ·½·¨
¹¹½¨¹ÜÀíÈëÃÅ
Ïà¹ØÎĵµ

ÅäÖùÜÀíÁ÷³Ì
ÅäÖùÜÀí°×ƤÊé
CM09_CÅäÖùÜÀí±ê×¼
ʹÓÃSVN½øÐа汾¿ØÖÆ
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀíʵ¼ù
ÅäÖùÜÀí·½·¨¡¢¹¤¾ßÓëÓ¦ÓÃ
¶à²ã´Î¼¯³ÉÅäÖùÜÀí
²úÆ··¢²¼¹ÜÀí