今天是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ì)介紹。