HTML5¼¼Êõ

Git ÔÚÍŶÓÖеÄ×î¼Ñʵ¼ù--ÈçºÎÕýȷʹÓÃGit Flow - Ãô½ÝµÄË®

×ÖºÅ+ ×÷ÕߣºH5Ö®¼Ò À´Ô´£ºH5Ö®¼Ò 2015-12-25 19:01 ÎÒÒªÆÀÂÛ( )

ÎÒÃÇÒѾ­´ÓSVN Çл»µ½GitºÜ¶àÄêÁË£¬ÏÖÔÚ¼¸ºõËùÓеÄÏîÄ¿¶¼ÔÚʹÓÃGithub¹ÜÀí, ±¾ÆªÎÄÕ½²Ò»ÏÂΪʲôʹÓÃGit, ÒÔ¼°ÈçºÎÔÚÍŶÓÖÐÕýȷʹÓᣠGitµÄÓŵã GitµÄÓŵãºÜ¶à£¬µ«ÊÇÕâÀïÖ»ÁгöÎÒÈÏΪ·Ç³£Í»³öµÄ¼¸µã¡£ ¸ÐÐËȤµÄ£¬¿ÉÒÔÈ¥¿´Ò»ÏÂGit±¾ÉíµÄÉè¼Æ£¬ÄÚÔڵļܹ¹Ìå

ÎÒÃÇÒѾ­´ÓSVN Çл»µ½GitºÜ¶àÄêÁË£¬ÏÖÔÚ¼¸ºõËùÓеÄÏîÄ¿¶¼ÔÚʹÓÃGithub¹ÜÀí, ±¾ÆªÎÄÕ½²Ò»ÏÂΪʲôʹÓÃGit, ÒÔ¼°ÈçºÎÔÚÍŶÓÖÐÕýȷʹÓá£

GitµÄÓŵã

GitµÄÓŵãºÜ¶à£¬µ«ÊÇÕâÀïÖ»ÁгöÎÒÈÏΪ·Ç³£Í»³öµÄ¼¸µã¡£

¸ÐÐËȤµÄ£¬¿ÉÒÔÈ¥¿´Ò»ÏÂGit±¾ÉíµÄÉè¼Æ£¬ÄÚÔڵļܹ¹ÌåÏÖÁ˺ܶàµÄÓÅÊÆ£¬²»À¢Êdzö×ÊÌì²Å³ÌÐòÔ±Linus (LinuxÖ®¸¸) Ö®ÊÖ

°æ±¾¹ÜÀíµÄÌôÕ½

ËäÈ»ÓÐÕâôÓÅÐãµÄ°æ±¾¹ÜÀí¹¤¾ß£¬µ«ÊÇÎÒÃÇÃæ¶Ô°æ±¾¹ÜÀíµÄʱºò£¬ÒÀÈ»Óзdz£´óµÃÌôÕ½£¬ÎÒÃǶ¼ÖªµÀ´ó¼Ò¹¤×÷ÔÚͬһ¸ö²Ö¿âÉÏ£¬ÄÇô±Ë´ËµÄ´úÂëЭ×÷±ØÈ»´øÀ´ºÜ¶àÎÊÌâºÍÌôÕ½£¬ÈçÏ£º

´ó²¿·Ö¿ª·¢ÈËÔ±ÏÖÔÚʹÓÃGit¾ÍÖ»ÊÇÓÃÈý¸öÉõÖÁÁ½¸ö·ÖÖ§£¬Ò»¸öÊÇMaster, Ò»¸öÊÇDevelop, »¹ÓÐÒ»¸öÊÇ»ùÓÚDevelop´òµÃ¸÷ÖÖ·ÖÖ§¡£Õâ¸öÔÚСÏîÄ¿¹æÄ£µÄʱºò»¹ÃãÇ¿¿ÉÒÔÖ§³Å£¬ÒòΪºÜ¶àÈË×öÏîÄ¿¾ÍÖ»ÓÐÒ»¸öRelease, µ«ÊÇÈËÔ±Ò»¶à£¬¶øÇÒÏîÄ¿ÖÜÆÚÒ»³¤¾Í»á³öÏÖ¸÷ÖÖÎÊÌâ¡£

Git Flow

¾ÍÏñ´úÂëÐèÒª´úÂë¹æ·¶Ò»Ñù£¬´úÂë¹ÜÀíͬÑùÐèÒªÒ»¸öÇåÎúµÄÁ÷³ÌºÍ¹æ·¶

