ÎÒÃÇÒѾ´Ó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³£ÓõķÖÖ§Ò²¾ÍÊÇÎÒÃǾ³£Ê¹ÓõÄMaster·ÖÖ§£¬Õâ¸ö·ÖÖ§×î½ü·¢²¼µ½Éú²ú»·¾³µÄ´úÂ룬×î½ü·¢²¼µÄRelease£¬ Õâ¸ö·ÖÖ§Ö»ÄÜ´ÓÆäËû·ÖÖ§ºÏ²¢£¬²»ÄÜÔÚÕâ¸ö·ÖÖ§Ö±½ÓÐÞ¸Ä
Õâ¸ö·ÖÖ§ÊÇÎÒÃÇÊÇÎÒÃǵÄÖ÷¿ª·¢·ÖÖ§£¬°üº¬ËùÓÐÒª·¢²¼µ½ÏÂÒ»¸öReleaseµÄ´úÂ룬Õâ¸öÖ÷ÒªºÏ²¢ÓëÆäËû·ÖÖ§£¬±ÈÈçFeature·ÖÖ§
Õâ¸ö·ÖÖ§Ö÷ÒªÊÇÓÃÀ´¿ª·¢Ò»¸öÐµĹ¦ÄÜ£¬Ò»µ©¿ª·¢Íê³É£¬ÎÒÃǺϲ¢»ØDevelop·ÖÖ§½øÈëÏÂÒ»¸öRelease
µ±ÄãÐèÒªÒ»¸ö·¢²¼Ò»¸öÐÂReleaseµÄʱºò£¬ÎÒÃÇ»ùÓÚDevelop·ÖÖ§´´½¨Ò»¸öRelease·ÖÖ§£¬Íê³ÉReleaseºó£¬ÎÒÃǺϲ¢µ½MasterºÍDevelop·ÖÖ§
µ±ÎÒÃÇÔÚProduction·¢ÏÖеÄBugʱºò£¬ÎÒÃÇÐèÒª´´½¨Ò»¸öHotfix, Íê³ÉHotfixºó£¬ÎÒÃǺϲ¢»ØMasterºÍDevelop·ÖÖ§£¬ËùÒÔHotfixµÄ¸Ä¶¯»á½øÈëÏÂÒ»¸öRelease
Git FlowÈçºÎ¹¤×÷ ³õʼ·ÖÖ§ËùÓÐÔÚMaster·ÖÖ§ÉϵÄCommitÓ¦¸ÃTag
·ÖÖ§Ãû feature/*
Feature·ÖÖ§×öÍêºó£¬±ØÐëºÏ²¢»ØDevelop·ÖÖ§, ºÏ²¢Íê·ÖÖ§ºóÒ»°ã»áɾµãÕâ¸öFeature·ÖÖ§£¬µ«ÊÇÎÒÃÇÒ²¿ÉÒÔ±£Áô
·ÖÖ§Ãû release/*
Release·ÖÖ§»ùÓÚDevelop·ÖÖ§´´½¨£¬´òÍêRelease·ÖÖ®ºó£¬ÎÒÃÇ¿ÉÒÔÔÚÕâ¸öRelease·ÖÖ§ÉϲâÊÔ£¬ÐÞ¸ÄBugµÈ¡£Í¬Ê±£¬ÆäËü¿ª·¢ÈËÔ±¿ÉÒÔ»ùÓÚ¿ª·¢ÐµÄFeature (¼Çס£ºÒ»µ©´òÁËRelease·ÖÖ§Ö®ºó²»Òª´ÓDevelop·ÖÖ§ÉϺϲ¢Ðµĸ͝µ½Release·ÖÖ§)
·¢²¼Release·Ö֧ʱ£¬ºÏ²¢Releaseµ½MasterºÍDevelop£¬ ͬʱÔÚMaster·ÖÖ§ÉÏ´ò¸öTag¼ÇסRelease°æ±¾ºÅ£¬È»ºó¿ÉÒÔɾ³ýRelease·ÖÖ§ÁË¡£
·ÖÖ§Ãû hotfix/*
hotfix·ÖÖ§»ùÓÚMaster·ÖÖ§´´½¨£¬¿ª·¢ÍêºóÐèÒªºÏ²¢»ØMasterºÍDevelop·ÖÖ§£¬Í¬Ê±ÔÚMasterÉÏ´òÒ»¸ötag
a. ´´½¨develop·ÖÖ§
git branch develop git push -u origin developb. ¿ªÊ¼ÐÂ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 commitc. Íê³É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-featured. ¿ªÊ¼Relase
git checkout -b release-0.1.0 develop # Optional: Bump version number, commit # Prepare release, commite. Íê³É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 --tagsf. ¿ªÊ¼Hotfix
git checkout -b hotfix-0.1.1 masterg. Íê³É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.
°²×°brew install git-flow
apt-get install git-flow
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
ÉÏÃæ½²ÁËÕâô¶à£¬ÎÒÖªµÀ»¹ÓÐÈ˼Dz»×¡£¬ÄÇôÓÖÓÐÈË×ö³öÁËGUI ¹¤¾ß£¬ÄãÖ»ÐèÒªµã»÷ÏÂÒ»²½¾ÍÐУ¬¹¤¾ß°ïÄã¸ÉÕâЩÊ£¡£¡£¡
SourceTreeµ±ÄãÓÃGit-flow³õʼ»¯ºó£¬»ù±¾ÉÏÄãÖ»ÐèÒªµã»÷git flow²Ëµ¥Ñ¡Ôñstart feature, release»òÕßhotfix, ×öÍêºóÔÙ´ÎÑ¡Ôñgit flow²Ëµ¥£¬µã»÷Done Action. ÎÒÀÕ¸öÈ¥£¬ÎÒʵÔÚÏë²»µ½»¹ÓбÈÕâ¸ü¼òµ¥µÄÁË¡£
ĿǰSourceTreeÖ§³ÖMac, Windows, Linux.
ÕâôºÃµÄ¹¤¾ßÇëÎʶàÉÙÇ®ÄØ£¿ Ãâ·Ñ!!!!
¹ã´óVSµÄ¸£Òô
GitFlow for Visual Studio
ÎÒ¾³£ÊÕµ½ÓʼþÎÊÎÒ£¬ËûÏëʹÓÃGit, µ«Êǹ«Ë¾»¹ÔÚ¼á³ÖʹÓÃSVNµÈ£¬ÎÊÎÒ×îô°ì£¿ Îҵİ취ÊÇ£º
µÚÒ»£º °ÑÎÒÕâÆªÎÄÕ¸øËû¿´
µÚ¶þ£º Á¢¼´ÕÒÎÒ£¬¼ÓÈëÎÒÃǹ«Ë¾£¬ÎÒµÄÓÊÏäÊÇwangdeshui@outlook.com QQ: 353275476
¡¡