±à¼ÍƼö: |
±¾ÎÄÖ÷ÒªÌôÑ¡¼¸¸ö×î¼òµ¥µÄÀý×ÓÀ´½²½âGit
ʵ²Ù»ù´¡£¬Ï£Íû¿ÉÒÔ¼ÓÉî¶Ô¾ßÌå Git ÃüÁîµÄ²Ù×÷Àí½â¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐŹ«ÖÚºÅGitHubDaily£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
Git ×÷Ϊ¾Ó¼Ò±Ø±¸¡¢ÍŶÓÐ×÷Ö®ÀûÆ÷£¬×Ô´Ó Linus Torvalds
·¢²¼Õâ¿î¹¤¾ßºó£¬±ãÒ»Ö±Êܵ½¸÷·¿ª·¢ÕßµÄϲ°®¡£
²»¹ý£¬¾¡¹ÜÈç´Ë£¬Ð¡ G »¹ÊǾ³£ÄÜÔÚ¹«Öںźǫ́£¬¿´µ½Óв»ÉÙË®ÓÑÁôÑÔ·´À¡£¬Ëµ Git ÀïÃæÌ«¶à¸É°Í°Í£¬¿´ÆðÀ´·Ç³£¿ÝÔïÎÞζµÄÃüÁîÐУ¬Ò»µ©¼¸ÌìûÓ㬾ͺÜÈÝÒ×¾ÍÍüµÃÒ»¸É¶þ¾»£¬Ï£Íû
GitHubDaily ÄܳöһЩÓë Git Ïà¹ØµÄ¸¨Öú½Ì³Ì£¬»òÕ߱ȽÏÓÐȤ¡¢¶ÔС°×±È½ÏÓѺõÄѧϰ·½Ê½¡£
emmm.. ×÷ΪÓÐÇó±ØÓ¦µÄС G£¬µ±È»ÊÇÑ¡Ôñ¾¡¿ÉÄÜÂú×ã´ó¼ÒµÄÒ»ÇÐÒªÇóÀ²¡£
¼¸Ììǰ£¬Ð¡ G żȻÔÚ Twitter ¿´µ½Ò»ÆªÎÄÕ£º¡¶CS Visualized: Useful
Git Commands¡·¡£
×÷ÕßÊÇÀ´×ÔÓ¢Êô¸çÂ×±ÈÑǵÄС½ã½ã Lydia Hallie£¬ÔÚÕâÆªÎÄÕÂÀïÃæ£¬Ëýͨ¹ýÉú¶¯ÐÎÏóµÄ¶¯»£¬ÒÔ¸ü¼ÓÖ±¹ÛµÄ·½Ê½£¬Ïò¿ª·¢Õßչʾ
Git ÃüÁîÖÐµÄ merge¡¢rebase¡¢reset¡¢revert¡¢cherry-pick µÈ³£ÓÃɧ²Ù×÷µÄ¾ßÌåÔÀí¡£
½ÓÏÂÀ´£¬Ð¡ G »áÌôÑ¡¼¸¸ö×î¼òµ¥µÄÀý×Ó£¬ÈÃÄãÃÇ¿´¿´ÕâλС½ã½ãÊÇÈçºÎÓö¯»À´½øÐÐչʾµÄ¡£
ÔÚ¿ªÊ¼Ö®Ç°£¬»¹ÊǵÃÏȸú´ó¼Ò¼òµ¥ËµÒ»Ï£¬ÕâÆªÎÄÕ²»ËãÊÇÕë¶ÔС°×ÃÈÐ嵀 Git ³õ¼¶ÈëÃÅÎÄÕ£¬¶øÊÇÏ£Íû°ïÖúÓÐÒ»¶¨
Git ʵ²Ù»ù´¡µÄÓû§£¬¼ÓÉî¶Ô¾ßÌå Git ÃüÁîµÄ²Ù×÷Àí½â¡£
ºÏ²¢£¨Merge£©
ÎÒÃǶ¼ÖªµÀ£¬ÔÚʹÓà Git ×öÈÕ³£¿ª·¢ÏîÄ¿µÄʱºò£¬¶¼»áÑ¡Ôñ½«ÏîÄ¿Çл»³É¶à¸ö·ÖÖ§£¬ÔÚ²»Í¬·ÖÖ§ÉÏ´¦Àí²»Í¬ÊÂÎñ¡£×î¼òµ¥µÄ£¬¾ÍÊÇ¿ª·¢¡¢²âÊÔ¡¢Éú²úµÈ¼¸¸ö²»Í¬»·¾³À´»ØÇл»£¬Ê¹µÃÏîÄ¿¹ÜÀíÓë²úÆ·µü´ú¸üΪÇáËÉ£¬Òà¿É×î´ó»¯±ÜÃâÏîÄ¿³öÏÖÑÏÖØÂ©¶´Ê±Ëù´øÀ´µÄÉ˺¦¡£
µ±ÎÒÃÇÔÚ²»Í¬·ÖÖ§¿ª·¢Íê´úÂëºó£¬»áÑ¡Ôñ½«·ÖÖ§½øÐкϲ¢£¨merge£©¡£Æ½Ê±³£ÓÃµÄ git merge ²Ù×÷£¬ÓÖ¿É·ÖΪÕâÁ½ÖÖÀàÐÍ£ºfast-forwar
ºÍno-fast-forward¡£
fast-forward
Ò»°ãÇé¿öÏ£¬Git »áĬÈÏʹÓà fast-forward ÕâÖÖÀàÐÍÀ´´¦Àí·ÖÖ§ºÏ²¢£¬µ±ÎÒÃdzɹ¦ºÏ²¢ºó£¬²»»á²úÉúÈκÎÌá½»¼Ç¼£¬ÇÒµ±¾É·ÖÖ§±»ÒƳýºó£¬Æä·ÖÖ§ÐÅÏ¢Ò²»á±»Ò»²¢É¾³ý¡£
ͨ¹ý¶¯»µÄ·½Ê½Õ¹Ê¾£¬¾ÍÏñÏÂÃæÕâÑù£º

