Git詳細教程(五)管理修改

現在驮吱,假定你已經完全掌握了暫存區(qū)的概念茧妒。下面,我們要討論的就是左冬,為什么Git比其他版本控制系統(tǒng)設計得優(yōu)秀桐筏,因為Git跟蹤并管理的是修改,而非文件拇砰。

你會問梅忌,什么是修改?比如你新增了一行除破,這就是一個修改牧氮,刪除了一行,也是一個修改瑰枫,更改了某些字符踱葛,也是一個修改,刪了一些又加了一些光坝,也是一個修改尸诽,甚至創(chuàng)建一個新文件,也算一個修改盯另。

為什么說Git管理的是修改性含,而不是文件呢?我們還是做實驗土铺。第一步胶滋,對readme.txt做一個修改,比如加一行內容:

$ cat readme.txt 
Git is a distributed version control system.
Git is a free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes.

然后悲敷,添加:

$ git add readme.txt 
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   readme.txt

然后究恤,再修改readme.txt

$ cat readme.txt 
Git is a distributed version control system.
Git is a free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.

提交:

$ git commit -m "git tracks changes"
[master b8e789a] git tracks changes
 1 file changed, 1 insertion(+)

提交后再看看狀態(tài):

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

咦,怎么第二次的修改沒有被提交后德?

別激動部宿,我們回顧一下操作過程:

第一次修改 -> git add -> 第二次修改 -> git commit

你看,我們前面講了瓢湃,Git管理的是修改理张,當你用git add命令后,在工作區(qū)的第一次修改被放入暫存區(qū)绵患,準備提交雾叭,但是,在工作區(qū)的第二次修改并沒有放入暫存區(qū)落蝙,所以织狐,git commit只負責把暫存區(qū)的修改提交了,也就是第一次的修改被提交了筏勒,第二次的修改不會被提交移迫。

提交后,用git diff HEAD -- readme.txt命令可以查看工作區(qū)和版本庫里面最新版本的區(qū)別:

$ git diff  HEAD -- readme.txt
diff --git a/readme.txt b/readme.txt
index c46ca5e..ebb26db 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,4 +1,4 @@
 Git is a distributed version control system.
 Git is a free software distributed under the GPL.
 Git has a mutable index called stage.
-Git tracks changes.
+Git tracks changes of files.

可見管行,第二次修改確實沒有被提交厨埋。

那怎么提交第二次修改呢?你可以繼續(xù)git addgit commit捐顷,也可以別著急提交第一次修改荡陷,先git add第二次修改,再git commit迅涮,就相當于把兩次修改合并后一塊提交了:

第一次修改 -> git add -> 第二次修改 -> git add ->git commit

好亲善,現在,把第二次修改提交了逗柴,然后開始小結蛹头。

小結

現在,你又理解了Git是如何跟蹤修改的戏溺,每次修改渣蜗,如果不add到暫存區(qū),那就不會加入到commit中旷祸。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末耕拷,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子托享,更是在濱河造成了極大的恐慌骚烧,老刑警劉巖浸赫,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異赃绊,居然都是意外死亡既峡,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門碧查,熙熙樓的掌柜王于貴愁眉苦臉地迎上來运敢,“玉大人,你說我怎么就攤上這事忠售〈荩” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵稻扬,是天一觀的道長卦方。 經常有香客問我,道長泰佳,這世上最難降的妖魔是什么愿汰? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮乐纸,結果婚禮上衬廷,老公的妹妹穿的比我還像新娘。我一直安慰自己汽绢,他們只是感情好吗跋,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宁昭,像睡著了一般跌宛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上积仗,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天疆拘,我揣著相機與錄音,去河邊找鬼寂曹。 笑死哎迄,一個胖子當著我的面吹牛,可吹牛的內容都是我干的隆圆。 我是一名探鬼主播漱挚,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼渺氧!你這毒婦竟也來了旨涝?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤侣背,失蹤者是張志新(化名)和其女友劉穎白华,沒想到半個月后慨默,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡弧腥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年厦取,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸟赫。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖消别,靈堂內的尸體忽然破棺而出抛蚤,到底是詐尸還是另有隱情,我是刑警寧澤寻狂,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布岁经,位于F島的核電站,受9級特大地震影響蛇券,放射性物質發(fā)生泄漏缀壤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一纠亚、第九天 我趴在偏房一處隱蔽的房頂上張望塘慕。 院中可真熱鬧,春花似錦蒂胞、人聲如沸图呢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛤织。三九已至,卻和暖如春鸿染,著一層夾襖步出監(jiān)牢的瞬間指蚜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工涨椒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留摊鸡,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓蚕冬,卻偏偏與公主長得像柱宦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子播瞳,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348