±à¼ÍƼö: |
±¾ÎÄÊ×ÏÈ´ÓÁË½â°æ±¾¿ØÖÆÏµÍ³¿ªÊ¼½éÉÜ£¬ÉîÈëgitÔÀí
£¬½Ó׎éÉÜHEAD¡¢branch¡¢ÒýÓõı¾ÖÊÒÔ¼°pushµÄ±¾ÖÊ £¬×îºó½øÐÐgit²Ù×÷£¬Ï£Íû±¾ÎĶÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚsegmentfault£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
ÔµÆð
¶ÁÁË¡°ÈÓÎïÏß¡±ÀÏʦµÄС²á¡¶Git ÔÀíÏê½â¼°ÊµÓÃÖ¸ÄÏ¡·¸Ð¾õÊÕ»ñÁ¼¶à£¬ÓÚÊÇÏëдµã¶«Î÷×öÒ»¸ö×ܽᣬ¼´¼ÓÉî×Ô¼ºµÄÓ¡ÏóҲϣÍûÄܸøÉçÇøÐ¡»ï°éÒ»µã°ïÖú£¬Ð´µÄ²»¶ÔµÄµØ·½»¹Çë¶à¶àÖ¸µ¼¡£ÉíΪһ¸ö³õÈëǰ¶Ë°ëÄêµÄ²ËÄñ£¬ÓÉÒÁʼµÄÖ»ÖªµÀgitÊÇÓÃÀ´ÍйܴúÂëµÄ¹¤¾ßµ½Öð²½Á˽âÖÐÑë°æ±¾¿ØÖÆÏµÍ³Óë·Ö²¼Ê½°æ±¾¿ØÖÆÏµÍ³(git)µÄÔÀíÓëÇø±ð£»´Ó֮ǰֻ»á»ù±¾µÄadd¡¢commit¡¢pull¡¢push²Ù×÷µ½Ê¹ÓÃstash¡¢merge¡¢reset·½±ãµÃ²»ÒàÀÖºõ£¬¶¼µÃÒæÓÚ¶ÔgitÔÀíµÄÉîÈëÀí½â£¬±Æ»°ÉÙ˵£¬Õ¦ÃÇÖ±½Ó½øÈëÕýÌ⡣ǰ·½³¤ÆªÔ¤¾¯...
´ÓÁË½â°æ±¾¿ØÖÆÏµÍ³¿ªÊ¼
Ëùν°æ±¾¿ØÖÆ£¬¾ÍÊÇÔÚÎļþÐ޸ĵÄÀú³ÌÖб£ÁôÐÞ¸ÄÀúÊ·£¬¿ÉÒÔ·½±ãµÄ³·Ïú£¨ÈçͬÎı¾±à¼µÄ³·Ïú²Ù×÷Ò»°ã£¬Ö»Êǰ汾¿ØÖƻḴÔӵĶࣩ֮ǰ¶ÔÎļþµÄÐ޸ġ£Ò»¸ö°æ±¾¿ØÖÆÏµÍ³µÄÈý¸öºËÐÄÄÚÈÝ£º°æ±¾¿ØÖÆ£¨×î»ù±¾µÄ¹¦ÄÜ£©£¬Ö÷¶¯Ìá½»£¨commitÀúÊ·£©ºÍÔ¶³Ì²Ö¿â£¨Ðͬ¿ª·¢£©¡£
ÖÐÑëʽ°æ±¾¿ØÖÆÏµÍ³£¨VCS£©
¹¤×÷Ä£ÐÍ
1.Ö÷¹¤³Ìʦ´îºÃÏîÄ¿¿ò¼Ü
2.ÔÚ¹«Ë¾·þÎñÆ÷´´½¨Ò»¸öÔ¶³Ì²Ö¿â£¬²¢Ìá½»´úÂë
3.ÆäËûÈËÀÈ¡´úÂ룬²¢Ðпª·¢
4.ÿ¸öÈ˶ÀÁ¢¸ºÔðÒ»¸ö¹¦ÄÜ£¬¿ª·¢Íê³ÉÌá½»´úÂë
5.ÆäËûÈËËæÊ±ÀÈ¡´úÂ룬±£³Öͬ²½

·Ö²¼Ê½°æ±¾¿ØÖÆÏµÍ³£¨DVCS£©
·Ö²¼Ê½ÓëÖÐÑëʽµÄÇø±ðÖ÷ÒªÔÚÓÚ£¬·Ö²¼Ê½³ýÁËÔ¶³Ì²Ö¿âÖ®ÍâÍŶÓÖÐÿһ¸ö³ÉÔ±µÄ»úÆ÷É϶¼ÓÐÒ»·Ý±¾µØ²Ö¿â£¬Ã¿¸öÈËÔÚ×Ô¼ºµÄ»úÆ÷ÉϾͿÉÒÔ½øÐÐÌá½»´úÂ룬²é¿´°æ±¾£¬Çл»·ÖÖ§µÈ²Ù×÷¶ø²»ÐèÒªÍêÈ«ÒÀÀµÍøÂç»·¾³¡£
¹¤×÷Ä£ÐÍ
1.Ö÷¹¤³Ìʦ´îºÃÏîÄ¿¿ò¼Ü £¬²¢Ìá½»´úÂëµ½±¾µØ²Ö¿â
2.ÔÚ¹«Ë¾·þÎñÆ÷´´½¨Ò»¸öÔ¶³Ì²Ö¿â£¬²¢½«1µÄÌá½»ÍÆË͵½Ô¶³Ì²Ö¿â
3.ÆäËûÈ˰ÑÔ¶³Ì²Ö¿âËùÓÐÄÚÈݿˡµ½±¾µØ£¬ÓµÓÐÁ˸÷×Եı¾µØ²Ö¿â£¬¿ªÊ¼²¢Ðпª·¢
4.ÿ¸öÈ˶ÀÁ¢¸ºÔðÒ»¸ö¹¦ÄÜ£¬¿ÉÒÔ°Ñÿһ¸öС¸Ä¶¯Ìá½»µ½±¾µØ£¨ÓÉÓÚ±¾µØÌá½»ÎÞÐèÁ¢¼´ÉÏ´«µ½Ô¶³Ì²Ö¿â£¬ËùÒÔÿһ²½Ìá½»²»±ØÊÇÒ»¸öÍêÕû¹¦ÄÜ£¬¶ø¿ÉÒÔÊǹ¦ÄÜÖеÄÒ»¸ö²½Öè»ò¿é£©
5.¹¦ÄÜ¿ª·¢Íê±Ï£¬½«ºÍÕâ¸ö¹¦ÄÜÏà¹ØµÄËùÓÐÌá½»´Ó±¾µØÍÆË͵½Ô¶³Ì²Ö¿â
6.ÿ´Îµ±ÓÐÈ˰ÑеÄÌá½»ÍÆË͵½Ô¶³Ì²Ö¿âµÄʱºò£¬ÆäËûÈ˾ͿÉÒÔÑ¡Ôñ°ÑÕâЩÌύͬ²½µ½×Ô¼ºµÄ»úÆ÷ÉÏ£¬²¢°ÑËüÃǺÍ×Ô¼ºµÄ±¾µØ´úÂëºÏ²¢