no-fast-forward
¶øµ±ÎÒÃÇʹÓà no-fast-forward ģʽ£¬¼´Ôںϲ¢·ÖÖ§ÃüÁî¼ÓÈë
--no-ff ºó׺µÄ·½Ê½ÔËÐÐʱ£¬±ã»áÉú³ÉÒ»¸öеÄÌá½»¼Ç¼£¬¾ÍÏñÏÂÃæÕâÑù£º

ºÏ²¢³åÍ»
ÔÚÎÒÃÇÈÕ³£½øÐÐÍŶÓÐ×÷¿ª·¢µÄʱºò£¬×Ü»á³öÏÖͬ¸öÎļþÔÚ²»Í¬·ÖÖ§Éϱ»Í¬Ê±±à¼µÄÇé¿ö¡£
ÕâÑù£¬µ±ÎÒÃÇÌá½»´úÂëµÄʱºò£¬±È½ÏÍíÌá½»µÄÁíÒ»·½£¬ÔÚÔËÐÐ Git ÃüÁîʱ¾Í»á±¨³åÍ»´íÎó¡£ÔÚÕý³£Çé¿öÏ£¬Ö»ÒªÎÒÃÇÊÖ¶¯´¦ÀíϳåÍ»Îļþ£¬È»ºóÔÙÖØÐÂÌá½»¼´¿É¡£
´ò¸ö±È·½£¬ÏÖÔÚ´úÂë²Ö¿âÓиö README Îļþ£¬ÔÚͬһÐеÄλÖã¬ÔÚ²»Í¬·ÖÖ§Éϱ»±à¼ÁË£¬ÈçÏÂËùʾ£º

