git學(xué)習(xí)總結(jié)系列(1)——基本用法

廖雪峰的官方網(wǎng)站:http://www.liaoxuefeng.com/

本文是學(xué)習(xí)廖雪峰的官方網(wǎng)站上git教程git基本用法的總結(jié)砾跃,詳細(xì)內(nèi)容可以進(jìn)入廖雪峰的官方網(wǎng)站查看状囱。

注:本文中的主要內(nèi)容都是基于Linux環(huán)境進(jìn)行操作的,使用的git版本為最新的2.10.2版本。文中命令示例中方括號里面的內(nèi)容都表示是可選參數(shù)。

1. git與版本控制系統(tǒng)

  • git:分布式版本控制系統(tǒng)。

  • svn:集中式版本控制系統(tǒng)碍遍。

無論是分布式還是集中式版本控制系統(tǒng),都只能對純文本文件進(jìn)行版本控制阳液,而對二進(jìn)制文件(如MS Word怕敬、MS Excel文檔等)卻都是無能為力的。

注意一點:文本文件必須統(tǒng)一使用utf-8格式編碼帘皿,千萬不要使用gbk編碼东跪!

2. 安裝git

1. Linux環(huán)境(以Ubuntu為例)

(1) 查看當(dāng)前有沒有安裝git

git

(2) 安裝git

sudo apt-get install git

(3) 查看git版本

git --version

(4) 查看git幫助文檔

有兩種方法:

git

git --help

2. Windows環(huán)境

https://git-for-windows.github.io 上下載EXE安裝包安裝,安裝完成后會有一個git bash命令行矮烹,然后在git bash命令行中其他操作和Linux下一致越庇。

3. 配置git

1. 全局配置:

git config --global user.name "your_name"

git config --global user.email "your_email@example.com"

2. 在當(dāng)前目錄下初始化一個git版本庫

git init

創(chuàng)建成功后,在當(dāng)前目錄下使用ls -al命令奉狈,可以看到創(chuàng)建了一個新的隱藏目錄:.git卤唉,這就是git的版本庫,注意不要手動修改其中的任何內(nèi)容仁期!

4. git工作區(qū)和暫存區(qū)桑驱、分支的關(guān)系

初始化成功一個git版本庫后,會自動創(chuàng)建一個默認(rèn)版本分支:master跛蛋,以及一個暫存區(qū)(stage)熬的。那么工作區(qū)(即用git init命令初始化后的硬盤文件夾)、暫存區(qū)赊级、分支三者之間的關(guān)系是什么呢押框?搞清楚這一點對后面學(xué)習(xí)git的很多用法都非常重要,一圖勝千言理逊,見下圖:

5. git 常用操作

準(zhǔn)備:假如當(dāng)前目錄位于learngit文件夾橡伞,是一個空文件夾,首先在learngit目錄初始化一個git版本庫:

git init

這時發(fā)現(xiàn)在learngit文件夾下新建了一個隱藏目錄:.git晋被,然后在learngit目錄下新建一個文本文件:readme.txt兑徘,并向其中任意添加一些內(nèi)容。

1. 將readme.txt文件添加到版本庫暫存區(qū)

git add readme.txt

附:git add的其他用法:

  • 添加工作區(qū)的所有修改(包括新建羡洛、修改和刪除文件這三種修改):git add -A

  • 添加工作區(qū)中新建和修改文件的改動到暫存區(qū)挂脑,但不包括刪除文件的改動:git add *git add .

  • 添加工作區(qū)修改和刪除文件的改動到暫存區(qū),但不包括新建文件的改動:git add -u

  • 撤銷單個或多個文件的add操作:git reset 文件名1 文件名2...

  • 撤銷當(dāng)前所有add到暫存區(qū)的操作:git reset

2. 刪除文件

git rm 文件名1 文件名2...

3. 從暫存區(qū)提交修改(包括git addgit rm操作)到主分支

git commit -m "create a new file readme.txt"

注:git commit操作只會提交已經(jīng)add到暫存區(qū)的修改,而工作區(qū)還未被add進(jìn)暫存區(qū)的修改是不會被提交的崭闲。

4. 查看工作區(qū)狀態(tài)

git status

5. 查看工作區(qū)和當(dāng)前版本庫最新版本之間的差別

git diff HEAD [-- 文件名1 文件名2...]

6. 撤銷暫存區(qū)的修改(包括git add和git rm操作)

git reset HEAD [文件名1 文件名2...]

7. 查看commit操作的歷史記錄

git log [--pretty=oneline]

注:--pretty=oneline參數(shù)是為了在一行顯示一條歷史記錄肋联。

8. HEAD的理解

HEAD其實相當(dāng)于一個指針,它指向的版本號就是當(dāng)前版本庫的最新版本镀脂。

  • HEAD:當(dāng)前版本

  • HEAD^ :上一個版本

  • HEAD^^ :上上個版本

  • ......

  • HEAD~100:往前100個版本

HEAD的指針作用可以用如下示意圖表示:


從上圖也可以看出牺蹄,HEAD指針可以指向不同的版本,而這也正是下面要講的版本回退和切換的原理薄翅。

9. 回退到某一個版本

  • 回退到上一個版本:git reset --hard HEAD^

  • 回退到某個版本:git reset --hard 版本號

注:版本號可通過git log命令查看沙兰,只需要寫前幾位即可,git會自動識別匹配翘魄。

10. 回到未來

假如回退到之前的某個版本后鼎天,又后悔了不想回退了,想要撤銷回退(即想要回到回退前的版本)暑竟,可以使用如下命令:

  • 先查看commit和reset命令的所有操作歷史記錄:git reflog

  • 找到想要回到的未來的某個版本號斋射,回到未來:git reset --hard 版本號

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市但荤,隨后出現(xiàn)的幾起案子罗岖,更是在濱河造成了極大的恐慌,老刑警劉巖腹躁,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桑包,死亡現(xiàn)場離奇詭異,居然都是意外死亡纺非,警方通過查閱死者的電腦和手機(jī)哑了,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烧颖,“玉大人弱左,你說我怎么就攤上這事】换矗” “怎么了拆火?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涂圆。 經(jīng)常有香客問我们镜,道長,這世上最難降的妖魔是什么乘综? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任憎账,我火速辦了婚禮套硼,結(jié)果婚禮上卡辰,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好九妈,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布反砌。 她就那樣靜靜地躺著,像睡著了一般萌朱。 火紅的嫁衣襯著肌膚如雪宴树。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天晶疼,我揣著相機(jī)與錄音酒贬,去河邊找鬼。 笑死翠霍,一個胖子當(dāng)著我的面吹牛锭吨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寒匙,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼零如,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锄弱?” 一聲冷哼從身側(cè)響起考蕾,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎会宪,沒想到半個月后肖卧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡狈谊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年喜命,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片河劝。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡壁榕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赎瞎,到底是詐尸還是另有隱情牌里,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布务甥,位于F島的核電站牡辽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏敞临。R本人自食惡果不足惜态辛,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挺尿。 院中可真熱鬧奏黑,春花似錦炊邦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蹂匹,卻和暖如春碘菜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背限寞。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工忍啸, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人履植。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓吊骤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親静尼。 傳聞我的和親對象是個殘疾皇子白粉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

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