1. 程式人生 > >Git彙總--常見問題及延伸閱讀

Git彙總--常見問題及延伸閱讀

常見問題

忽略檔案

檔案.gitignore的作用範圍是其所處的目錄及其子目錄。忽略只對未跟蹤檔案有效,對於已加入版本庫的檔案無效!

本地獨享式忽略檔案

  • 一種是針對具體版本庫的“獨享式”忽略。即在版本庫.git目錄下的一個檔案.git/info/exclude來設定檔案忽略。
  • 另外一種是全域性的“獨享式”忽略。即通過Git的配置變數core.excludesfile指定的一個忽略檔案,其設定的忽略對所有檔案均有效。

Git忽略語法

*.a       # 忽略所有以 .a 為副檔名的檔案。
!lib.a    # 但是 lib.a 檔案或者目錄不要忽略,即使前面設定了對 *.a 的忽略。
/TODO # 只忽略根目錄下的 TODO 檔案,子目錄的 TODO 檔案不忽略。 build/ # 忽略所有 build/ 目錄下的檔案。 doc/*.txt # 忽略檔案如 doc/notes.txt,但是檔案如 doc/server/arch.txt 不被忽略。
  • 可以使用萬用字元,參見Linux手冊:glob(7)。例如:星號(*)代表任意多字元,問號(?)代表一個字元,方括號([abc])代表可選字元範圍等。
  • 如果名稱的最前面是一個路徑分隔符(/),表明要忽略的檔案在此目錄下,而非子目錄的檔案。
  • 如果名稱的最後面是一個路徑分隔符(/),表明要忽略的是整個目錄,同名檔案不忽略,否則同名的檔案和目錄都忽略。
  • 通過在名稱的最前面新增一個感嘆號(!),代表不忽略。

檔名大小寫問題

Linux、Solaris、BSD及其他類Unix作業系統使用的是大小寫敏感的檔案系統,而Windows和Mac OS X(預設安裝)的檔案系統則是大小寫不敏感的檔案系統。即用檔名READMEreadme以及Readme(混合大小寫)進行訪問,在Linux等作業系統上訪問的是不同的檔案,而在Windows和Mac OS X上則指向同一個檔案。換句話說,兩個不同檔案READMEreadme在Linux等作業系統上可以共存,而在Windows和Mac OS X上,這兩個檔案只能同時存在一個,另一個會被覆蓋,因為在大小寫不敏感的作業系統看來,這兩個檔案是同一個檔案。

可以通過設定**core.ignorecase **為false,來開啟檔名大小寫敏感!

$ git config core.ignorecase false

換行符問題

文字檔案的每一行結尾用一個或者兩個特殊的ASCII字元進行標識,這個標識就是換行符。

  • LF,“\\n”表示:用於Multics、Unix、類Unix(如GNU/Linux、AIX、Xenix、Mac OS X、FreeBSD等)、BeOS、Amiga、RISC OS等作業系統中
  • CR,“\\r”表示:用於DEC TOPS-10、RT-11和其他早期的非Unix,以及CP/M、MP/M、DOS(MS-DOS、PC-DOS等)、Atari TOS、OS/2、Microsoft Windows、Symbian OS、Palm OS等系統中
  • CRLF,“\\r\\n”表示:用於Commodore 8位機、TRS-80、蘋果II家族、Mac OS 9及更早版本
$ git config --global core.autocrlf true/input

http://www.worldhello.net/gotgit/08-git-misc/040-eol.html

延伸閱讀

Git的功能極其強大,我們可以使用Git做更多有意義的事情。