gitã®è¯ãããã¾ã ã«åãããªã
ãã2å¹´ãããã§ä¿ºãåããç¾å ´ã¯ã¿ããªgitãæ¡ç¨ãã¦ãããå°±è·ã¨ã¼ã¸ã§ã³ãã¨é¢è«ããã¨ããgitçµé¨ã®æç¡ãããè¨ãããããä»ã§ã¯VSSãCVSã©ããããSVNã§ããæä»£é ãã«ãªã£ã¦ãã¦ãSVNã使ã£ã¦ããç¾å ´ã¯ãã¬ãã«ãä½ãããä¿å®çã»æ§æ ä¾ç¶ãã¨ããé°å²æ°ããæããã
俺ã¨ãã¦ã¯4-5å¹´åããgit(GitHub)ã使ã£ã¦ããããgitã使ããã¨èªä½ã«æµæã¯ãªããä¸éãã®åºæ¬æä½ã¯ã§ãããã人並ã¿ã«ã¯ã§ããã¨è¨ã£ã¦ãå·®ãæ¯ãã¯ãªãã
â¦ããæ£ç´gitã®è¯ãããã¾ãè¦ãã¦ããªãã
ãã俺ãä¸è¦æ¨¡ä»¥ä¸ã®ããã¸ã§ã¯ãã®ãªãªã¼ã¹ãæ¬æ ¼çã«ç®¡çããå´ã§ããã°å ¨ç¶éã£ãææ³ãæã£ããããããªããã§ãä¸äººã®éçºè ã¨ãã¦ããããã10人ç¨åº¦ã®ããã¸ã§ã¯ãã§å©ç¨ããéãããgitã§è¯ãã£ããã¨ããç¶æ³ããã¾ãæãå½ãããªãã
ã§ã¯gitã®ä½ãæ°ã«é£ããªãã®ãæ¸ãã¦ããããã
git
ã¤ã·ã¥ã¼ãã¨ã«ãã©ã³ããåãããã¼ã«ã«ã§ã³ããããã¦ããªã¢ã¼ããã©ã³ãã«push
ãã¦ãGitHubã»GitLabã»Bitbucketçµç±ã§ãã¼ã¸ãªã¯ã¨ã¹ããã³ã¼ãã¬ãã¥ã¼ã®å¾ã«ãã¼ã¸ã
SVN
ãªã¢ã¼ãã®trunkã«åã
人ãç´æ¥ã³ããããã³ã¼ãã¬ãã¥ã¼ã¯ãã¾ããªãããã©ã³ããåããã¨ããªãã
ãã®ãããªéããåºãèæ¯ã«ã¯æ¬¡ã®ãã®ãããã
- gitãæ¡ç¨ããç¾å ´ã¯ãç«ãæåãgit-flowã¨ãããã©ã¯ãã£ã¹ã«å¾ãå¾åããã
- gitãæ¡ç¨ããç¾å ´ã¯ãã³ã¼ãã®å質ãããç¨åº¦ç®¡çããå¾åããã
- SVNã¯éä¸åã§ãããã©ã³ãæ©è½ãªã©ãé常ã«ä½¿ãã«ãã
- SVNãæ¡ç¨ããç¾å ´ã¯ã³ã¼ãã®å質ãããããªãªã¼ã¹ã«å«ãããªããã£ãã¨ã³ããããã¨èããå¾åããã
â gitã¯é¦¬é¹¿ã«ã¯é£ãã
ãã£ã¨ä¸å¯§ãªè¨èã§è¨ãã¨ãgitã¯å¦ç¿ã³ã¹ããé«ããã¨ãªãã
ãã®ããã°ãèªãã 奴ãããgitã®è¯ããçè§£ã§ããªãã®ã¯ãåã馬鹿ã ãããã¨ããæè¦ãåºã¦ãããã¯åãããåå±ã§ã¯ãªãã¦ãããã¯ç´ ç´ã«äºå®ã ã¨æããã§ããã®æ¥çã«ã¯ã俺ããé ã®æªã人ã俺以ä¸ã«gitãçè§£ãã¦ããããçè§£ãããã¨ãããªã人ãã¶ã©ã«ããã®ã ã
ããã¸ã§ã¯ãã®ã¡ã³ãã¼ã§ãgitã®çµé¨ã¯æãã¾ãï¼ãã¨è±ªèªãã¦ãã奴ããç¿æ¥ãPermission denied (publickey).fatal: The remote end hung up unexpectedly
ã¨åºã¾ããæãã¦ãã ããããããã¨ããã¡ã¼ã«ãæ¥ããªã©ãå°å
¥éå£ãããã¦ä½ããªãããã§ããããããããã忣ãªãã¸ããªãã¨ããä»çµã¿èªä½ãå®ç§ã«ã¯åãå
¥ãããã¦ããªãããã«æãã
ããæ¥ãååã社å ãã£ããã§çªç¶ãããªã¡ãã»ã¼ã¸ãæ®ãã(åæãã)ã
ãã®ååã¯æè¡åããªãã®ã«ä»äºãæ±ãè¾¼ãã§ã¯ã¤ã©ã¤ã©ã表ã«åºãã¦ãã¦ãã§ããã ãé¢ãããããªãã£ããã彿奴ã使¥ãã¦ãããªãã¸ããªã«ãã¼ã¸ãªã¯ã¨ã¹ããåºãã¦ããã®ã¯ã¡ã³ãã¼ã§ä¿ºã ãã ã£ãã®ã§ãå«ã ãªããã話ãããããã¨ã«ããã
馬鹿ããã¯è¿äºãæ¥ãªãã£ãããã£ã¦ãã®å ´ã¯ãè¬ã®ã¾ã¾çµãã£ãã
ãããããã®å¾ãå ¨å¡ãéã¾ããã¼ãã£ã³ã°ã®å ´ã§å½¼ã¯ä¿ºã«å¯¾ãã¦ç´æ¥è¦æ±ãã¦ããã
ãªãã¨ãã®é¦¬é¹¿ã¯ã俺ã®ãã©ã³ãããåºãã¦æ¾ç½®ããã¦ããã¼ã¸ãªã¯ã¨ã¹ããã奴ã®ãã©ã³ãããåºãããã¼ã¸ãªã¯ã¨ã¹ãã¨ã³ã³ããªã¯ããã¦ãããããä¿ºã®æ¹ãåãä¸ããã¨è¨ã£ã¦ããã®ã ãããå¾ãªãã»ã©å¹¼ç¨ãªåéãã«ã¯ã©ã¯ã©ããã
ããããèªåã®ç¡ç¥èæ§ããã®åéãã§ç¤¾å ãã£ããã§ä¹±æ´ãªå°è©ãåããæå¥ã説æãæ±ãã¦ãç¡è¦ããã¨ã¯ãªãã¦å¥´ã ã¨ã¯æã£ããã俺ã¯å¥´ã«æ¯ã¹ãã大人ãªã®ã§ããã®å ´ã§ããããã¨ä¸å¯§ã«èª¬æããè§£æ±ºæ¹æ³ãææ¡ããã¨ããããããããªã®ï¼ãã¨ã¯è¨ã£ã¦ããã
ãã®é¦¬é¹¿ã¯è¬ç½ªãããªãã£ãããããã¯å¥ã«å¿ è¦ã§ã¯ãªã次ããã¯å°ãã ãgitã®ä»æ§ãçè§£ãã¦ããããããã°è¯ãã£ããããããæ®å¿µãªãã¨ã«ãã®å¾ãå ¨ãæé·ããèªåã®æãéãã«ãããªãã¨ç´ã人ã«ãªããã¤ãã¦ããã
ä¾ãã°ãå½¼ã¯èªåã®ã³ããããã³ã³ããªã¯ãããã¾ã¾ç¡çãã俺ã¨å
±ç¨ãã¦ãããªã¢ã¼ããã©ã³ãã«push
ããæå¥ãå°ãçµã£ã¦ãã俺ã«è¨ã£ã¦ããã
ã©ãããã³ããããã°ã®èªã¿æ¹ãããåãããªããããã
åã³ä¸å¯§ã«ã123abc
ã§å
¥ã£ã¦ãããããã¡ãã®ã³ãããã§å
¥ã£ããã§ãããã¨æãã¦ãããããç¥è½ã«åé¡ãããã®ãããã¨ããã©ã¤ããé«ãã®ãããã®å¾åå¿ããªããªã£ãã仿¹ãªãã®ã§ä¿ºãããããè§£æ¶ãã¦ãã£ãã
å½¼ã¯é½¢ã«ãã¦30代ä¸ç¤ããããã¾ãæè¡çãªã»ã³ã¹ã¯æããªãã£ããç²¾ç¥çã«ã¯ç¡è«åä¾ã ã£ãããã¨ã³ã¸ãã¢ã¨ãã¦ããç¨åº¦ã®çµé¨ã¨å®ç¸¾ãããããã§ããã®è·å ´ã§ã俺ãããå¤åçµé¨ã¯é·ãã¦ã俺ãããå ¨ç¶ä¿¡é ¼ããã¦å¤§ããªã¿ã¹ã¯ãä»»ãããã¦ãããåä¾¡ã¯æ100ä¸ç¨åº¦ã¯æã£ããã ããããã®ã¬ãã«ã®ä¸å æè¡è ã§ãã£ã¦ãgitã¯é£ããã®ã ã
æ£ç´ã俺ã®gitã«å¯¾ããæªå°è±¡ã®40%ãããã¯ãã®é¦¬é¹¿ã®ããã ã¨æãã
â¡ã³ã¼ãã¬ãã¥ã¼ã常ã«å¿ è¦ã«ãªã
gitãæ¡ç¨ããè·å ´ã¯ç«ãæåãgit-flowã«å£ãã®ã§å¿ ç¶çã«ã³ã¼ãã¬ãã¥ã¼ãæ¡ç¨ãããåé¢ãSVNã§ã¯ããã»ã©å¤ãã¯ãªãã
ã³ã¼ãã¬ãã¥ã¼èªä½ãå¦å®ãã訳ã§ã¯ãªãããã®ç®çã¯ãææç©ã®åè³ªãæ ä¿ããããããã¸ã§ã¯ãå ã§ã³ã¼ããã¼ã¹ãå ±æããããªã©ãæããããã
ããããã³ã¼ãã¬ãã¥ã¼ã®ã¨ã«ããæéãæããã¨ããè² ã®å´é¢ã¯æ¬å½ã«æ·±å»ãªåé¡ã ãå®éã1ã¤ã®ãã¼ã¸ãªã¯ã¨ã¹ãã®ãã¼ã¸ã«æ°é±éæããã®ã¯ã¶ã©ã ãã䏿ããã°æ°ã¶æã¨ãæ°¸ä¹ ã«ãã¼ã¸ãããªãã¨ããäºãæ®éã«ããå¾ããã©ããã¦ãå¿ è¦ã§ããã°å¬ä¿ããã°è©±ã¯å¥ã ããããã常èçã«å ¨ã¦ã®ãã¼ã¸ãªã¯ã¨ã¹ãã«å¬ä¿ã§ããã¯ãããªãã
ã©ããã¦ã¬ãã¥ã¼ã«æéãæããã®ããæ¦ãã¦ä»äººãæ¸ããã³ã¼ããèªãã®ã¯è¦çãªã®ã ãã¾ãããã¼ã¸ã¯æ£ç¤¾å¡ã®ã¿ãè¡ãããã¨å®ãã¦ããç¾å ´ãæå¤ã«å¤ããããèªä½ã¯å½¢å¼çã«ãæ£ç¤¾å¡ã«ããã¸ã§ã¯ãã®è²¬ä»»ãè² ããããã¨ããçææº¢ããããªã·ã¼ã ããå ¨ã¦ã®æ£ç¤¾å¡ãã³ã¼ããèªãã訳ã§ã¯ãªãããã£ã¦ãã¼ã¸ã¯é ããã
ã¯ã£ããè¨ãã¨ãã£ããã¨ãã人éãæ¡ç¨ãã¦ããã°ã³ã¼ãã¬ãã¥ã¼ã¯å¤§ä½ãä¸è¦ã¨ããæã£ã¦ãããã¨ã³ã¸ãã¢ã«ä¿¡é ¼ãæãã°ãã³ã¼ãã¬ãã¥ã¼ãªãããæãèªã¿ãç¨åº¦ã«çãã¦ããã»ã©ä¸ç®çç¶ã®ééããç¡ãéãã¯ããã£ãã¨ãã¼ã¸ããæ¹ããããæçµçãªåä½ã®æ ä¿ã¯ãã¹ããã§ã¼ãºãªã©ã§ç¢ºä¿ã§ããããã ã
ã«ãé¢ãããã³ã¼ãã¬ãã¥ã¼ãæç¨(å¿ è¦)ã¨ãªãã®ã¯ãä¸è¨ã®1)ã2)ã3)ã®ãããªç¶æ ã§ããã
1) ããã¸ã§ã¯ãã¡ã³ãã¼ã®ä¸ã«ã¨ãã§ããªãã´ãããã¦ã誰ããç£è¦ããªãéãã¯ã½ã³ã¼ããã³ãããããæ¾é¡ã«ãªãã
2) ããã¸ã§ã¯ãã¡ã³ãã¼ãå°æ°ç²¾éã§ã¬ãã«ãé«ããèªåã®æ å½å¤ã®åéã«å¯¾ãã¦ãç©æ¥µçã«è¸ã¿è¾¼ãã§ãäºããé«ãåã£ã¦ãããã
3) 以ä¸ã®å ¨ã¦ã¨ã¯è¨ããã¨ã大åãæºãã人ãããã¸ã§ã¯ãå ã«åå¨ããã
- ã¬ãã¥ã¼ã«æéãå²ãã
- ããã®å®è£ ãè¦ä»¶ãæºããã¦ããã©ããããå¤å®ã§ããã ãã®ä»æ§ã«å¯¾ããçè§£ãæã
- ãã¼ã¸ãªã¯ã¨ã¹ããã(æ°æ¥ä»¥å ã¨ã¯è¨ããã¨ã)è¨æ¶ãæ°ãããã¡ã«ã¬ãã¥ã¼ãè¡ãã
- è¨èªããã¬ã¼ã ã¯ã¼ã¯ã«å¯¾ãã¦ä»äººã«æå°ã§ãããããã®ç¥èã¨ã»ã³ã¹ãæã
- ãã®å®è£ ãçæçã§ã¯ãªãä¸ã»é·æçã«ããã¸ã§ã¯ãã«ã©ãå½±é¿ãä¸ããããäºè¦ã§ãã
- ã«ãªã¹ãã¨èª¬å¾åãã³ãã¥ãã±ã¼ã·ã§ã³ã«åªãã¦ãããå¹´é½¢ããã©ã¤ãã ãã¯é«ãã¨ã³ã¸ãã¢ã«å¯¾ãã¦ãæè»ã«ææãåãå ¥ãããããã
1) ã«ã¤ãã¦ã¯ãæããã³ã¼ãã¬ãã¥ã¼ã®æç¨æ§ãå«ã°ããã±ã¼ã¹ã¯å¤§åããããæ³å®ãã¦ãããããããã¨ã©ã®ã¤ã¾ããããã¯æ¡ç¨ããã»ã¹ã§ã®éã¡ãã³ã¼ãã¬ãã¥ã¼å°å ¥ã§ä¿®æ£ãã¦ããã«éããªããOSSã§ãªãéããããã¸ã§ã¯ãã®ã³ã³ããªãã¥ã¼ã¿ã¼ã¯ããããéå®ã§ããã®ã ãã¾ããä»®ã«æ¡ç¨ãã¦ãã¾ã£ã¦ãããã®ã´ãã®ãè§£éãã¨ãã鏿è¢ãæãã
2) ã¯çæ³ã§ããããç¾å®çã«ã¯ãããªè·å ´ã¯ãã¾ããªããããããæ¥æ¬ã®ITæ¥çã«ããã¦ãè¯ãã³ã¼ããæ¸ãããã¨ããæåèªä½ã浸éãã¦ããããåªç§ãªã¨ã³ã¸ãã¢ã¨ããã®ã¯ç¸å¯¾çã«çµ¶å¯¾çã«ãå°ãªãã®ã ãPythonãScalaãGoã¨è¨ã£ã人å£ãå°ãªããåªç§ãªäººéãéã¾ã£ã¦ããè¨èªãªãã¨ããããC#ãRubyãObjective-CãJavaãPHPãªã©ã¯çç³æ··äº¤ã ããåªç§ãªäººãæ¡ç¨ããã«ã¯éãç©ãå¿ è¦ãããã
3) ãæ¥µãã¦é£ãããGitHubã®æåOSSã®ãªãã¸ããªãè¦ãã°ãå¤ãã®ãªãã¸ããªç®¡çè éããå®ã¯ä¼æ¥ããéããã¦ãã¼ã¸ãªã¯ã¨ã¹ãããã§ãã¯ãã¦ããäºãåãããå½¼ãã¯ããã§éãè²°ã£ã¦ãã®ã (ãããé«çµ¦)ããããªå½¼ãã§ãæ°é±éãæ°ã¶æãæ°å¹´(!!)åä½ã§æ¾ç½®ãã¦ãã¾ãã®ã ãæ¥æ¬ã®SIerã®ç¤¾å SEãè¤æ°ããã¸ã§ã¯ããæãæã¡ãã¤ã¤ãçæéã«ã§ãã使¥ã§ã¯ãªãã
ã³ã¼ãã¬ãã¥ã¼å°å ¥ã¯çµå±çã«ã¯ãã³ã¼ãã¯ã§ããã ãæ¸ããªããã¨ããå¢å°ã«è³ãããã©ããã¯ã¹ã«ãæããããã³ã¼ãã¬ãã¥ã¼ãå°å ¥ããã¨ãããã³ã¼ãã®è³ªãä¸ããäºã«ãªããã¡ãã£ã¨ãããªãã¡ã¯ã¿ãªã³ã°ãæ©è½ã®æ¹åãªã©ããã®å ¸åä¾ã§ãã©ããã³ã¼ããæ¸ãã¦ãæ¾ç½®ããã¦ãã¾ããã社å¡ã«å¬ä¿ããã®ãåå«ã ãâ¦ã¨ããäºã«ãªãã®ã§ãæ°è»½ã«ç´ããªããªãã
â¢å©ç¨è ã®è² æ ã大ãã
gitã¯æ¬å½ã«å¼·åã ããã¨ãã°SVNã¨ã¯éã£ã¦ã³ããããå±¥æ´ãæ±ããã«ä¿®æ£ãæ¾é¡ã ããç¡ãã£ããã¨ã«ãã§ããããè¤æ°ãã©ã³ããåãåãã¦ç¾ããéçºããã¼ãä¿ã¦ããããã¯ç´ ç´ã«gitã®é·æã ãä½ã§ãmasterã«å¥½ãæ¾é¡ã«ã³ãããããã¦ããSVNã®ãã°ã¯ã©ããã¦ããã¿ãããããããåãæ¶ãããããã¨ãããã¯ã½ã³ãããã§æ±æããã¦ããã®ã ããã
ã§ããã®åã¦ã¼ã¶ã¼ã®è² æ
ã大ããããã¼ã«ã«ãªãã¸ããªã¨ããã¯ã³ã¯ãã·ã§ã³ãããããã«ããªã¢ã¼ãã®ãã°ã¯ç¹ã«æ½ççã®ããã«æ±ããããbitsect
ã®éªéã«ãªãã¨ãã®çç±ãããããªã¢ã¼ãã«ãã¼ã¸ãã¦ãããã¨ãã¯è¤æ°ã³ãããã¯ã§ããã ãsquash
ããã¨ããã°ã©ãã§ç¾ããããªã¼ãä½ãããã«é©åã«rebase
ãã¦ããã¨ãããã ããããè¦è«ãããäºãå¤ãã
ããããè¨ãããã«gitãç¨ããéçºã§ã¯ãã¼ã¸ãªã¯ã¨ã¹ãã®æ°é±éæ¾ç½®ã¯ã¶ã©ã ãã ããä¸ã¤ã®ãã±ããAã®ãã¼ã¸ãªã¯ã¨ã¹ããåºãã¦ãå¥ã®ãã±ããBãCãDã«åãããããã¨ãããã®BãCãDãAãåæã«ãã¦ãããã¨ã¯çããããªããã§ãAããBãåã£ãããããªã¼ãå´©ãããã¨è¨ãããããAã§ã³ã¼ãã¬ãã¥ã¼ãåæ ããã¦squash
ãã¦push -f
ããããB,C,Dãæ¹ãã¦ä¿®æ£ããªãã¨ãããªãã
ãã¡ãã綺éºãªããªã¼ãã³ããããã°ãç®æãã®ã¯çµæ§ã ããããã¾ã§è² æ ã大ãããããç¡çã«ç®æãå¿ è¦ãªãã¦ãããã ãããã
â£ãã¼ã«ã«ã³ãããããã©ã³ãåæ¿ãã«ãã»ã©ã¡ãªããããªãã
gitã¯åæ£ãªãã¸ããªå¶ã§ããã¼ã«ã«ã«èªåã®ãªãã¸ããªãã¾ãåå¨ãããä¸ã¤ãããªãã¸ããªã®ãªãSVNã ã¨æå¾ã®æå¾ã¾ã§è¡ããªãã£ãã³ããããæ°è»½ã«ã§ãããã¨ãã¾ãè¤æ°ãã©ã³ããä¸ã¤ã®ãªãã¸ããªã§ä½µè¡ãã¦éçºåºæ¥ããã¨ã¯gitã®å¤§ããªç¹å¾´ã§ããã¡ãªããã§ããããâ¦ã¨æã£ã¦ããããå®ã¯ããããã¾ã§æãé£ãæ©è½ã¨ãæããªãã
ã¾ããã¼ã«ã«ã§ã³ãããã§ãã¦ãçµå±ééã£ã¦rm -rf
ããã°é»åã®æµ·ã«ãã¼ã¿ã¯æ¶ããããã¼ã«ã«ã³ãããã¯ã²ã¼ã ã®ãã¼ã¿ã®éä¸ã»ã¼ãã¨ã¯ç°ãªãæ§è³ªã®ãã®ã ãããç¨åº¦éçºãé²ãã§ãããããã¼ã¸ãªã¯ã¨ã¹ããä½ãç´åã¾ã§ã³ãããã§ããªãã¦ãåé¡ã¯ãªãããã¡ãã巨大ãªãã±ããã«é¢ãã¦ã¯ãå
¨ã¦ã®å¤æ´ã1ã¤ã®ã³ããããå«ããã®ã§ã¯ãªããè¤æ°ã®ã³ãããã«åå²ããã¨ããã®ãæã ããå
¨ã¦ã®å¤æ´ã綺éºã«é©åã«ã³ãããåä½ã«åå²ããã¨ããã®ã¯ãããã¯ããã§è² æ
ã大ããã®ã ã
ã¾ããåä¸ãªãã¸ããªå
ã§ãå¥ã®ãã©ã³ãã«åãæ¿ããå ´åã大æµã¯ã³ã³ããªã¯ããããããstash
ãããã¨è²ã
ã¨é¢åãªãã¨ã«ãªããããæ¬å½ã«è¤æ°ãã©ã³ã(âãã±ãã)ãåæã«é²ãããã®ã§ããã°ãç©ççã«ãªãã¸ããªãããä¸åclone
ãã¦ãã¦ããã£ã¬ã¯ããª:ãã©ã³ã=1:1ãã§éçºããæ¹ãå
¨ç¶ãããããã¨æããããã¦ããããªãæ®éã«SVNã§ãå¯è½ã ã
â¤ã³ãã³ããæä½ããã¾ãç´æçã§ã¯ãªãã
ã¾ããã®ã³ãã³ãä½ç³»ãèãã人éã誰ãªã®ãã¨æãã°ãæã
ã¯å¯ä¸ç¥ã®ãæåã«å¾ããããªãã®ã ããå人çã«ã¯gitã®ã³ãã³ããæä½æ¹æ³ã«é¢ãã¦ã¯æ°å¹´ä½¿ã£ã¦ãå
¨ç¶ãã£ããããªããä¾ãã°ããã¡ã¤ã«ã®åé¤ãgit rm foo.txt
ãªã®ã«ããã©ã³ãåé¤ã¯git branch -d hoge/fuga
ã¨ããgit rm -b hoge/fuga
ããé§ç®ãªã®ã ããããã
gitãæ°å¹´ä½¿ã£ã¦ãããããã«ãã¡ãã»ã¼ã¸ããã«ãããããªãã«å å®ãã¦ããã®ã ããçµå±ãã¾ã ã«ä½ãåãããªãäºãããã°ã°ã°ã£ã¦ãã¾ãçãããã
â¥git-completionã¨git-promptã¯ããå æ¸ããã©ã«ãã«ãã
ããã¯æ¹å¤ç¹ã¨ããããè¦æãªã®ã ãããã®2ã¤ããªãã¨gitãä½¿ãæ°ãæ£ç´èµ·ããªããã©ã®ãã£ã¹ããªãã¥ã¼ã·ã§ã³ã§ãç°å¢æ§ç¯ãããã¨ããããèªåã§å°å ¥ãã¦ããã®ã ããããããæ¨æºã§ããã±ã¼ã¸ã«å«ãã¦ããã¦æ¬²ããã
ã¨ããããã§ãgitã¯ãã¾ã好ãã§ã¯ãªãããããããã¨ãã£ã¦ä»æSVNãæ¡ç¨ãã¦ããç¾å ´ãªãã¦è²ã ã¨ã¢ã¬ãªã¨ãããå¤ãã ãããããããã§ãä¸æå¿«ãªæãããããã¨ãå¤ãã ãããããã«ã¸ã¬ã³ããããã