·Ö²¼Ê½°æ±¾¹ÜÀíϵͳµÄÓÅȱµã£º
Óŵã
´ó¶àÊý²Ù×÷±¾µØ½øÐУ¬Êý¶È¸ü¿ì£¬²»ÊÜÍøÂçÓëÎïÀíλÖÃÏÞÖÆ£¬²»ÁªÍøÒ²¿ÉÒÔÌá½»´úÂë¡¢²é¿´ÀúÊ·¡¢Çл»·ÖÖ§µÈµÈ
·Ö²¼Ìá½»´úÂ룬Ìá½»¸üϸÀûÓÚreview
ȱµã
³õ´Îcloneʱ¼ä½Ï³¤
±¾µØÕ¼Óô洢¸ßÓÚÖÐÑëʽϵͳ
¼ÌÐøÉîÈëgitÔÀí
¼ÙÉèÄãÒѾ°²×°ºÃÁËgit²¢½«´úÂëcloneµ½Á˱¾µØ£¬ÐÂÊÖÒÆ²½git°²×°Óë´úÂ뿽±´Ö¸ÄÏ¡£
git×î»ù±¾µÄ¹¤×÷Ä£ÐÍ
Ê×ÏÈÀí½âÈý¸ö»ù±¾¸ÅÄ
¹¤×÷Çø£º¾ÍÊÇÄãÔÚµçÄÔÀïÄÜ¿´µ½µÄĿ¼
°æ±¾¿â£º¹¤×÷ÇøÓÐÒ»¸öÒþ²ØÄ¿Â¼.git£¬Õâ¸ö²»Ë㹤×÷Çø£¬¶øÊÇGitµÄ±¾µØ°æ±¾¿â,ÄãµÄËùÓа汾ÐÅÏ¢¶¼»á´æÔÚÕâÀï
ÔÝ´æÇø£ºÓ¢ÎĽÐstage, »òindex¡£Ò»°ã´æ·ÅÔÚ ".gitĿ¼ÏÂ" ϵÄindexÎļþ£¨.git/index£©ÖУ¬ËùÒÔÎÒÃǰÑÔÝ´æÇøÓÐʱҲ½Ð×÷Ë÷Òý£¨index£©

¹¤×÷Ä£ÐÍ
1.Ê×ÏÈн¨Ò»¸ötest.txtÎļþ²¢¶ÔÆä½øÐÐÐ޸ģ¬Í¨¹ýstatus¿ÉÒԲ鿴¹¤×÷Ŀ¼µ±Ç°×´Ì¬£¬´Ëʱtest.txt¶ÔgitÀ´ËµÊDz»´æÔڵģ¨Untracked£©

2.È»ºóͨ¹ýaddÃüÁÐ޸ķÅÈëÔÝ´æÇø£¨git¿ªÊ¼×·×ÙËü£©

¿ÉÒÔ¿´µ½£¬test.txt µÄÎÄ×Ö±ä³ÉÁËÂÌÉ«£¬ËüµÄÇ°Ãæ¶àÁË¡¸new file:¡¹µÄ±ê¼Ç£¬¶øËüµÄÃèÊöÒ²´Ó
"Untracked files" ±ä³ÉÁË "Changes to be
commited"¡£ÕâЩ¶¼ËµÃ÷Ò»µã£ºtest.txt Õâ¸öÎļþµÄ״̬´Ó "untracked"£¨Î´¸ú×Ù£©±ä³ÉÁË
"staged"£¨ÒÑÔݴ棩£¬Òâ˼ÊÇÕâ¸öÎļþÖб»¸Ä¶¯µÄ²¿·Ö£¨Ò²¾ÍÊÇÕâÕû¸öÎļþ£©±»¼Ç¼½øÁË
staging area£¨ÔÝ´æÇø£©
<blockquote> stage Õâ¸ö´ÊÔÚ Git ÀÊÇ¡¸¼¯ÖÐÊÕ¼¯¸Ä¶¯ÒÔ´ýÌá½»¡¹µÄÒâ˼£»¶ø
staging area £¬¾ÍÊÇÒ»¸ö¡¸»ã¼¯´ýÌá½»µÄÎļþ¸Ä¶¯µÄµØ·½¡¹¡£¼ò³Æ¡¸Ôݴ桹ºÍ¡¸ÔÝ´æÇø¡¹¡£ÖÁÓÚ
staged ±íʾ¡¸ÒÑÔݴ桹£¬¾Í²»ÓÃÔÙ½âÊÍÁ˰ɣ¿</blockquote>
3.ÏÖÔÚÎļþÒѾ·ÅÈëÔÝ´æÇø£¬¿ÉÒÔÓÃcommitÃüÁîÌá½»£º

ÔÚÕâÀïÄãÒ²¿ÉÒÔÖ±½ÓcommitÌá½»»á½øÈëcommitÐÅÏ¢±à¼Ò³Ã棬¶ø¼ÓÉÏ-m²ÎÊý¿ÉÒÔ¿ì½ÝÊäÈë¼ò¶ÌµÄÌá½»±¸×¢ÐÅÏ¢£¬ÕâÑùÄã¾ÍÍê³ÉÁËÒ»´ÎÌá½»£¨¿ÉÒÔͨ¹ýgit
log²é¿´Ìá½»ÀúÊ·£©
½Ó×ŶԸÃÎļþÔٴνøÐÐÐ޸ģ¬ÊäÈëgit status¿ÉÒÔ¿´µ½£¬¸ÃÎļþ
ÓÖ±äºìÁË£¬²»¹ýÕâ´ÎËü×ó±ßµÄÎÄ×Ö²»ÊÇ "New file:" ¶øÊÇ "modified:"£¬¶øÇÒÉÏ·½ÏÔʾËüµÄ״̬Ҳ²»ÊÇ
"Untracked" ¶øÊÇ "not staged for commit"£¬Òâ˼ºÜÃ÷È·£ºGit
ÒѾÈÏʶÕâ¸öÎļþÁË£¬Ëü²»ÊǸöÐÂÎļþ£¬µ«ËüÓÐÁËһЩ¸Ä¶¯¡£ËùÒÔËäȻ״̬µÄÏÔʾÓе㲻ͬ£¬µ«´¦Àí·½Ê½»¹ÊÇÒ»ÑùµÄ£º

