git-時(shí)光機(jī)2

git checkout -- file 在工作區(qū)的修改全部撤銷
git reset HEAD <file> 可以把暫存區(qū)的修改撤銷掉(unstage)根盒,重新放回工作區(qū):

工作區(qū)和暫存區(qū)

工作區(qū)(Working Directory)

就是你在電腦里能看到的目錄钳幅,比如我的learngit文件夾就是一個(gè)工作區(qū)

版本庫(kù)(Repository)

工作區(qū)有一個(gè)隱藏目錄.git,這個(gè)不算工作區(qū)炎滞,而是Git的版本庫(kù)敢艰。
Git的版本庫(kù)里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區(qū)册赛,還有Git為我們自動(dòng)創(chuàng)建的第一個(gè)分支master钠导,以及指向master的一個(gè)指針叫HEAD。


image.png

前面講了我們把文件往Git版本庫(kù)里添加的時(shí)候击奶,是分兩步執(zhí)行的:
第一步是用git add把文件添加進(jìn)去,實(shí)際上就是把文件修改添加到暫存區(qū)湃望;
第二步是用git commit提交更改证芭,實(shí)際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支担映。
因?yàn)槲覀儎?chuàng)建Git版本庫(kù)時(shí),Git自動(dòng)為我們創(chuàng)建了唯一一個(gè)master分支官硝,所以,現(xiàn)在傻咖,git commit就是往master分支上提交更改卿操。
你可以簡(jiǎn)單理解為孙援,需要提交的文件修改通通放到暫存區(qū)拓售,然后,一次性提交暫存區(qū)的所有修改


image.png

image.png

管理修改

第一次修改 -> git add -> 第二次修改 -> git commit
只把暫存區(qū)的第一次修改提交了,
第一次修改 -> git add -> 第二次修改 ->git add-> git commit
這樣就都提交了

撤銷修改

場(chǎng)景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容莹菱,想直接丟棄工作區(qū)的修改時(shí)吱瘩,用命令git checkout -- file
場(chǎng)景2:當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容蜜徽,還添加到了暫存區(qū)時(shí)拘鞋,想丟棄修改矢门,分兩步祟剔,第一步用命令git reset HEAD <file>,就回到了場(chǎng)景1宣旱,第二步按場(chǎng)景1操作浑吟。
場(chǎng)景3:已經(jīng)提交了不合適的修改到版本庫(kù)時(shí),想要撤銷本次提交组力,可以通過(guò)版本回退忿项,不過(guò)前提是沒(méi)有推送到遠(yuǎn)程庫(kù)轩触。

刪除文件

Git中家夺,刪除也是一個(gè)修改操作拉馋,我們實(shí)戰(zhàn)一下,先添加一個(gè)新文件test.txt到Git并且提交:

$ git add test.txt

$ git commit -m "add test.txt"
[master b84166e] add test.txt
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt

一般情況下随闺,你通常直接在文件管理器中把沒(méi)用的文件刪了矩乐,或者用rm命令刪了:

$ rm test.txt

這個(gè)時(shí)候回论,Git知道你刪除了文件傀蓉,因此,工作區(qū)和版本庫(kù)就不一致了误甚,git status命令會(huì)立刻告訴你哪些文件被刪除了:

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

    deleted:    test.txt

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

現(xiàn)在你有兩個(gè)選擇靶草,一是確實(shí)要從版本庫(kù)中刪除該文件岳遥,那就用命令git rm刪掉奕翔,并且git commit:

$ git rm test.txt
rm 'test.txt'

$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt

另一種情況是刪錯(cuò)了浩蓉,因?yàn)榘姹編?kù)里還有呢宾袜,所以可以很輕松地把誤刪的文件恢復(fù)到最新版本:

$ git checkout -- test.txt
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市绅络,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杉畜,老刑警劉巖衷恭,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異灭袁,居然都是意外死亡茸歧,警方通過(guò)查閱死者的電腦和手機(jī)举娩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門构罗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)遂唧,“玉大人,你說(shuō)我怎么就攤上這事纹烹≌俦撸” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我沪饺,道長(zhǎng)整葡,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任遭居,我火速辦了婚禮魏滚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘更哄。我一直安慰自己,他們只是感情好觅捆,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布栅炒。 她就那樣靜靜地躺著赢赊,像睡著了一般级历。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玩讳,一...
    開(kāi)封第一講書(shū)人閱讀 52,196評(píng)論 1 308
  • 那天熏纯,我揣著相機(jī)與錄音樟澜,去河邊找鬼掐场。 笑死贩猎,一個(gè)胖子當(dāng)著我的面吹牛萍膛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播艇棕,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼沼琉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼打瘪!你這毒婦竟也來(lái)了傻昙?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤僻爽,失蹤者是張志新(化名)和其女友劉穎胸梆,沒(méi)想到半個(gè)月后碰镜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體习瑰,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡菠发,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年滓鸠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了第喳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖楔敌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庆聘,我是刑警寧澤勺卢,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布黑忱,位于F島的核電站甫煞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏危虱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一唐全、第九天 我趴在偏房一處隱蔽的房頂上張望埃跷。 院中可真熱鬧,春花似錦邮利、人聲如沸弥雹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)剪勿。三九已至,卻和暖如春方庭,著一層夾襖步出監(jiān)牢的瞬間厕吉,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工械念, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留头朱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓龄减,卻偏偏與公主長(zhǎng)得像署隘,于是被迫代替她去往敵國(guó)和親磁餐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

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

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照荠呐,而是把代碼倉(cāng)庫(kù)完整的鏡像下來(lái)。這樣一來(lái)媚创,任何一處協(xié)同...
    __silhouette閱讀 15,899評(píng)論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照芒炼,而是把代碼倉(cāng)庫(kù)完整的鏡像下來(lái)...
    sunnyghx閱讀 3,926評(píng)論 0 11
  • Git常用語(yǔ)法 [TOC] Git簡(jiǎn)介 描述 ? Git(讀音為/g?t/赠涮。)是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),...
    君惜丶閱讀 3,535評(píng)論 0 13
  • @詞以境界為最上晒衩,有境界則自成高格,自有名句。 王國(guó)維浪漠,浙江海寧人,中國(guó)近代著名學(xué)者响谓,國(guó)學(xué)大師,清華大學(xué)國(guó)學(xué)研究...
    逗霸君閱讀 1,583評(píng)論 0 5
  • 清晨從指尖從眼淚 從狂傲不羈的目光中流走 風(fēng)和雨敲打的并不夠 路邊的野花伴荊棘 當(dāng)做了花香景色 聞過(guò)了心………… ...
    密密寫作閱讀 139評(píng)論 0 0