æ¹è¡ã³ã¼ãã®æ±ããæ¤è¨
åæ£ãã¼ã¸ã§ã³ç®¡çãã¼ã«ã§Gitã使ããããªãã®ã¯ããã¡ã¤ã«åã®æåã³ã¼ããéãOSéã§æ¥æ¬èªã®ãã¡ã¤ã«ãå ±æãããããªãªãã¸ããªãæ±ãã¨ãã§ããWindows OSã¨Linux OSã¨åãGitãªãã¸ããªã使ç¨ããã¨ããGitã§ããã°ãã¡ã¤ã«åã«æ¥æ¬èªã使ã£ã¦ãåé¡ããã¾ããããMercurialã§ã¯çæ¹ã®OSã§ä½æããæ¥æ¬èªãã¡ã¤ã«åãããçæ¹ã®OSã§èªããã¨ãã§ãã¾ããï¼æååãï¼ãBazaarãè¡°éãã¦ãªããã°ã»ã»ã»
Windowsã ãã§ãªãã¸ããªã使ãããããã¯Linuxã ãã§ãªãã¸ããªã使ããªããMercurialã¨ããé¸æè¢ããããè¤éæªå¥ãªGitã使ããªãã¦ãã»ã»ã»ã¨æãã¾ãããç¾å®ã¯ããéå®ã§ããªããã¨ãå¤ãã®ã§ãã
ã¾ããããã¡ã¤ã«åã«æ¥æ¬èªä½¿ãã®ããããªããã¨ããæè¦ãããã¾ãããã³ã³ãã¥ã¼ã¿ã¼å´ã®å¶ç´ã«äººéãä¸ä¾¿ãªæãããã¦åãããã®ã¯æ¬æ«è»¢åã¨æãã®ã§ãã¡ã¤ã«åããæ¥æ¬èªæ²æ»
éåã«ã¯å ããã¾ããã
ã¨ããã§ãWindows OSã®æ¨æºãã¡ã¤ã«ã·ã¹ãã ã§ããNTFSã§ã¯ããã¡ã¤ã«ãã¹æååãã¦ãã³ã¼ãï¼UTF-16LEï¼ã§æ ¼ç´ãã¦ããã®ã§ãããã¨ã¯ã¹ããã¼ã©ã¼ãã»ãã®ãã¡ã¤ã«ãæ±ãã¢ããªã±ã¼ã·ã§ã³ãNTFSä¸ã®ã¦ãã³ã¼ããã¡ã¤ã«åãCP932ï¼Microsoftæ¡å¼µShift JISï¼ã«å¤æãã¦ãã¾ãã®ã§ãå°ã è¤éã§è¾¼ã¿å ¥ã£ãç¶æ³ãããããã§ãã
ãã¦ãåç½®ããé·ããªã£ã¦ãã¾ãã¾ããããä»åã¯æ¥æ¬èªãã¡ã¤ã«åã®å¯¾å¿ã®ä»¶ã§ã¯ãªããããã¹ããã¡ã¤ã«ã®æ¹è¡ã³ã¼ãã®è©±ã主é¡ã§ããããããWindows OSã¨Linuxï¼Unixç³»ï¼OSã¨ãåããªãã¸ããªã使ç¨ããã¨ãã®åé¡ã§ããã½ã¼ã¹ã³ã¼ããè¨å®ãã¡ã¤ã«ãªã©ã®ããã¹ããã¡ã¤ã«ã¯è¡åä½ã§æ§æããã¾ãããè¡ã®çµããã示ãæåï¼æ¹è¡ã³ã¼ãï¼ãWindows OSã§ã¯CR+LFã®2æåãLinuxï¼Unixç³»ï¼OSã§ã¯LFã®1æåã¨ãªã£ã¦ãã¾ããããã¹ããã¡ã¤ã«ãæ±ããã¼ã«ï¼ä¾ãã°ã³ã³ãã¤ã©ãã¨ãã£ã¿ããªã©ï¼ãã©ã¡ãã®æ¹è¡ã³ã¼ãã§ãæ£ããæããã¨ãã§ããã°ããã®ã§ãããçæ¹ã®æ¹è¡ã³ã¼ãããæ±ããã¨ãã§ããªãå ´åãããçæ¹ã®æ¹è¡ã³ã¼ããå«ã¾ããããã¹ããã¡ã¤ã«ãæ£ããæ±ããå°ã£ããã¨ãçãã¾ããã¾ãã1ã¤ã®ãã¡ã¤ã«ã®ä¸ã§æ¹è¡ã³ã¼ããç°ãªãè¡ãæ··å¨ããã¨ããã±ã¼ã¹ãããã¾ããUnixã®ã½ããã¦ã§ã¢éçºã«ããã¦ã¯ãæ¬æ¥æ¹è¡ã³ã¼ãã«CR+LFãå ¥ããã¨ã¯ãªãã¨æã£ã¦ã¾ããããéçºè ã®ä¸ã«ã¯ã½ã¼ã¹ã³ã¼ããWindows OSä¸ã¸ã³ãã¼ãã¦ãã¡ã¤ã«ãç·¨éãããããå度Unixä¸ã¸ã³ãã¼ãã¦ãªãã¸ããªã«ç»é²ãã人ãå°ãªãããããã¾ããããã®ãããªå ´åãWindows OSä¸ã§ç·¨éããéã«CR+LFãæ··å ¥ãã¦ãã¾ããã¨ãããã¾ãã
ããã¾ã§ã¯ã
Gitã§ã¯ãæ¹è¡ã³ã¼ããç°å¢ã«å¿ãã¦æããæ©è½ãæä¾ããã¦ããããªãã¸ããªå é¨ã§ã¯æ¹è¡ãã³ã¼ããLFã«æãã¦ãWindows OSä¸ã§ä½æ¥ãã£ã¬ã¯ããªã«ãã¡ã¤ã«ãç½®ãã¨ãã¯CR+LFã³ã¼ãã¨ããLinuxï¼Unixï¼OSä¸ã§ä½æ¥ãã£ã¬ã¯ããªã«ãã¡ã¤ã«ãç½®ãã¨ãã¯LFã³ã¼ãã¨ãããã¨ãããã¨ãã§ãã¾ãã
+-- Windows OS ---+ | +-----------+ | +-- ãªãã¸ã㪠--+ +---------+->|æ¹è¡ CR+LF | | | +----------+ | | | +-----------+ | | |æ¹è¡ LF |<-+----------+ +-----------------+ | +----------+ | | +----------------+ | +-- Linux OS -----+ | | +-----------+ | +---------+->|æ¹è¡ LF | | | +-----------+ | +-----------------+
ããã¹ããã¡ã¤ã«ã®æ¹è¡ã³ã¼ããæããã«ã¯ã次ã®2ã¤ã®æ¹æ³ãããã¾ãã
- å使ç¨è ã®gitãã¼ã«ã®è¨å®ã§ãcore.autocrlfãæå®
- ãªãã¸ããªã«å±æ§è¨å®ï¼.gitattributesï¼ãä½æããæ¹è¡ã³ã¼ãã®æ±ããæå®
åè
ã¯ããªãã¸ããªã«ã¢ã¯ã»ã¹ããå
¨ã¦ã®ç°å¢ã§åãè¨å®ãããªããã°ãªãã¸ããªã®æ¹è¡ã³ã¼ããããããªããªãã¾ãã
å¾è
ã¯ããªãã¸ããªã«ã¢ã¯ã»ã¹ããç°å¢ã§ã®è¨å®ã«é¢ããããåãæ¹æ³ãé©ç¨ãããã¨ãã§ãã¾ãã
core.autocrlfãæå®ããæ¹æ³ã¯ã大æµã®Gitå ¥éè¨äºãããã°ã§ç´¹ä»ããã¦ãããã¾ãGit for Windowsã§ã¯ã¤ã³ã¹ãã¼ã«æã«core.autocrlfã®è¨å®å¤ãé¸æããã®ã§å 容ãææ¡ãã¦ãã¾ãããããã§ãæåã¯ãã®æ¹æ³ã§æ¹è¡ã³ã¼ããæãããã¨ãã¾ãããããããè¨å®æ¼ããããã°æ¹è¡ã³ã¼ããæããªããªã£ã¦ãã¾ããå®æçã«ãªãã¸ããªã®ä¸ã®ããã¹ããã¡ã¤ã«ã®æ¹è¡ã³ã¼ããæ¤æ»ããå¿ è¦ãããã¾ãã
.gitattributesã«æå®ããæ¹æ³ã¯ãGitã®æ¹è¡åé¡ããã®ï¼ã2é±éãããã調ã¹ã¾ãã£ãä¸ã§è¦ããããã®ã§ããããªããªãã¸ããªã«è¨å®ãã¡ã¤ã«ãç½®ãã ãã§ãªãã¸ããªå©ç¨è ã®è¨å®ãä¸æ¬ãã¦å¶å¾¡ã§ãããã§ãã
ãã¦ãããã§æ°ã«ãªãã®ãããã¤ããªãã¡ã¤ã«ããªãã¸ããªã«å ¥ããã¨ãã«ãããã¹ããã¡ã¤ã«ã¨ãã¦æ±ããã¦ãã¡ã¤ã«ä¸ã®ãã¼ã¿ãå¤æããã¦ãã¾ããã¨ããªããï¼ã§ãããã¤ããªãã¡ã¤ã«ã®ãã¼ã¿ã®ä¸ã§0x0aã0x0d 0x0aã«å¤æããã¦ãã¾ã£ããããã®éã«å¤æããã¦ãã¾ããã¨ãããã®ã§ã¯ã¨ãããã¨ã§ãã
åç´ãªãã¤ããªãã¼ã¿ãï¼ï¼ï¼ãã¿ã¼ã³ä½ã£ã¦è©¦ãã¦ã¿ãéãã§ã¯ããã¤ããªãå¤æããã¦ãã¾ããã¨ã¯ãªãã£ãã§ããããããã誤èªããããã¿ã¼ã³ã¯ãããã¾ãã.gitattributesã«ã¯ãã¤ããªã¨ãã¦æ±ããã¡ã¤ã«åã®ãã¿ã¼ã³ãæå®ã§ããã®ã§ããããä½µç¨ããã®ãå®å ¨ãªã®ãã¨æãã¾ãã
調æ»å 容ãªã©ã¯æ¬¡ã®Wikiã«è¨è¿°ãã¦ãã¾ãã.gitattributesã¯ãããã試ãã¦ã¿ãäºå®ã§ãã