½ÓÏÂÀ´Ôٴν«¸ÃÎļþadd¡¢commit£¬²é¿´log¿ÉÒÔ¿´µ½ÒѾ´æÔÚÁ½ÌõÌá½»¼Ç¼

4.×îºóͨ¹ýpush°Ñ±¾µØµÄËùÓÐcommitÉÏ´«µ½Ô¶³Ì²Ö¿â£º

ÍŶӹ¤×÷»ù±¾Ä£ÐÍ
¹¤×÷Ä£ÐÍ
1.ÔÚÉÏÃæ»ù±¾²Ù×÷µÄ»ù´¡ÉÏ£¬Í¬Ê commit ´úÂëµ½ËûµÄ±¾µØ£¬²¢ push µ½Ô¶³Ì²Ö¿â
2.Äã°ÑÔ¶³Ì²Ö¿âеÄÌύͨ¹ý pullÖ¸ÁîÀÈ¡µ½ÄãµÄ±¾µØ
ͨ¹ýÕâ¸öÁ÷³Ì£¬ÄãºÍͬʾͿÉÒÔ¼òµ¥µØºÏ×÷ÁË£ºÄãдÁË´úÂ룬commit£¬push µ½Ô¶³Ì²Ö¿â£¬È»ºóËû
pull µ½ËûµÄ±¾µØ£»ËûÔÙд´úÂ룬commit, push µ½Ô¶³Ì²Ö¿â£¬È»ºóÄãÔÙ pull µ½ÄãµÄ±¾µØ¡£ÄãÀ´ÎÒÍù£¬ÅäºÏµÃ²»ÒàÀÖºõ¡££¨µ«ÊÇÓÐʱºòpush»áʧ°Ü£©
Ϊʲô»áʧ°Ü£¿
ÒòΪ Git µÄpush ÆäʵÊÇÓñ¾µØ²Ö¿âµÄcommit¼Ç¼ȥ¸²¸ÇÔ¶³Ì²Ö¿âµÄcommit¼Ç¼£¨×¢£ºÕâÊǼò»¯¸ÅÄîºóµÄ˵·¨£¬push
µÄʵÖʺÍÕâ¸ö˵·¨ÂÔÓв»Í¬£©£¬¶øÈç¹ûÔÚÔ¶³Ì²Ö¿âº¬Óб¾µØÃ»ÓеÄcommitµÄʱºò£¬push £¨Èç¹û³É¹¦£©½«»áµ¼ÖÂÔ¶¶ËµÄcommit±»²Áµô¡£ÕâÖÖ½á¹ûµ±È»ÊDz»¿ÉÐеģ¬Òò´Ë
Git »áÔÚ push µÄʱºò½øÐмì²é£¬Èç¹û³öÏÖÕâÑùµÄÇé¿ö£¬push ¾Í»áʧ°Ü
ÕâʱֻÐèÒªÏÈͨ¹ýgit pull£¨ÊµÎªfetchºÍmergeµÄ×éºÏ²Ù×÷£©½«±¾µØ²Ö¿âµÄÌá½»ºÍÔ¶³Ì²Ö¿âµÄÌá½»½øÐкϲ¢£¬È»ºóÔÙpush¾Í¿ÉÒÔÁË
Feature Branching£º×îÁ÷ÐеŤ×÷Á÷
ºËÐÄ£º
£¨1£©ÈκÎÐµĹ¦ÄÜ£¨feature£©»ò bug ÐÞ¸´È«¶¼Ð½¨Ò»¸ö branch À´Ð´£»
£¨2£©branch дÍêºó£¬ºÏ²¢µ½ master£¬È»ºóɾµôÕâ¸ö branch£¨¿ÉʹÓÃgit origin
-d ·ÖÖ§Ãûɾ³ýÔ¶³Ì²Ö¿âµÄ·ÖÖ§£©¡£

ÓÅÊÆ£º
£¨1£©´úÂë·ÖÏí£ºÐ´ÍêÖ®ºó¿ÉÒÔÔÚ¿ª·¢·ÖÖ§reviewÖ®ºóÔÙmergeµ½master·ÖÖ§
£¨2£©Ò»È˶àÈÎÎñ£ºµ±ÕýÔÚ¿ª·¢½Óµ½¸üÖØÒªµÄÐÂÈÎÎñʱ£¬ÄãÖ»ÒªÉÔ΢°ÑĿǰδÌá½»µÄ´úÂë¼òµ¥ÊÕβһÏ£¬È»ºó×öÒ»¸ö´øÓС¸Î´Íê³É¡¹±ê¼ÇµÄÌá½»£¨ÀýÈ磬ÔÚÌá½»ÐÅÏ¢Àï±êÉÏ¡¸TODO¡¹£©£¬È»ºó»Øµ½
master È¥´´½¨Ò»¸öÐ嵀 branch ½øÐпª·¢¾ÍºÃÁË¡£
HEAD¡¢branch¡¢ÒýÓõı¾ÖÊÒÔ¼°pushµÄ±¾ÖÊ
HEAD£ºµ±Ç°commitµÄÒýÓÃ
µ±Ç° commit ÔÚÄÄÀHEAD ¾ÍÔÚÄÄÀÕâÊÇÒ»¸öÓÀÔ¶×Ô¶¯Ö¸Ïòµ±Ç° commit µÄÒýÓã¬ËùÒÔÄãÓÀÔ¶¿ÉÒÔÓÃ
HEAD À´²Ù×÷µ±Ç° commit£¬
branch£º
HEAD ÊÇ Git ÖÐÒ»¸ö¶ÀÌØµÄÒýÓã¬ËüÊÇΨһµÄ¡£¶ø³ýÁË HEAD Ö®Í⣬Git »¹ÓÐÒ»ÖÖÒýÓ㬽Ð×ö
branch£¨·ÖÖ§£©¡£HEAD ³ýÁË¿ÉÒÔÖ¸Ïò commit£¬»¹¿ÉÒÔÖ¸ÏòÒ»¸öbranch£¬µ±Ö¸ÏòÒ»¸öbranchʱ£¬HEAD»áͨ¹ýbranch¼ä½ÓÖ¸Ïòµ±Ç°commit£¬HEADÒÆ¶¯»á´ø×ÅbranchÒ»ÆðÒÆ¶¯£º

