一般我們總會有些檔案無需納入 git 的管理,也不希望它們總出現在未跟蹤檔案列表。 通常都是些自動生成的檔案,比如日誌檔案,或者編譯過程中建立的臨時檔案等。 在這種情況下,我們可以建立乙個名為 .gitignore 的檔案,列出要忽略的檔案。
在工作目錄新建乙個 .gitignore 檔案。這個檔案也需要納入git管理。git會讀取這個檔案,進行忽略。檔名稱是git的約定,必須使用這個名稱。
windows系統使用記事本的 檔案另存為 可以建立它。並執行 git add .gitignore 命令加入版本控制,執行git status 檢視檔案狀態。
$ git add .gitignore
$ git status
on branch master
no commits yet
changes to be committed:
(use "git rm --cached ..." to unstage)
new file: .gitignore
untracked files:
(use "git add ..." to include in what will be committed)
hello.txt
此時,hello.txt是新建的檔案,處於未追蹤狀態。我們此時要讓git忽略它。應該怎麼做呢?
應該將其檔名加入到 .gitignore 檔案,並儲存。
此時,執行 git status 命令,檢視檔案狀態。
$ git status
on branch master
no commits yet
changes to be committed:
(use "git rm --cached ..." to unstage)
new file: .gitignore
changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: .gitignore
可以看到沒有了,未追蹤檔案(untracked files): hello.txt
如果此時,刪除 .gitignore 中的內容,檢視檔案狀態,它又會出現的。
.gitignore 一行定義乙個忽略規則,使用glob 模式,它是 shell 所使用的簡化了的正規表示式。
下面是部分元字元。
? 匹配任意乙個字元;
匹配任何乙個列在方括號中的字元 ([abc]要麼匹配乙個 a,要麼匹配乙個 b,要麼匹配乙個 c),如果在方括號中使用短劃線分隔兩個字元, 表示所有在這兩個字元範圍內的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的數字)。
** 兩個星號表示匹配任意中間目錄
[^] 不匹配方括號中的任意字元。如[^abc],不匹配a、b、c
忽略檔案中的空行或以井號(#)開始的行。#號開頭的行是注釋。
如果名稱的最前面是乙個路徑分隔符(/),表示要忽略當前目錄下的該檔案,而其他子目錄中的該檔案不忽略。
如果名稱的最後面是乙個路徑分隔符(/),表示要忽略的是任何目錄下所有的此檔案或目錄。
# 忽略所有的 .a 檔案
*.a# 但跟蹤所有的 lib.a,即便你在前面忽略了 .a 檔案
!lib.a
# 只忽略當前目錄下的 todo 檔案,而不忽略 subdir/todo
/todo
# 忽略任何目錄下名為 build 的資料夾
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目錄及其所有子目錄下的 .pdf 檔案
doc/**/*.pdf
一般情況下,乙個倉庫只有根目錄下有乙個 .gitignore 檔案,它應用到整個倉庫中。 然而,子目錄下也可以有額外的 .gitignore 檔案。子目錄中的 .gitignore 檔案中的規則只作用於它所在的目錄中。
github 有乙個十分詳細的針對數十種專案及語言的 .gitignore 檔案列表, 可以在 找到它。
使用git,忽略不想上傳的檔案
問題描述 在進行協作開發 管理的過程中,常常會遇到某些臨時檔案 配置檔案 或者生成檔案等,這些檔案由於不同的開發端會不一樣,如果使用git add 將所有檔案納入git庫中,那麼會出現頻繁的改動和push,這樣會引起開發上的不便。git可以很方便的幫助我們解決這個問題,那就是建立專案檔案過濾規則。g...
向mysql中匯入檔案時,忽略我們不想要的幾列資料
當我們匯入檔案時,不需要某列資料,只要用 欄位名即可。後面用什麼名都行,即跳過某列。cat xiaozhang.txt id name class score 1 小張 男 class1 100 2 張三 男 class2 99 3 小紅 女 class1 98 create table score...
忽略不想提交到git上的某些檔案
忽略不想提交到git上的某些檔案 1.修改根目錄中的.gitignore檔案,增加需要修改的目錄 2.只修改.gitignore這乙個檔案,然後按順序執行下列命令 命令的執行就在待提交專案的根目錄下 執行這些命令的目的是怕加入了某些目錄依舊不能生效。不能生效的原因是.gitignore檔案只能忽略沒...