Github(Gitee)之 建立 .gitignore 文件 屏蔽一些文件上傳,不上傳自己不需要的文件或者文件夾
目錄
Github(Gitee)之 建立 .gitignore 文件 屏蔽一些文件上傳,不上傳自己不需要的文件或者文件夾
一、簡單介紹
Git(讀音爲/gɪt/。)是一個開源的分佈式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。 [1] Git 是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
本節介紹,在使用Github 上傳代碼的時候,怎麼把不需要的代碼不進行上傳,只上傳自己需要的代碼。
二、使用原理
1、創建 .giignore 文件
2、在 .giignore 文件 上添加自己要屏蔽的文件和文件夾的語法代碼
3、這時候上傳代碼,就不會上傳 .giignore 文件 涉及的文件或者文件夾
三、相關知識說明
1、忽略文件原則
忽略操作系統自動生成的文件,比如縮略圖等;
忽略編譯生成的中間文件、可執行文件等,也就是如果一個文件是通過另一個文件自動生成的,那自動生成的文件就沒必要放進版本庫,比如Java編譯產生的.class文件;
忽略你自己的帶有敏感信息的配置文件,比如存放口令的配置文件。
2、語法規範(熟悉正則很容易理解)
-
空行或是以#開頭的行即註釋行將被忽略;
-
以斜槓 “/” 結尾表示目錄;
-
以星號 “*” 通配多個字符;
-
以問號 “?” 通配單個字符
-
以方括號 “[]” 包含單個字符的匹配列表;
-
以歎號 “!” 表示不忽略(跟蹤)匹配到的文件或目錄;
-
可以在前面添加斜槓 “/” 來避免遞歸,下面的例子中可以很明白的看出來與下一條的區別。
3、配置文件示例
# 忽略 .a 文件
*.a
# 但否定忽略 lib.a, 儘管已經在前面忽略了 .a 文件
!lib.a
# 僅在當前目錄下忽略 TODO 文件, 但不包括子目錄下的 subdir/TODO
/TODO
# 忽略 build/ 文件夾下的所有文件
build/
# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
doc/*.txt
# 忽略所有的 .pdf 文件 在 doc/ directory 下的
doc/**/*.pdf
四、實現步驟
1、首要前提是安裝好了Git,有項目,並建立有 git (git init 可以本地添加git關聯)關聯,然後 vim .gitignore 或者 gedit .gitignore 創建 .gitignore 文件
2、然後會自動跳到文件編輯
3、編輯相關需要屏蔽的信息,或者參考網上的也可以,然後 (:wq)保存,並退出編輯
4、.gitignore 文件就創建出來了,之後正常上傳代碼即可,就會屏蔽一些 .gitignore 的文件或者文件夾
五、gihub 參考 .gitigonre 文件模板
GIthub 網上的各種語言 .gitigonre 的模板庫:https://github.com/github/gitignore
下面是Unity的參考 .gitigonre :
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
/[Pp]ackages/
# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/
# Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta
# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*
# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*
# Visual Studio cache directory
.vs/
# Gradle cache directory
.gradle/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta
# Unity3D generated file on crash reports
sysinfo.txt
# Builds
*.apk
*.aab
*.unitypackage
# Crashlytics generated file
crashlytics-build.properties
# Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
# Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/*