branch °üº¬ÁË´Ó³õʼ commit µ½ËüµÄËùÓз¾¶£¬¶ø²»ÊÇÒ»Ìõ·¾¶¡£²¢ÇÒ£¬ÕâЩ·¾¶Ö®¼äÒ²ÊÇ±Ë´ËÆ½µÈµÄ¡£

ÏñÉÏͼÕâÑù£¬master Ôںϲ¢ÁË branch1 Ö®ºó£¬´Ó³õʼ
commit µ½ master ÓÐÁËÁ½Ìõ·¾¶¡£Õâʱ£¬master µÄ´®¾Í°üº¬ÁË 1 2 3 4 7
ºÍ 1 2 5 6 7 ÕâÁ½Ìõ·¾¶¡£¶øÇÒ£¬ÕâÁ½Ìõ·¾¶ÊÇÆ½µÈµÄ£¬1 2 3 4 7 ÕâÌõ·¾¶²¢²»»áÒòΪËüÊÇ¡¸ÔÉú·¾¶¡¹¶øÓµÓÐÈκεÄÌØ±ðÖ®´¦
´´½¨branch£ºgit branch Ãû³Æ
Çл»branch£ºgit checkout Ãû³Æ£¨½«HEADÖ¸Ïò¸Ãbranch£©
´´½¨+Çл»£ºgit checkout -b Ãû³Æ
ÔÚÇл»µ½Ð嵀 branch ºó£¬ÔÙ´Î commit ʱ HEAD ¾Í»á´ø×ÅÐ嵀 branch ÒÆ¶¯ÁË£º

¶øÕâ¸öʱºò£¬Èç¹ûÄãÔÙÇл»µ½ master È¥ commit£¬¾Í»áÕæÕýµØ³öÏÖ·Ö²æÁË£º

ɾ³ýbranch£ºgit branch -d Ãû³Æ
×¢Ò⣺
£¨1£©HEAD Ö¸ÏòµÄ branch ²»ÄÜɾ³ý¡£Èç¹ûҪɾ³ý HEAD Ö¸ÏòµÄ branch£¬ÐèÒªÏÈÓÃ
checkout °Ñ HEAD Ö¸ÏòÆäËûµØ·½¡£
£¨2£©ÓÉÓÚ Git ÖÐµÄ branch Ö»ÊÇÒ»¸öÒýÓã¬ËùÒÔɾ³ý branch µÄ²Ù×÷Ò²Ö»»áɾµôÕâ¸öÒýÓ㬲¢²»»áɾ³ýÈκεÄ
commit¡££¨²»¹ýÈç¹ûÒ»¸ö commit ²»ÔÚÈκÎÒ»¸ö branch µÄ¡¸Â·¾¶¡¹ÉÏ£¬»òÕß»»¾ä»°Ëµ£¬Èç¹ûûÓÐÈκÎÒ»¸ö
branch ¿ÉÒÔ»ØËݵ½ÕâÌõ commit£¨Ò²Ðí¿ÉÒÔ³ÆÎªÒ°Éú commit£¿£©£¬ÄÇôÔÚÒ»¶¨Ê±¼äºó£¬Ëü»á±»
Git µÄ»ØÊÕ»ú֯ɾ³ýµô£©
£¨3£©³öÓÚ°²È«¿¼ÂÇ£¬Ã»Óб»ºÏ²¢µ½ master ¹ýµÄ branch ÔÚɾ³ýʱ»áʧ°Ü£¨ÅÂÎóɾδÍê³Ébranch£©°Ñ-d»»³É-D¿ÉÒÔÇ¿ÖÆÉ¾³ý
ÒýÓõı¾ÖÊ
ËùνÒýÓã¬Æäʵ¾ÍÊÇÒ»¸ö¸öµÄ×Ö·û´®¡£Õâ¸ö×Ö·û´®¿ÉÒÔÊÇÒ»¸ö commit µÄ SHA-1 Â루Àý£ºc08de9a4d8771144cd23986f9f76c4ed729e69b0£©£¬Ò²¿ÉÒÔÊÇÒ»¸ö
branch£¨Àý£ºref: refs/heads/feature3£©¡£
Git ÖÐµÄ HEAD ºÍÿһ¸ö branch ÒÔ¼°ÆäËûµÄÒýÓ㬶¼ÊÇÒÔÎı¾ÎļþµÄÐÎʽ´æ´¢ÔÚ±¾µØ²Ö¿â
.git Ŀ¼ÖУ¬¶ø Git ÔÚ¹¤×÷µÄʱºò£¬¾ÍÊÇͨ¹ýÕâЩÎı¾ÎļþµÄÄÚÈÝÀ´ÅжÏÕâЩËùνµÄ¡¸ÒýÓá¹ÊÇÖ¸Ïò˵ġ£
pushµÄ±¾ÖÊ£º°Ñ branch ÉÏ´«µ½Ô¶³Ì²Ö¿â
£¨1£©°Ñµ±Ç°branchλÖÃÉÏ´«µ½Ô¶³Ì²Ö¿â£¬²¢°ÑËü·¾¶ÉϵÄcommitsÒ»²¢ÉÏ´«
£¨2£©gitÖУ¨2.0¼°ÒÔºó°æ±¾£©£¬git push²»¼Ó²ÎÊýÖ»ÄÜÉÏ´«µ½´ÓÔ¶³Ì²Ö¿âclone»òÕßpullÏÂÀ´µÄ·ÖÖ§£¬ÈçÐèpushÔÚ±¾µØ´´½¨µÄ·ÖÖ§ÔòÐèʹÓÃgit
push origin ·ÖÖ§ÃûµÄÃüÁî
£¨3£©Ô¶¶Ë²Ö¿âµÄHEAD²¢²»ËæpushÓë±¾µØÒ»Ö£¬Ô¶¶Ë²Ö¿âHEADÓÀÔ¶Ö¸ÏòĬÈÏ·ÖÖ§£¨master£©£¬²¢ËæÖ®Òƶ¯£¨¿ÉÒÔʹÓÃgit
br -r²é¿´Ô¶³Ì·ÖÖ§µÄHEADÖ¸Ïò£©¡£
¿ªÆôgit²Ù×÷Ö®ÂÃ
merge£ººÏ²¢
º¬Ò壺´ÓÄ¿±ê commit ºÍµ±Ç° commit £¨¼´ HEAD ËùÖ¸ÏòµÄ commit£©·Ö²æµÄλÖÃÆð£¬°ÑÄ¿±ê
commit µÄ·¾¶ÉϵÄËùÓÐ commit µÄÄÚÈÝÒ»²¢Ó¦Óõ½µ±Ç° commit£¬È»ºó×Ô¶¯Éú³ÉÒ»¸öеÄ
commit¡£

