git如何忽略不想要的檔案(五)

2021-10-23 05:35:05 字數 2261 閱讀 6529

一般我們總會有些檔案無需納入 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檔案只能忽略沒...