今天是 Git 系列課程第一課,痞子衡給大家要講的是創(chuàng)建倉庫的準(zhǔn)備工作。
1. 建倉庫 git init
第一步是創(chuàng)建一個(gè)空倉庫,這是一切操作的前提。
// 打開 git bash 命令行,切換到指定目錄下
jay@pc MINGW64 /
$ cd /d/my_project/
// 在指定目錄下創(chuàng)建存放 repo 的文件夾,示例為 gittest
jay@pc MINGW64 /d/my_project
$ mkdir gittest
// 切換到 gittest 目錄下
jay@pc MINGW64 /d/my_project
$ cd gittest/
// 使用 git init 命令創(chuàng)建一個(gè)空倉庫
jay@pc MINGW64 /d/my_project/gittest
$ git init
Initialized empty Git repository in D:/my_project/gittest/.git/
空倉庫創(chuàng)建完成后 gittest 文件夾下會(huì)生成一個(gè) .git 隱藏文件夾。倉庫默認(rèn)包含一個(gè)主支,即 master,默認(rèn)操作都是在主分支 master 上進(jìn)行的。
2. 配置倉庫信息 git config
有了空倉庫,我們便可以進(jìn)行后續(xù)提交操作,但在提交之后需要做一些必要配置,Git 的配置從上到下分三層 system/global/local,此處我們僅用 local 選項(xiàng)對(duì)當(dāng)前倉庫操作做配置(即配置只對(duì)當(dāng)前倉庫有效)。
// 設(shè)置提交代碼時(shí)的 local 用戶信息(用戶名,email 地址)
jay@pc MINGW64 /d/my_project/gittest (master)
$ git config --local user.name "Jay Heng"
jay@pc MINGW64 /d/my_project/gittest (master)
$ git config --local user.email "hengjie1989@foxmail.com"
// 查看 local 層次的 config 參數(shù)配置是否生效
jay@pc MINGW64 /d/my_project/gittest (master)
$ git config --local --list
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
user.name=Jay Heng
user.email=hengjie1989@foxmail.com
設(shè)置好 user.name, user.email 兩個(gè)必要用戶信息后,后續(xù)任何提交都會(huì)默認(rèn)包含此用戶信息。
3. 設(shè)置過濾文件 .gitignore
有了倉庫,我們便可以在 gittest 文件夾下的工作區(qū)做文件增刪修改工作了,但很多時(shí)候,我們只在意開發(fā)過程中的源文件,并不需要管理自動(dòng)產(chǎn)生的其他臨時(shí)文件。這時(shí)候我們便需要一個(gè)過濾文件,在這個(gè)文件中設(shè)置過濾規(guī)則,讓 Git 能夠自動(dòng)過濾掉那些臨時(shí)文件,這個(gè)文件便是 .gitignore 文件。
// 創(chuàng)建空的 gitignore 文件
jay@pc MINGW64 /d/my_project/gittest (master)
$ touch .gitignore
// 文本編輯器打開 gitignore 文件,寫入過濾規(guī)則
/project/demo.o #過濾具體文件 demo.o
/project/settings/ #過濾整個(gè) settings 文件夾
*.o #過濾所有 .o 文件
上面僅列舉了 3 種常用的過濾規(guī)則,可根據(jù)下面的過濾配置語法組合出任意你想要的過濾規(guī)則。
以斜杠“/”開頭表示目錄
以星號(hào)“*”通配多個(gè)字符
以問號(hào)“?”通配單個(gè)字符
以方括號(hào)“[]”包含單個(gè)字符的匹配列表
以嘆號(hào)“!”表示不忽略(跟蹤)匹配到的文件或目錄
如果希望設(shè)置的過濾規(guī)則不僅僅對(duì)本地倉庫的操作有效,也希望對(duì)其他機(jī)器上該倉庫的操作有效,可以 .gitignore 提交到倉庫中并且推送到遠(yuǎn)程,提交及推送操作后續(xù)會(huì)介紹。