µ±Ö´ÐÐgit merge branch1²Ù×÷£¬Git »á°Ñ 5 ºÍ 6 ÕâÁ½¸ö commit µÄÄÚÈÝÒ»²¢Ó¦Óõ½
4 ÉÏ£¬È»ºóÉú³ÉÒ»¸öеÄÌá½» 7 ¡£
mergeµÄÌØÊâÇé¿ö£º
£¨1£©merge³åÍ»£ºÄãµÄÁ½¸ö·ÖÖ§¸ÄÁËÏàͬµÄÄÚÈÝ£¬Git ²»ÖªµÀÓ¦¸ÃÒÔÄĸöΪ׼¡£Èç¹ûÔÚ merge
µÄʱºò·¢ÉúÁËÕâÖÖÇé¿ö£¬Git ¾Í»á°ÑÎÊÌâ½»¸øÄãÀ´¾ö¶¨¡£¾ßÌ嵨£¬Ëü»á¸æËßÄã merge ʧ°Ü£¬ÒÔ¼°Ê§°ÜµÄÔÒò£»ÕâʱºòÄãÖ»ÐèÒªÊÖ¶¯½â¾öµô³åÍ»²¢ÖØÐÂadd¡¢commit£¨¸Ä¶¯²»Í¬Îļþ»òͬһÎļþµÄ²»Í¬Ðж¼²»»á²úÉú³åÍ»£©£»»òÕßʹÓÃgit
merge --abort·ÅÆú½â¾ö³åÍ»£¬È¡Ïûmerge
£¨2£©HEAD ÁìÏÈÓÚÄ¿±ê commit£ºmergeÊÇÒ»¸ö¿Õ²Ù×÷£º

´Ëʱmerge²»»áÓÐÈκη´Ó¦¡£
£¨3£©HEAD ÂäºóÓÚ Ä¿±ê commitÇÒ²»´æÔÚ·ÖÖ§£¨fast-forward£©£º

git»áÖ±½Ó°ÑHEADÓëÆäÖ¸ÏòµÄbranch£¨Èç¹ûÓеϰ£©Ò»ÆðÒÆ¶¯µ½Ä¿±êcommit¡£
rebase£º¸øcommitÐòÁÐÖØÐÂÉèÖûù´¡µã
ÓÐЩÈ˲»Ï²»¶ merge£¬ÒòΪÔÚ merge Ö®ºó£¬commit ÀúÊ·¾Í»á³öÏֲַ棬ÕâÖÖ·Ö²æÔÙ»ãºÏµÄ½á¹¹»áÈÃÓÐЩÈ˾õµÃ»ìÂÒ¶øÄÑÒÔ¹ÜÀí¡£Èç¹ûÄ㲻ϣÍû
commit ÀúÊ·³öÏֲַ棬¿ÉÒÔÓà rebase À´´úÌæ merge¡£

¿ÉÒÔ¿´³ö£¬Í¨¹ý rebase£¬5 ºÍ 6 Á½Ìõ commits °Ñ»ù´¡µã´Ó 2 »»³ÉÁË 4 ¡£Í¨¹ýÕâÑùµÄ·½Ê½£¬¾ÍÈñ¾À´·Ö²æÁ˵ÄÌá½»ÀúÊ·ÖØÐ»ص½ÁËÒ»ÌõÏß¡£ÕâÖÖ¡¸ÖØÐÂÉèÖûù´¡µã¡¹µÄ²Ù×÷£¬¾ÍÊÇ
rebase µÄº¬Òå¡£ÁíÍ⣬ÔÚ rebase Ö®ºó£¬¼ÇµÃÇÐ»Ø master ÔÙ merge һϣ¬°Ñ
master ÒÆµ½×îÐ嵀 commit¡£
ΪʲôҪ´Ó branch1 À´ rebase£¬È»ºóÔÙÇÐ»Ø master
ÔÙ merge Ò»ÏÂÕâôÂé·³£¬¶ø²»ÊÇÖ±½ÓÔÚ master ÉÏÖ´ÐÐ rebase£¿
´ÓͼÖпÉÒÔ¿´³ö£¬rebase ºóµÄÿ¸ö commit ËäÈ»ÄÚÈÝºÍ rebase ֮ǰÏàͬ£¬µ«ËüÃÇÒѾÊDz»Í¬µÄ
commit ÁË£¨Ã¿¸öcommitÓÐΨһ±êÖ¾£©¡£Èç¹ûÖ±½Ó´Ó master Ö´ÐÐ rebase µÄ»°£¬¾Í»áÊÇÏÂÃæÕâÑù£º

Õâ¾Íµ¼Ö master ÉÏ֮ǰµÄÁ½¸ö×îРcommit £¨3ºÍ4£©±»ÌÞ³ýÁË¡£Èç¹ûÕâÁ½¸ö commit
֮ǰÒѾÔÚÔ¶³Ì²Ö¿â´æÔÚ£¬Õâ¾Í»áµ¼ÖÂû·¨ push £º

