Git學(xué)習(xí)筆記

初次運(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命令幫助文檔的方式有兩種:

  1. git help 命令
  2. 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è)任意字符
glob模式

查看提交歷史

git log: 默認(rèn)不加任何參數(shù), 會(huì)按提交時(shí)間倒序列出所有更新, 瀏覽時(shí)按Linux命令less一樣按鍵: 空格向下翻一頁, 回車向下一行, pageUP上翻一頁, 上方向鍵向上一行, q退出等等

git log

部分參數(shù):

  • -p: 展開顯示每次提交內(nèi)容的差異
  • -1則表示最近的一次更新
顯示最近一次更新并展開提交內(nèi)容差異

在做代碼審查, 或者要快速瀏覽其他協(xié)作者提交的更新都作了哪些改動(dòng)時(shí), 就可以用這個(gè)選項(xiàng)

  • --stat: 僅顯示簡要的增改行數(shù)統(tǒng)計(jì)
僅顯示簡要的增改行數(shù)

每個(gè)提交都列出了修改過的文件, 以及其中添加和移除的行數(shù), 并在最后列出所有增減行數(shù)小計(jì)

  • --oneline: 將每個(gè)提交放在一行顯示(這在提交數(shù)很大時(shí)非常有用)
Paste_Image.png
  • --pretty: 支持使用完全不同于默認(rèn)格式的方式展示提交歷史, 其參數(shù)

    • short: 簡短(不顯示時(shí)間)
      簡短
    • full:
    full
    • fuller:
    fuller
    • format:(這個(gè)好厲害, 占位符寫法)
format

部分常用的格式占位符寫法及其代表意義

選項(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 提交說明

onelineformat時(shí)結(jié)合--graph選項(xiàng), 可以看到開頭多出一些ASCII字符串表示的簡單圖形, 形象地展示了每個(gè)提交所在的分支及其分化衍合情況

graph選項(xiàng).png
  • --since(--after):僅顯示指定時(shí)間后的提交
  • --until(--before): 僅顯示指定時(shí)間之前的提交
  • --author:僅顯示與該作者有關(guān)的提交
  • --committer:僅顯示與該提交者有關(guān)的提交
  • --grep:搜索提交說明中的關(guān)鍵字(與author同時(shí)用時(shí)要用--all-match選項(xiàng)
選項(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

查看當(dāng)前的遠(yuǎn)程倉庫

顯示對(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)引起炫乓。

--------基礎(chǔ)命令完--------

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市献丑,隨后出現(xiàn)的幾起案子末捣,更是在濱河造成了極大的恐慌,老刑警劉巖创橄,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箩做,死亡現(xiàn)場離奇詭異,居然都是意外死亡妥畏,警方通過查閱死者的電腦和手機(jī)卒茬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咖熟,“玉大人圃酵,你說我怎么就攤上這事♀晒埽” “怎么了郭赐?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長确沸。 經(jīng)常有香客問我捌锭,道長,這世上最難降的妖魔是什么罗捎? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任观谦,我火速辦了婚禮,結(jié)果婚禮上桨菜,老公的妹妹穿的比我還像新娘豁状。我一直安慰自己捉偏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布泻红。 她就那樣靜靜地躺著夭禽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谊路。 梳的紋絲不亂的頭發(fā)上讹躯,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音缠劝,去河邊找鬼潮梯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛惨恭,可吹牛的內(nèi)容都是我干的秉馏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼喉恋,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼沃饶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起轻黑,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤糊肤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后氓鄙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體馆揉,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年抖拦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了升酣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡态罪,死狀恐怖噩茄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情复颈,我是刑警寧澤绩聘,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站耗啦,受9級(jí)特大地震影響凿菩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帜讲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一衅谷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧似将,春花似錦获黔、人聲如沸蚀苛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枉阵。三九已至译红,卻和暖如春预茄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背侦厚。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國打工耻陕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人刨沦。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓诗宣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親想诅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子召庞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Git教程 一、Git簡介 1.1. Git的誕生1.2.集中式的vs分布式 二来破、安裝Git 三篮灼、創(chuàng)建版本庫 四、...
    曹淵說創(chuàng)業(yè)閱讀 938評(píng)論 0 2
  • 這里的夜晚似乎來的比家鄉(xiāng)早的多徘禁,每晚快七點(diǎn)诅诱,夜幕就已經(jīng)襲來籠罩著整個(gè)城市,今年的夜晚送朱,不清楚是什么樣娘荡,到現(xiàn)在為止,...
    遇見丹噶爾的Tomorrow閱讀 194評(píng)論 1 0
  • 導(dǎo)圖思維驶沼,將會(huì)伴著闖天下炮沐!
    莫有青草閱讀 135評(píng)論 0 0