Vincent Driessen ͬѧΪÁ˽â¾öÕâ¸öÎÊÌâÌá³öÁË A Successful Git Branching Model

ÏÂÃæÊÇGit FlowµÄÁ÷³Ìͼ

ÉÏÃæµÄͼÄãÀí½â²»ÁË£¿ û¹ØÏµ£¬Õâ²»ÊÇÄãµÄ´í£¬ÎÒ¾õµÃÕâÕÅͼ±¾ÉíÓеãÎÊÌ⣬ÕâÕÅͼӦ¸Ã×óת90¶È£¬´ó¼ÒÓ¦¸Ã¾ÍºÜÓÃÒÔÀí½âÁË¡£

Git Flow³£ÓõķÖÖ§
  • Production ·ÖÖ§
  • Ò²¾ÍÊÇÎÒÃǾ­³£Ê¹ÓõÄMaster·ÖÖ§£¬Õâ¸ö·ÖÖ§×î½ü·¢²¼µ½Éú²ú»·¾³µÄ´úÂ룬×î½ü·¢²¼µÄRelease£¬ Õâ¸ö·ÖÖ§Ö»ÄÜ´ÓÆäËû·ÖÖ§ºÏ²¢£¬²»ÄÜÔÚÕâ¸ö·ÖÖ§Ö±½ÓÐÞ¸Ä

  • Develop ·ÖÖ§
  • Õâ¸ö·ÖÖ§ÊÇÎÒÃÇÊÇÎÒÃǵÄÖ÷¿ª·¢·ÖÖ§£¬°üº¬ËùÓÐÒª·¢²¼µ½ÏÂÒ»¸öReleaseµÄ´úÂ룬Õâ¸öÖ÷ÒªºÏ²¢ÓëÆäËû·ÖÖ§£¬±ÈÈçFeature·ÖÖ§

  • Feature ·ÖÖ§
  • Õâ¸ö·ÖÖ§Ö÷ÒªÊÇÓÃÀ´¿ª·¢Ò»¸öÐµĹ¦ÄÜ£¬Ò»µ©¿ª·¢Íê³É£¬ÎÒÃǺϲ¢»ØDevelop·ÖÖ§½øÈëÏÂÒ»¸öRelease

  • Release·ÖÖ§
  • µ±ÄãÐèÒªÒ»¸ö·¢²¼Ò»¸öÐÂReleaseµÄʱºò£¬ÎÒÃÇ»ùÓÚDevelop·ÖÖ§´´½¨Ò»¸öRelease·ÖÖ§£¬Íê³ÉReleaseºó£¬ÎÒÃǺϲ¢µ½MasterºÍDevelop·ÖÖ§

  • Hotfix·ÖÖ§
  • µ±ÎÒÃÇÔÚProduction·¢ÏÖеÄBugʱºò£¬ÎÒÃÇÐèÒª´´½¨Ò»¸öHotfix, Íê³ÉHotfixºó£¬ÎÒÃǺϲ¢»ØMasterºÍDevelop·ÖÖ§£¬ËùÒÔHotfixµÄ¸Ä¶¯»á½øÈëÏÂÒ»¸öRelease

    Git FlowÈçºÎ¹¤×÷ ³õʼ·ÖÖ§

    ËùÓÐÔÚMaster·ÖÖ§ÉϵÄCommitÓ¦¸ÃTag

    Feature ·ÖÖ§

    ·ÖÖ§Ãû feature/*

    Feature·ÖÖ§×öÍêºó£¬±ØÐëºÏ²¢»ØDevelop·ÖÖ§, ºÏ²¢Íê·ÖÖ§ºóÒ»°ã»áɾµãÕâ¸öFeature·ÖÖ§£¬µ«ÊÇÎÒÃÇÒ²¿ÉÒÔ±£Áô

    Release·ÖÖ§

    ·ÖÖ§Ãû release/*

    Release·ÖÖ§»ùÓÚDevelop·ÖÖ§´´½¨£¬´òÍêRelease·ÖÖ®ºó£¬ÎÒÃÇ¿ÉÒÔÔÚÕâ¸öRelease·ÖÖ§ÉϲâÊÔ£¬ÐÞ¸ÄBugµÈ¡£Í¬Ê±£¬ÆäËü¿ª·¢ÈËÔ±¿ÉÒÔ»ùÓÚ¿ª·¢ÐµÄFeature (¼Çס£ºÒ»µ©´òÁËRelease·ÖÖ§Ö®ºó²»Òª´ÓDevelop·ÖÖ§ÉϺϲ¢Ðµĸ͝µ½Release·ÖÖ§)

    ·¢²¼Release·Ö֧ʱ£¬ºÏ²¢Releaseµ½MasterºÍDevelop£¬ ͬʱÔÚMaster·ÖÖ§ÉÏ´ò¸öTag¼ÇסRelease°æ±¾ºÅ£¬È»ºó¿ÉÒÔɾ³ýRelease·ÖÖ§ÁË¡£

    ά»¤·ÖÖ§ Hotfix

    ·ÖÖ§Ãû hotfix/*

    hotfix·ÖÖ§»ùÓÚMaster·ÖÖ§´´½¨£¬¿ª·¢ÍêºóÐèÒªºÏ²¢»ØMasterºÍDevelop·ÖÖ§£¬Í¬Ê±ÔÚMasterÉÏ´òÒ»¸ötag

    Git Flow´úÂëʾÀý

    a. ´´½¨develop·ÖÖ§

    git branch develop git push -u origin develop

    b. ¿ªÊ¼ÐÂFeature¿ª·¢

    git checkout -b some-feature develop # Optionally, push branch to origin: git push -u origin some-feature # ×öһЩ¸Ä¶¯ git status git add some-file git commit

    c. Íê³ÉFeature

    git pull origin develop git checkout develop git merge --no-ff some-feature git push origin develop git branch -d some-feature # If you pushed branch to origin: git push origin --delete some-feature

    d. ¿ªÊ¼Relase

    git checkout -b release-0.1.0 develop # Optional: Bump version number, commit # Prepare release, commit

    e. Íê³ÉRelease

    git checkout master git merge --no-ff release-0.1.0 git push git checkout develop git merge --no-ff release-0.1.0 git push git branch -d release-0.1.0 # If you pushed branch to origin: git push origin --delete release-0.1.0 git tag -a v0.1.0 master git push --tags

    f. ¿ªÊ¼Hotfix

    git checkout -b hotfix-0.1.1 master

    g. Íê³ÉHotfix

    git checkout master git merge --no-ff hotfix-0.1.1 git push git checkout develop git merge --no-ff hotfix-0.1.1 git push git branch -d hotfix-0.1.1 git tag -a v0.1.1 master git push --tags Git flow¹¤¾ß

    ʵ¼ÊÉÏ£¬µ±ÄãÀí½âÁËÉÏÃæµÄÁ÷³Ìºó£¬ÄãÍêÈ«²»ÓÃʹÓù¤¾ß£¬µ«ÊÇʵ¼ÊÉÏÎÒÃǴ󲿷ÖÈ˺ܶàÃüÁî¾ÍÊǼDz»×¡Ñ½£¬Á÷³Ì¾ÍÊǼDz»×¡Ñ½£¬Ö×ô°ìÄØ£¿

    ×ÜÓдÏÃ÷µÄÈË´´ÔìºÃµÄ¹¤¾ß¸ø´ó¼ÒÓÃ, ÄǾÍÊÇGit flow script.

    °²×°
  • OS X
  • brew install git-flow

  • Linux
  • apt-get install git-flow

  • Windows
  • wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash

    ʹÓÃ
  • ·¢²¼Release: git flow release finish RELEASE
    ±ðÍüÁËgit push --tags

  • ¿ªÊ¼Ò»¸öHotfix: git flow hotfix start VERSION [BASENAME]

  • ·¢²¼Ò»¸öHotfix: git flow hotfix finish VERSION

  • Git Flow GUI

    ÉÏÃæ½²ÁËÕâô¶à£¬ÎÒÖªµÀ»¹ÓÐÈ˼Dz»×¡£¬ÄÇôÓÖÓÐÈË×ö³öÁËGUI ¹¤¾ß£¬ÄãÖ»ÐèÒªµã»÷ÏÂÒ»²½¾ÍÐУ¬¹¤¾ß°ïÄã¸ÉÕâЩÊ£¡£¡£¡

    SourceTree

    µ±ÄãÓÃGit-flow³õʼ»¯ºó£¬»ù±¾ÉÏÄãÖ»ÐèÒªµã»÷git flow²Ëµ¥Ñ¡Ôñstart feature, release»òÕßhotfix, ×öÍêºóÔÙ´ÎÑ¡Ôñgit flow²Ëµ¥£¬µã»÷Done Action. ÎÒÀÕ¸öÈ¥£¬ÎÒʵÔÚÏë²»µ½»¹ÓбÈÕâ¸ü¼òµ¥µÄÁË¡£

    ĿǰSourceTreeÖ§³ÖMac, Windows, Linux.

    ÕâôºÃµÄ¹¤¾ßÇëÎʶàÉÙÇ®ÄØ£¿ Ãâ·Ñ!!!!

    Git flow for visual studio

    ¹ã´óVSµÄ¸£Òô
    GitFlow for Visual Studio

    ×îºó

    ÎÒ¾­³£ÊÕµ½ÓʼþÎÊÎÒ£¬ËûÏëʹÓÃGit, µ«Êǹ«Ë¾»¹ÔÚ¼á³ÖʹÓÃSVNµÈ£¬ÎÊÎÒ×îô°ì£¿ Îҵİ취ÊÇ£º

    µÚÒ»£º °ÑÎÒÕâÆªÎÄÕ¸øËû¿´

    µÚ¶þ£º Á¢¼´ÕÒÎÒ£¬¼ÓÈëÎÒÃǹ«Ë¾£¬ÎÒµÄÓÊÏäÊÇwangdeshui@outlook.com QQ: 353275476

    ¡¡

    1.±¾Õ¾×ñÑ­ÐÐÒµ¹æ·¶£¬ÈκÎ×ªÔØµÄ¸å¼þ¶¼»áÃ÷È·±ê×¢×÷ÕߺÍÀ´Ô´£»2.±¾Õ¾µÄÔ­´´ÎÄÕ£¬Çë×ªÔØÊ±Îñ±Ø×¢Ã÷ÎÄÕÂ×÷ÕߺÍÀ´Ô´£¬²»×ðÖØÔ­´´µÄÐÐΪÎÒÃǽ«×·¾¿ÔðÈΣ»3.×÷ÕßͶ¸å¿ÉÄܻᾭÎÒÃDZ༭Ð޸Ļò²¹³ä¡£

    Ïà¹ØÎÄÕÂ
    • ÔÆ¼ÆËã֮·-°¢ÀïÔÆÉÏ£ºÊý¾Ý¿âÁ¬½ÓÊý¹ýÍòµÄÕæÏ࣬´Ó°¢ÀïÔÆRDSµ½Î¢Èí.NET Core - ²©¿ÍÔ°ÍŶÓ

      ÔÆ¼ÆËã֮·-°¢ÀïÔÆÉÏ£ºÊý¾Ý¿âÁ¬½ÓÊý¹ýÍòµÄÕæÏ࣬´Ó°¢ÀïÔÆRDSµ½Î¢Èí.N

      2017-04-08 15:00

    • ÔÆ¼ÆËã֮·-°¢ÀïÔÆÉÏ£ºRDSÊý¾Ý¿âÁ¬½ÓÊý¹ýÍòÒý·¢¹ÊÕÏ£¬Ö÷±¸¿âÇл»ºó»Ö¸´Õý³£ - ²©¿ÍÔ°ÍŶÓ

      ÔÆ¼ÆËã֮·-°¢ÀïÔÆÉÏ£ºRDSÊý¾Ý¿âÁ¬½ÓÊý¹ýÍòÒý·¢¹ÊÕÏ£¬Ö÷±¸¿âÇл»ºó»Ö

      2017-04-07 16:00

    • ´ÓVisual Studio¿´Î¢Èí20Äê¼¼Êõ±äǨ - ÆÏÌѳǿؼþ¼¼ÊõÍŶÓ

      ´ÓVisual Studio¿´Î¢Èí20Äê¼¼Êõ±äǨ - ÆÏÌѳǿؼþ¼¼ÊõÍŶÓ

      2017-03-17 11:00

    • ÌÚÑ¶ÔÆÊý¾Ý¿âÍŶӣºSQL Server Êý¾Ý¼ÓÃܹ¦ÄܽâÎö - ÌÚÑ¶ÔÆ¼¼ÊõÉçÇø

      ÌÚÑ¶ÔÆÊý¾Ý¿âÍŶӣºSQL Server Êý¾Ý¼ÓÃܹ¦ÄܽâÎö - ÌÚÑ¶ÔÆ¼¼ÊõÉçÇø

      2017-03-17 10:00

    ÍøÓѵãÆÀ
    ½