ËùÒÔ£¬ÎªÁ˱ÜÃâºÍÔ¶³Ì²Ö¿â·¢Éú³åÍ»£¬Ò»°ã²»Òª´Ó master ÏòÆäËû branch Ö´ÐÐ rebase
²Ù×÷¡£¶øÈç¹ûÊÇ master ÒÔÍâµÄ branch Ö®¼äµÄ rebase£¨±ÈÈç branch1 ºÍ
branch2 Ö®¼ä£©£¬¾Í²»±ØÕâô¶à·ÑÒ»²½£¬Ö±½Ó rebase ¾ÍºÃ¡£
ÐèҪ˵Ã÷µÄÊÇ,rebase ÊÇÕ¾ÔÚÐèÒª±» rebase µÄ commit ÉϽøÐвÙ×÷£¬ÕâµãºÍ merge
ÊDz»Í¬µÄ¡£
stash£ºÁÙʱ´æ·Å¹¤×÷Ŀ¼µÄ¸Ä¶¯
stash Ö¸Áî¿ÉÒÔ°ïÄã°Ñ¹¤×÷Ŀ¼µÄÄÚÈÝÈ«²¿·ÅÔÚÄã±¾µØµÄÒ»¸ö¶ÀÁ¢µÄµØ·½£¬Ëü²»»á±»Ìá½»£¬Ò²²»»á±»É¾³ý£¬Äã°Ñ¶«Î÷·ÅÆðÀ´Ö®ºó¾Í¿ÉÒÔÈ¥×öÄãµÄÁÙʱ¹¤×÷ÁË£¬×öÍêÒÔºóÔÙÀ´È¡×ߣ¬¾Í¿ÉÒÔ¼ÌÐøÖ®Ç°ÊÖÍ·µÄÊÂÁË¡£
²Ù×÷²½Ö裺
£¨1£©git stash¿ÉÒÔ¼ÓÉÏsave²ÎÊýºóÃæ´ø±¸×¢ÐÅÏ¢£¨git stash save '±¸×¢ÐÅÏ¢'£©
£¨2£©´Ëʱ¹¤×÷Ŀ¼ÒѾÇå¿Õ£¬¿ÉÒÔÇл»µ½ÆäËû·ÖÖ§¸ÉÆäËûÊÂÇéÁË
£¨3£©git stash popµ¯³öµÚÒ»¸östash£¨¸Ãstash´ÓÀúÊ·stashÖÐÒÆ³ý£©£»»òÕßʹÓÃgit
stash apply´ïµ½ÏàͬµÄЧ¹û£¨¸ÃstashÈÔ´æÔÚstash listÖУ©£¬Í¬Ê±¿ÉÒÔʹÓÃgit
stash list²é¿´stashÀúÊ·¼Ç¼²¢ÔÚapplyºóÃæ¼ÓÉÏÖ¸¶¨µÄstash·µ»Øµ½¸Ãstash¡£
×¢Ò⣺ûÓб»trackµÄÎļþ»á±»gitºöÂÔ¶ø²»±»stash£¬Èç¹ûÏëÒ»Æðstash£¬¼ÓÉÏ-u²ÎÊý¡£
reflog£ºÒýÓüǼµÄlog
¿ÉÒԲ鿴gitµÄÒýÓüǼ£¬²»Ö¸¶¨²ÎÊý£¬Ä¬ÈÏÏÔʾHEADµÄÒýÓüǼ£»Èç¹û²»Ð¡ÐİѷÖ֧ɾµôÁË£¬¿ÉÒÔʹÓøÃÃüÁî²é¿´ÒýÓüǼ£¬È»ºóʹÓÃcheckoutÇе½¸Ã¼Ç¼´¦Öؽ¨·ÖÖ§¼´¿É¡£
×¢Ò⣺²»ÔÙ±»ÒýÓÃÖ±½Ó»ò¼ä½ÓÖ¸ÏòµÄ commits »áÔÚÒ»¶¨Ê±¼äºó±» Git »ØÊÕ£¬ËùÒÔʹÓà reflog
À´Õһر»É¾³ýµÄ branch µÄ²Ù×÷Ò»¶¨Òª¼°Ê±£¬²»È»ÓпÉÄÜ»áÓÉÓÚ commit ±»»ØÊÕ¶øÔÙÒ²ÕÒ²»»ØÀ´¡£
¿´¿´ÎÒ¶¼¸ÄÁËʲô
log£º²é¿´ÒÑÌá½»ÄÚÈÝ
git log -p¿ÉÒԲ鿴ÿ¸öcommitµÄ¸Ä¶¯Ï¸½Ú£¨µ½¸Ä¶¯ÎļþµÄÿһÐУ©
git log --stat²é¿´¼òҪͳ¼Æ£¨ÄöÎļþ¸Ä¶¯ÁË£©
git show Ö¸¶¨commit Ö¸¶¨ÎļþÃû²é¿´Ö¸¶¨commitµÄÖ¸¶¨Îļþ¸Ä¶¯Ï¸½Ú
diff£º²é¿´Î´Ìá½»ÄÚÈÝ
git diff --staged¿ÉÒÔÏÔʾÔÝ´æÇøºÍÉÏÒ»ÌõÌá½»Ö®¼äµÄ²»Í¬¡£»»¾ä»°Ëµ£¬ÕâÌõÖ¸Áî¿ÉÒÔÈÃÄã¿´µ½¡¸Èç¹ûÄãÁ¢¼´ÊäÈë
git commit£¬Ä㽫»áÌύʲô¡¹
git diff¿ÉÒÔÏÔʾ¹¤×÷Ŀ¼ºÍÔÝ´æÇøÖ®¼äµÄ²»Í¬¡£»»¾ä»°Ëµ£¬ÕâÌõÖ¸Áî¿ÉÒÔÈÃÄã¿´µ½¡¸Èç¹ûÄãÏÖÔÚ°ÑËùÓÐÎļþ¶¼
add£¬Äã»áÏòÔÝ´æÇøÖÐÔö¼ÓÄÄЩÄÚÈÝ¡¹
git diff HEAD¿ÉÒÔÏÔʾ¹¤×÷Ŀ¼ºÍÉÏÒ»ÌõÌá½»Ö®¼äµÄ²»Í¬£¬ËüÊÇÉÏÃæÕâ¶þÕßµÄÄÚÈÝÏà¼Ó¡£»»¾ä»°Ëµ£¬ÕâÌõÖ¸Áî¿ÉÒÔÈÃÄã¿´µ½¡¸Èç¹ûÄãÏÖÔÚ°ÑËùÓÐÎļþ¶¼
add È»ºó git commit£¬Ä㽫»áÌύʲô¡¹£¨²»¹ýÐèҪעÒ⣬ûÓб» Git ¼Ç¼ÔÚ°¸µÄÎļþ£¨¼´´ÓÀ´Ã»Óб»
add ¹ýµÄÎļþ£¬untracked files ²¢²»»áÏÔʾ³öÀ´¡£ÒòΪ¶Ô Git À´ËµËü²¢²»´æÔÚ£©ÊµÖÊÉÏ£¬Èç¹ûÄã°Ñ
HEAD »»³É±ðµÄcommit£¬Ò²¿ÉÒÔÏÔʾµ±Ç°¹¤×÷Ŀ¼ºÍÕâÌõ commit µÄÇø±ð¡£
¸Õ¸ÕÌá½»µÄ´úÂë·¢ÏÖд´íÁËÔõô°ì£¿
ÔÙÌáÒ»¸öÐÞ¸´ÁË´íÎóµÄcommit£¿¿ÉÒÔÊÇ¿ÉÒÔ£¬²»¹ý»¹ÓÐÒ»¸ö¸ü¼ÓÓÅÑźͼòµ¥µÄ½â¾ö·½·¨£ºcommit --amend¡£
¾ßÌå×ö·¨£º
£¨1£©Ð޸ĺÃÎÊÌâ
£¨2£©½«ÐÞ¸Äaddµ½ÔÝ´æÇø
£¨3£©Ê¹ÓÃgit commit --amendÌá½»Ð޸쬽á¹ûÈçÏÂͼ£º