ÄÇô£¬Ê¹Óúϲ¢ÃüÁ¼°ÐÞ¸´³åÍ»µÄ¹ý³Ì£¬Óö¯»µÄÐÎʽչʾ£¬¿´ÆðÀ´¾ÍÏñÏÂÃæÕâÑù£º

¿ÉÒÔ¿´µ½£¬ÔÚÒÆ³ý¶àÓàµÄÌáʾ´úÂëºó£¬»áÖØÐ²úÉúÒ»ÌõеÄÌá½»¼Ç¼¡£
Rebase
ÔÚ½øÐзÖÖ§ºÏ²¢Ç°£¬ÎÒÃÇÒ»°ã»áÏÈʹÓÃpullÃüÁîÀÈ¡ÏßÉϵÄ×îдúÂ룬ÔÚ±£Ö¤ÎÞÈκγåÍ»·¢ÉúµÄǰÌáÏ£¬ÔÙ½øÐзÖÖ§ºÏ²¢¡£
µ«ÊÇ£¬ÕâÖÖ´úÂëÀÈ¡·½Ê½ÊÇ×îΪ¼òµ¥´Ö±©µÄ£¬Í¨¹ýÕâÖÖ·½Ê½ºÏ²¢£¬»áʹµÃÕû¸öÌá½»¼Ç¼¿´ÆðÀ´ÌرðÂÒ£¬²»Ì«Ö±¹ÛÓëÓÅÑÅ¡£
Òò´Ë£¬¶Ô Git ʹÓñȽϹ淶¡¢×·Çó±È½Ï¸ßµÄ³ÌÐòÔ±£¬¶¼»áÏÈʹÓÃrebaseÕûÀíÏÂÌá½»¼Ç¼£¬ÔÙÌá½»´úÂ룬¾¹ýÕâÑù´¦ÀíºóµÄ
Git Ìá½»¼Ç¼£¬¿´×žͱÈÖ±Äл¹Ö±ÁË¡£
ÒÔ¶¯»µÄ·½Ê½³ÊÏÖ£¬¾ÍÏñÏÂÃæÕâÑù£º

¿ÉÒÔÇåÎúµÄ¿´µ½£¬Ô±¾¶Ô½ÓÔÚ master ·ÖÖ§µÚ¶þ´¦µÄ dev ·ÖÖ§£¬±»¶Ô½Óµ½¶¥²¿ÁË¡£
Hard Reset
ÈÕ³£¿ª·¢ÖУ¬ÎÒÃÇ¿ÉÄÜ»áÒòΪÌá½»ÁËijЩÎÞÓôúÂë¶ø½øÐлعö²Ù×÷¡£Í¨³£ÔÚÖ»ÓÐÒ»¸öÈ˶ÀÁ¢¿ª·¢µÄÏîÄ¿Çé¿öÏ£¬»áÑ¡ÓÃ--hardÃüÁîÀ´½øÐлعö´¦Àí¡£
²»¹ý£¬ÕâÖÖ²Ù×÷·½Ê½Óиö²»ºÃµÄµØ·½£¬ÔÚ¶àÈËÐ×÷µÄʱºò£¬Õâô¸ãºÜÈÝÒ×ʹ·ÖÖ§³öÏÖ³åÍ»£¬»òÖ±½Ó»Ùµô±ðÈ˵ÄÌá½»¼Ç¼¡£
hard resetÒÔ¶¯»µÄÐÎʽ±íÏÖ£¬¿´ÆðÀ´¾ÍÏñÏÂÃæÕâÑù£º

³ý´ËÖ®Í⣬С½ã½ã»¹Ìáµ½ÁË Reverting¡¢Cherry-picking¡¢Fetch µÈһϵÁвÙ×÷£¬ÕâÀïÏÞÓÚÆª·ù£¬¾Í²»¸ú´ó¼ÒÒ»Ò»½²½âÀ²¡£
¸ÐÐËȤµÄͬѧ£¬¿ÉÒԲ鿴С½ã½ãÎÄÕÂÏêÇé.
|