~/.gitconfig 文件
在第一次使用Git來(lái)提交代碼到倉(cāng)庫(kù)時(shí)漂羊,你可能需要進(jìn)行一些基礎(chǔ)配置,如下:
git config --global user.email "you@email.com"
git config --global user.name "Your Name"
你可能沒(méi)有意識(shí)到卸留,上面的命令其實(shí)是在修改/.gitconfig文件中的內(nèi)容,/.gitconfig存儲(chǔ)的是git的全局配置走越,可以對(duì) Git 配置進(jìn)行很多操作。包括git命令別名的命名耻瑟,打開(kāi)或關(guān)閉特定的選項(xiàng)旨指,git diff使用何種算法或者git merge默認(rèn)使用什么策略。
如下面就是我定義的git log的一些別名喳整。
[alias]
lg = !"git lg1"
lg1 = !"git lg1-specific --all"
lg2 = !"git lg2-specific --all"
lg3 = !"git lg3-specific --all"
倉(cāng)庫(kù)中的.gitconfig文件
在上面配置命令中谆构,參數(shù) --global 告訴git更新全局的配置文件,也即是~/.gitconfig文件,如果省略--global參數(shù)框都,git將更新指定倉(cāng)庫(kù)的配置搬素,該配置文件存在.git/config中。
.git/config文件中的設(shè)置將覆蓋~/.gitconfig文件中的配置魏保。所以熬尺,如果你需要為指定的倉(cāng)庫(kù)使用不同的用戶地址。只需要省略--global即可谓罗,在倉(cāng)庫(kù)下運(yùn)行g(shù)it config user.email "your@example.com"即可粱哼,如下面我執(zhí)行命令后config文件多出了[user]選擇。
[user]
email = test@zhoushuai.com
幾乎任何可以在~/.gitconfig中的配置檩咱,你也可以在.git/config中設(shè)置揭措,從而在指定的倉(cāng)庫(kù)中使用。
定義別名
別名的設(shè)置可以在~/.gitconfig文件中配置税手,就像shell的別名一樣給一個(gè)命令換個(gè)名字蜂筹。如執(zhí)行
git config --global --add alias.lg log
,運(yùn)行g(shù)it lg將和git log相同芦倒,其實(shí)在定義別名的時(shí)候直接修改~/.gitconfig文件來(lái)得更直接艺挪。
可視化提交視圖
如果你在一個(gè)有很多分支活動(dòng)的項(xiàng)目上工作,有時(shí)很難掌握正在發(fā)生的所有工作以及他們是如何工作的兵扬。當(dāng)然也有各種GUI工具麻裳,如source tree等,如果你是一個(gè)命令行愛(ài)好者或者認(rèn)為切換工具分散注意力器钟,那么用 git 命令行來(lái)獲取提交視圖是很好的津坑。這時(shí)候git log 命令的 --graph就發(fā)揮作用了。
以下是可視化倉(cāng)庫(kù)的提交視圖命令傲霸。
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relativ
git add -p
使用git的最好做法是確保每次提交只包含一個(gè)邏輯修改疆瑰,無(wú)論是修復(fù)錯(cuò)誤還是新增功能眉反。但是有時(shí)候,還是會(huì)進(jìn)行多次提交穆役。怎么設(shè)法把它分開(kāi)寸五,以便每次提交只包含適當(dāng)?shù)母淖儭it add --path派上用場(chǎng)了耿币。
添加這個(gè)參數(shù)后梳杏,執(zhí)行 git add 命令將會(huì)查看工作區(qū)副本中的所有更改,并且對(duì)于每一個(gè)更改都將提示你是否將其分階段提交淹接,跳過(guò)它或者延遲操作十性。官方介紹的就是交互式的操作。git add -p 是生成結(jié)構(gòu)良好的提交的最佳工具塑悼。
假設(shè)你對(duì)單個(gè)文件進(jìn)行了多次更改劲适,并希望他們出現(xiàn)在單獨(dú)的提交中。在這種情況下加上 -p 參數(shù)拢肆。
git add -p [filename]
git blame
blame這個(gè)單詞就十分的形象生動(dòng)减响,找出是誰(shuí)的責(zé)任,這個(gè)命令便于我們找出問(wèn)題郭怪,此命令會(huì)顯示文件中每一行的作者。
git blame <filename>
執(zhí)行 git blame config.toml ,顯示如下:
^9ffbfd8 (xiaozhang 2018-10-06 18:19:13 +0800 10)
^9ffbfd8 (xiaozhang 2018-10-06 18:19:13 +0800 11) [params]
a558046f (xiaozhang 2019-03-02 00:40:04 +0800 12) subtitle = "Go語(yǔ)言刊橘、Golang鄙才、IT互聯(lián)網(wǎng)、文學(xué)促绵、藝術(shù)"
^9ffbfd8 (xiaozhang 2018-10-06 18:19:13 +0800 13) keywords = "Go語(yǔ)言,Golang"
7bb650fa (xiaozhang 2018-10-06 21:50:12 +0800 14) busuanzi = true