¼õÉÙÁËÒ»´ÎÎÞνµÄcommit¡£
´íÎó²»ÊÇ×îеÄÌá½»¶øÊǵ¹ÊýµÚ¶þ¸ö£¿
ʹÓÃrebase -i£¨½»»¥Ê½rebase£©£º
Ëùν¡¸½»»¥Ê½ rebase¡¹£¬¾ÍÊÇÔÚ rebase µÄ²Ù×÷Ö´ÐÐ֮ǰ£¬Äã¿ÉÒÔÖ¸¶¨Òª
rebase µÄ commit Á´ÖеÄÿһ¸ö commit ÊÇ·ñÐèÒª½øÒ»²½Ð޸ģ¬ÄÇôÄã¾Í¿ÉÒÔÀûÓÃÕâ¸öÌØµã£¬½øÐÐÒ»´Î¡¸ÔµØ
rebase¡¹¡£
²Ù×÷¹ý³Ì£º
£¨1£©git rebase -i HEAD^^
˵Ã÷£ºÔÚ Git ÖУ¬ÓÐÁ½¸ö¡¸Æ«ÒÆ·ûºÅ¡¹£º ^ ºÍ ~¡£
^ µÄÓ÷¨£ºÔÚ commit µÄºóÃæ¼ÓÒ»¸ö»ò¶à¸ö ^ ºÅ£¬¿ÉÒÔ°Ñ commit Íù»ØÆ«ÒÆ£¬Æ«ÒƵÄÊýÁ¿ÊÇ
^ µÄÊýÁ¿¡£ÀýÈ磺master^ ±íʾ master Ö¸ÏòµÄ commit ֮ǰµÄÄǸö commit£»
HEAD^^ ±íʾ HEAD ËùÖ¸ÏòµÄ commit ÍùǰÊýÁ½¸ö commit¡£
~ µÄÓ÷¨£ºÔÚ commit µÄºóÃæ¼ÓÉÏ ~ ºÅºÍÒ»¸öÊý£¬¿ÉÒÔ°Ñ commit Íù»ØÆ«ÒÆ£¬Æ«ÒƵÄÊýÁ¿ÊÇ
~ ºÅºóÃæµÄÊý¡£ÀýÈ磺HEAD~5 ±íʾ HEAD Ö¸ÏòµÄ commitÍùǰÊý 5 ¸ö commit¡£
ÉÏÃæÕâÐдúÂë±íʾ£¬°Ñµ±Ç° commit £¨ HEAD ËùÖ¸ÏòµÄ commit£© rebase µ½ HEAD
֮ǰ 2 ¸öµÄ commit ÉÏ£º

(2)½øÈë±à¼Ò³Ã棬ѡÔñcommit¶ÔÓ¦µÄ²Ù×÷£¬commitΪÕýÐòÅÅÁУ¬¾ÉµÄÔÚÉÏ£¬ÐµÄÔÚÏ£¬Ç°Ãæ»ÆÉ«µÄΪÈçºÎ²Ù×÷¸Ãcommit£¬Ä¬ÈÏpick£¨Ö±½ÓÓ¦ÓøÃcommit²»×öÈκθı䣩£¬Ð޸ĵÚÒ»¸öcommitΪedit£¨Ó¦ÓÃÕâ¸ö
commit£¬È»ºóÍ£ÏÂÀ´µÈ´ý¼ÌÐøÐÞÕý£©È»ºó:wqÍ˳ö±à¼Ò³Ã棬´ËʱrebaseÍ£ÔÚµÚ¶þ¸öcommitµÄλÖ㬴Ëʱ¿ÉÒÔ¶ÔÄÚÈݽøÐÐÐ޸ģº


£¨3£©ÐÞ¸ÄÍêºóʹÓÃadd£¬commit --amend½«ÐÞ¸ÄÌá½»
£¨4£©git rebase --continue¼ÌÐø rebase ¹ý³Ì£¬°ÑºóÃæµÄ commit
Ö±½ÓÓ¦ÓÃÉÏÈ¥£¬Õâ´Î½»»¥Ê½ rebase µÄ¹ý³Ì¾ÍÍêÃÀ½áÊøÁË£¬ÄãµÄÄǸöµ¹ÊýµÚ¶þ¸öд´íµÄ commit
¾ÍÒ²±»ÐÞÕýÁË£º

ÏëÖ±½Ó¶ªÆúij´ÎÌá½»£¿
reset --hard ¶ªÆú×îеÄÌá½»
git reset --hard HEAD^
HEAD^ ±íʾ HEAD Íù»ØÊýÒ»¸öλÖÃµÄ commit £¬ÉϽڸÕ˵¹ý£¬¼ÇµÃ°É£¿

Óý»»¥Ê½ rebase ³·ÏúÀúÊ·Ìá½»
²Ù×÷²½ÖèÓëÐÞ¸ÄÀúÊ·Ìá½»ÀàËÆ£¬µÚ¶þ²½°ÑÐèÒª³·ÏúµÄcommitÐÞ¸ÄΪdrop£¬ÆäËû²½Öè²»ÔÙ׸Êö¡£

ÓÃ rebase --onto ³·ÏúÌá½»
git rebase --onto HEAD^^ HEAD^ branch1
ÉÏÃæÕâÐдúÂëµÄÒâ˼ÊÇ£ºÒÔµ¹ÊýµÚ¶þ¸ö commit ΪÆðµã£¨Æðµã²»°üº¬ÔÚ rebase ÐòÁÐÀ£¬branch1
ΪÖյ㣬rebase µ½µ¹ÊýµÚÈý¸ö commit ÉÏ¡£

