初次運(yùn)行前的配置
Git提供了一個(gè)叫做git config
的工具(實(shí)際是git-config
命令, 只不過可以通過git加一個(gè)名字來呼叫此命令), 專門用來配置或讀取相應(yīng)的工作環(huán)境變量, 這些變量可以存放在以下三個(gè)不同的地方:
-
/etc/gitconfig
文件: 系統(tǒng)中對(duì)所有用戶都普遍適用的配置. 若使用git config
時(shí)用--system
選項(xiàng), 讀寫的就是這個(gè)文件. -
~/.gitconfig
文件: 用戶目錄下的配置文件只適用于該用戶. 若使用git config
時(shí)用--global
選項(xiàng), 讀寫的就是這個(gè)文件 - 當(dāng)前項(xiàng)目的git目錄中的配置文件(也就是工作目錄中的
.git/config
文件): 這里的配置僅僅針對(duì)當(dāng)前項(xiàng)目有效. 每一個(gè)級(jí)別的配置都會(huì)覆蓋上層的相同配置, 所以.git/config
里的配置會(huì)覆蓋/etc/gitconfig
中的同名變量
配置用戶信息
第一個(gè)要配置的是你個(gè)人的用戶名稱和電子郵件地址. 這兩條配置很重要, 每次Git提交時(shí)都會(huì)引用這兩條信息, 說明是誰提交了更新, 所以會(huì)隨更新內(nèi)容一起被永久納入歷史記錄:
$ git config --global user.name '你的用戶名'
$ git config --global user.email '你的電子郵件地址'
查看配置信息
git config --list
如果有重復(fù)的變量名, 說明它們來自不同的配置文件, 不過最終采用的是最后一個(gè)
獲取幫助
獲取Git命令幫助文檔的方式有兩種:
git help 命令
git 命令 --help
初始化本地倉庫
git init
初始化后, 當(dāng)前目錄下會(huì)出現(xiàn)一個(gè)
.git
的隱藏目錄. 所有Git需要的數(shù)據(jù)和資源都存放在這個(gè)目錄.
從現(xiàn)有倉庫克隆一個(gè)項(xiàng)目
git clone 項(xiàng)目地址
小技巧:
- 在項(xiàng)目地址的協(xié)議后面加上賬號(hào):密碼@可以避免以后每次有新的操作都要填寫賬號(hào)和密碼的情況
-
git clone 項(xiàng)目地址 項(xiàng)目名
會(huì)以項(xiàng)目名做本地項(xiàng)目目錄的名稱, 不然的話就以克隆的項(xiàng)目名為目錄名稱
查看倉庫狀態(tài)
git status
: 狀態(tài)不同, 也會(huì)提示有不同的關(guān)鍵字.
比如新添加一個(gè)文件的話會(huì)提示關(guān)鍵字:
untracked
, 意思還未跟蹤此文件, 需要用git add
命令進(jìn)行跟蹤.
修改過某一個(gè)文件的話會(huì)提示modified
表示這個(gè)文件有改動(dòng)等等
跟蹤文件
git add
可以一起跟蹤多個(gè)文件, 文件與文件之前用空格分開(感覺就是和Linux上一樣)
忽略某些文件
如果不希望某些文件出現(xiàn)在Git的跟蹤列表里, 可以創(chuàng)建一個(gè)名為.gitignore
的文件, 列出要忽略的文件模式, 比如:
*.[oa]
: 忽略所有以.o
或.a
結(jié)尾的文件*~
: 忽略所有以~
結(jié)尾的文件
文件.gitignore
的格式規(guī)范如下:
- 所以空行或者以注釋符號(hào)
#
開頭的行都會(huì)被忽略(此文件中的注釋) - 可以使用標(biāo)準(zhǔn)的glob模式匹配
- 匹配模式最后嗖反斜杠(/)說明要忽略的是目錄
- 要忽略指定模式以外的文件或目錄, 可以在模式前加上
!
取反
glob模式是指shell所使用的簡化了的正則表達(dá)式
- 星號(hào)(*)匹配任意多個(gè)字符
- [abc]匹配任何一個(gè)列在方括號(hào)中的字符, 如果在方括號(hào)內(nèi)使用短劃線分隔兩個(gè)字符, 表示所有在這兩個(gè)字符范圍內(nèi)的都可以匹配(比如[0-9]表示匹配所有0到9的數(shù)字)
- 問號(hào)(?)只匹配一個(gè)任意字符
查看提交歷史
git log
: 默認(rèn)不加任何參數(shù), 會(huì)按提交時(shí)間倒序列出所有更新, 瀏覽時(shí)按Linux命令less
一樣按鍵: 空格向下翻一頁, 回車向下一行, pageUP上翻一頁, 上方向鍵向上一行, q退出等等
部分參數(shù):
-
-p
: 展開顯示每次提交內(nèi)容的差異 -
-1
則表示最近的一次更新
在做代碼審查, 或者要快速瀏覽其他協(xié)作者提交的更新都作了哪些改動(dòng)時(shí), 就可以用這個(gè)選項(xiàng)
-
--stat
: 僅顯示簡要的增改行數(shù)統(tǒng)計(jì)
每個(gè)提交都列出了修改過的文件, 以及其中添加和移除的行數(shù), 并在最后列出所有增減行數(shù)小計(jì)
-
--oneline
: 將每個(gè)提交放在一行顯示(這在提交數(shù)很大時(shí)非常有用)
-
--pretty
: 支持使用完全不同于默認(rèn)格式的方式展示提交歷史, 其參數(shù)-
short
: 簡短(不顯示時(shí)間)
-
full
:
-
fuller
:
-
format
:(這個(gè)好厲害, 占位符寫法)
-
部分常用的格式占位符寫法及其代表意義
選項(xiàng) | 說明 |
---|---|
%H | 提交對(duì)象(commit)的完整哈希字串 |
%h | 提交對(duì)象的簡短哈希字串 |
%T | 樹對(duì)象(tree)的完整哈希字串 |
%t | 樹對(duì)象的簡短哈希字串 |
%P | 父對(duì)象(parent)的完整哈希字串 |
%p | 父對(duì)象的簡短哈希字串 |
%an | 作者(author)的名字 |
%ae | 作者的電子郵件地址 |
%ad | 作者修訂日期(可以用 -date= 定制格式) |
%ar | 作者修訂日期, 按多久以前的方式顯示 |
%cn | 提交者(committer)的名字 |
%ce | 提交者的電子郵件地址 |
%cd | 提交日期 |
%cr | 提交日期, 按多久以前的方式顯示 |
%s | 提交說明 |
用
oneline
或format
時(shí)結(jié)合--graph
選項(xiàng), 可以看到開頭多出一些ASCII字符串表示的簡單圖形, 形象地展示了每個(gè)提交所在的分支及其分化衍合情況
-
--since
(--after
):僅顯示指定時(shí)間后的提交 -
--until
(--before
): 僅顯示指定時(shí)間之前的提交 -
--author
:僅顯示與該作者有關(guān)的提交 -
--committer
:僅顯示與該提交者有關(guān)的提交 -
--grep
:搜索提交說明中的關(guān)鍵字(與author同時(shí)用時(shí)要用--all-match選項(xiàng))
撤銷操作
命令:git commit --amend
如果剛才提交時(shí)忘了暫存某些修改奏窑,可以先補(bǔ)上暫存操作,然后再運(yùn)行
--amend
提交:
- git commit -m 'initial commit'
- git add newfile.txt
- git commit --amend
取消暫存
命令:git reset HEAD aaa.txt
運(yùn)行此命令后崖媚,再次查看git status糟趾, 會(huì)提示aaa.txt還未暫存絮记,如果需要的話需要用git add命令重新跟蹤
取消對(duì)文件的修改
命令:git checkout -- <file>
如果發(fā)覺之前對(duì)某一個(gè)文件所做的修改又不想改了, 那就可以用這條命令,但是有些危險(xiǎn)易迹,因?yàn)橹皩?duì)這個(gè)文件所做的修改會(huì)消失巾遭。所以肉康,用這條命令前,要確定是否真的不保留剛才所做的修改灼舍。
遠(yuǎn)程倉庫的使用
查看當(dāng)前的遠(yuǎn)程倉庫
命令:git remote
顯示對(duì)應(yīng)的克隆地址
命令:git remote -v
-v
是--verbose
的縮寫
添加遠(yuǎn)程倉庫
命令:git remote add [shortname] [url]
推送數(shù)據(jù)到遠(yuǎn)程倉庫
命令:git push [remote-name] [branch-name]
克隆操作會(huì)用命默認(rèn)的origin和master
把本地的master分支推送到遠(yuǎn)程的origin服務(wù)器上可以用: git push origin master
查看遠(yuǎn)程倉庫的信息
命令:git remote show [remote-name]
遠(yuǎn)程倉庫的刪除和重命名
命令:git remote rename [oldname] [newname]
把遠(yuǎn)程倉庫oldname的名字改為newname
命令:git remote rm
吼和,移除遠(yuǎn)程倉庫。
命令別名
命令:git config --global alias.<別名> <原命令>
eg: git config --global alias.cm commit
給commit
命令起一個(gè)別名cm
骑素。長命令用引號(hào)引起炫乓。