´íÎó´úÂëÒѾpush£¿
ÓеÄʱºò£¬´úÂë push µ½ÁËÔ¶³Ì²Ö¿â£¬²Å·¢ÏÖÓиö commit д´íÁË¡£ÕâÖÖÎÊÌâµÄ´¦Àí·ÖÁ½ÖÖÇé¿ö£º
³ö´íÄÚÈÝÔÚ×Ô¼ºµÄ·ÖÖ§
¼ÙÈçÊÇij¸öÄã×Ô¼º¶ÀÁ¢¿ª·¢µÄ branch ³ö´íÁË£¬²»»áÓ°Ïìµ½ÆäËûÈË£¬ÄÇû¹ØÏµÓÃÇ°Ãæ¼¸½Ú½²µÄ·½·¨°Ñд´íµÄ
commit Ð޸ĻòÕßɾ³ýµô£¬È»ºóÔÙ push ÉÏÈ¥¾ÍºÃÁË¡£µ«ÊÇ´Ëʱ»ápush±¨´í£¬ÒòΪԶ³Ì²Ö¿â°üº¬±¾µØÃ»ÓеÄ
commits£¨ÔÚ±¾µØÒѾ±»Ìæ»»»ò±»É¾³ýÁË£©£¬´Ëʱֱ½ÓʹÓÃgit push origin ·ÖÖ§Ãû -fÇ¿ÖÆpush¡£
ÎÊÌâÄÚÈÝÒѺϲ¢µ½master
£¨1£©Ôö¼ÓÐÂÌá½»¸²¸Ç֮ǰÄÚÈÝ
£¨2£©Ê¹ÓÃgit revert Ö¸¶¨commit
ËüµÄÓ÷¨ºÜ¼òµ¥£¬ÄãÏ£Íû³·ÏúÄĸö commit£¬¾Í°ÑËüÌîÔÚºóÃæ¡£È磺git revert HEAD^
ÉÏÃæÕâÐдúÂë¾Í»áÔö¼ÓÒ»ÌõÐ嵀 commit£¬ËüµÄÄÚÈݺ͵¹ÊýµÚ¶þ¸ö commit ÊÇÏà·´µÄ£¬´Ó¶øºÍµ¹ÊýµÚ¶þ¸ö
commit Ï໥µÖÏû£¬´ïµ½³·ÏúµÄЧ¹û¡£ÔÚ revert Íê³ÉÖ®ºó£¬°ÑÐ嵀 commit ÔÙ push
ÉÏÈ¥£¬Õâ¸ö commit µÄÄÚÈݾͱ»³·ÏúÁË¡£ËüºÍÇ°ÃæËù½éÉܵij·Ïú·½Ê½Ïà±È£¬×îÖ÷ÒªµÄÇø±ðÊÇ£¬Õâ´Î¸Ä¶¯Ö»ÊDZ»¡¸·´×ª¡¹ÁË£¬²¢Ã»ÓÐÔÚÀúÊ·ÖÐÏûʧµô£¬ÄãµÄÀúÊ·ÖÐ»á´æÔÚÁ½Ìõ
commit £ºÒ»¸öÔʼ commit £¬Ò»¸ö¶ÔËüµÄ·´×ª commit¡£
reset£º²»Ö¹¿ÉÒÔ³·ÏúÌá½»
git reset --hard Ö¸¶¨commitÄãµÄ¹¤×÷Ŀ¼ÀïµÄÄÚÈݻᱻÍêÈ«ÖØÖÃΪºÍÖ¸¶¨commitλÖÃÏàͬµÄÄÚÈÝ¡£»»¾ä»°Ëµ£¬¾ÍÊÇÄãµÄδÌá½»µÄÐ޸Ļᱻȫ²¿²Áµô¡£
git reset --soft Ö¸¶¨commit»áÔÚÖØÖà HEAD ºÍ branch ʱ£¬±£Áô¹¤×÷Ŀ¼ºÍÔÝ´æÇøÖеÄÄÚÈÝ£¬²¢°ÑÖØÖÃ
HEAD Ëù´øÀ´µÄеIJîÒì·Å½øÔÝ´æÇø¡£
ʲôÊÇ¡¸ÖØÖà HEAD Ëù´øÀ´µÄеIJîÒ졹£¿¾ÍÊÇÕâÀ

git reset --mixed£¨»òÕß²»¼Ó²ÎÊý£© Ö¸¶¨commit±£Áô¹¤×÷Ŀ¼£¬²¢ÇÒÇå¿ÕÔÝ´æÇø¡£Ò²¾ÍÊÇ˵£¬¹¤×÷Ŀ¼µÄÐ޸ġ¢ÔÝ´æÇøµÄÄÚÈÝÒÔ¼°ÓÉ
reset Ëùµ¼ÖµÄеÄÎļþ²îÒ죬¶¼»á±»·Å½ø¹¤×÷Çø¡£¼ò¶øÑÔÖ®£¬¾ÍÊÇ¡¸°ÑËùÓвîÒì¶¼»ìºÏ£¨mixed£©·ÅÔÚ¹¤×÷ÇøÖС¹¡£
checkout£ºÇ©³öÖ¸¶¨commit
checkoutµÄ±¾ÖÊÊÇÇ©³öÖ¸¶¨µÄcommit£¬²»Ö¹¿ÉÒÔÇл»branch»¹¿ÉÒÔÖ¸¶¨commit×÷Ϊ²ÎÊý£¬°ÑHEADÒÆ¶¯µ½Ö¸¶¨µÄcommitÉÏ£»ÓëresetµÄÇø±ðÔÚÓÚÖ»ÒÆ¶¯HEAD²»¸Ä±ä°ó¶¨µÄbranch£»git
checkout --detach¿ÉÒÔ°Ñ HEAD ºÍ branch ÍÑÀ룬ֱ½ÓÖ¸Ïòµ±Ç° commit¡£

×îºó
Ï£ÍûÎÒµÄ×ܽáÄܸø´ó¼Ò´øÀ´Ð©Ðí°ïÖú£¬Ò²Ï£ÍûºÍ´ó¼ÒÒ»ÆðѧÒÔÖÂÓã¬Ò»Æð³É³¤¡£
|