Gitの撤銷修改/刪除文件 day02

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

  • 工作區(qū)(Working Directory):在電腦里能看到的目錄,用于存放代碼的文件夾
  • 版本庫(kù)(Repository):工作區(qū)有一個(gè)隱藏目錄.git羊始,這個(gè)不算工作區(qū)筏养,而是Git的版本庫(kù)闪金。

Git的版本庫(kù)里存了很多東西冤议,其中最重要的就是稱為stage(或者叫index)的暫存區(qū),還有Git為我們自動(dòng)創(chuàng)建的第一個(gè)分支master技羔,以及指向master的一個(gè)指針叫HEAD喷好。

工作區(qū)/緩存區(qū)/版本庫(kù)關(guān)系圖

把文件往Git版本庫(kù)里添加的時(shí)候,是分兩步執(zhí)行的:

  1. git add把文件添加進(jìn)去缅刽,實(shí)際上就是把文件修改添加到暫存區(qū)啊掏;
  2. 第二步是用git commit提交更改,實(shí)際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支衰猛。
    創(chuàng)建Git版本庫(kù)時(shí)迟蜜,Git自動(dòng)為我們創(chuàng)建了唯一一個(gè)master分支,所以啡省,現(xiàn)在娜睛,git commit就是往master分支上提交更改。

可以簡(jiǎn)單理解為卦睹,需要提交的文件修改通通放到暫存區(qū)畦戒,然后,一次性提交暫存區(qū)的所有修改结序。每次修改障斋,如果不用git add暫存區(qū),那就不會(huì)加入到commit中.

撤銷修改

$ git checkout -- readme.txt

命令git checkout -- readme.txt意思就是徐鹤,把readme.txt文件在工作區(qū)的修改全部撤銷垃环,這里有兩種情況:

  • 一種是readme.txt自修改后還沒有被放到暫存區(qū),現(xiàn)在返敬,撤銷修改就回到和版本庫(kù)一模一樣的狀態(tài)遂庄;
  • 一種是readme.txt已經(jīng)添加到暫存區(qū)后,又作了修改救赐,現(xiàn)在涧团,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。
    總之经磅,就是讓這個(gè)文件回到最近一次git commitgit add時(shí)的狀態(tài)泌绣。

命令git reset HEAD <file>可以把暫存區(qū)的修改撤銷掉(unstage),重新放回工作區(qū)

$ git reset HEAD readme.txt
Unstaged changes after reset:
M   readme.txt

git reset命令既可以回退版本预厌,也可以把暫存區(qū)的修改回退到工作區(qū)阿迈。當(dāng)我們用HEAD時(shí),表示最新的版本轧叽。

小結(jié)

  • 場(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í)当犯,想要撤銷本次提交,參考day01中的版本回退一節(jié)割疾,不過前提是沒有推送到遠(yuǎn)程庫(kù)嚎卫。

刪除文件

從版本庫(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

現(xiàn)在拓诸,文件就從版本庫(kù)中被刪除了。

如果后面發(fā)現(xiàn)刪錯(cuò)了担扑,因?yàn)榘姹編?kù)里還有呢恰响,所以可以很輕松地把誤刪的文件恢復(fù)到最新版本:

$ git checkout -- test.txt

git checkout其實(shí)是用版本庫(kù)里的版本替換工作區(qū)的版本,無(wú)論工作區(qū)是修改還是刪除涌献,都可以“一鍵還原”。

小結(jié)

命令git rm用于刪除一個(gè)文件首有。如果一個(gè)文件已經(jīng)被提交到版本庫(kù)燕垃,那么你永遠(yuǎn)不用擔(dān)心誤刪,但是要小心井联,你只能恢復(fù)文件到最新版本卜壕,你會(huì)丟失最近一次提交后你修改的內(nèi)容.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市烙常,隨后出現(xiàn)的幾起案子轴捎,更是在濱河造成了極大的恐慌,老刑警劉巖蚕脏,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侦副,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡驼鞭,警方通過查閱死者的電腦和手機(jī)秦驯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挣棕,“玉大人译隘,你說我怎么就攤上這事亲桥。” “怎么了固耘?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵题篷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我厅目,道長(zhǎng)悼凑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任璧瞬,我火速辦了婚禮户辫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗤锉。我一直安慰自己渔欢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布瘟忱。 她就那樣靜靜地躺著奥额,像睡著了一般。 火紅的嫁衣襯著肌膚如雪访诱。 梳的紋絲不亂的頭發(fā)上垫挨,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音触菜,去河邊找鬼九榔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛涡相,可吹牛的內(nèi)容都是我干的哲泊。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼催蝗,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼切威!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起丙号,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤先朦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后犬缨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喳魏,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年遍尺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了截酷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖迂苛,靈堂內(nèi)的尸體忽然破棺而出三热,到底是詐尸還是另有隱情,我是刑警寧澤三幻,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布就漾,位于F島的核電站,受9級(jí)特大地震影響念搬,放射性物質(zhì)發(fā)生泄漏抑堡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一朗徊、第九天 我趴在偏房一處隱蔽的房頂上張望首妖。 院中可真熱鬧,春花似錦爷恳、人聲如沸有缆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)棚壁。三九已至,卻和暖如春栈虚,著一層夾襖步出監(jiān)牢的瞬間袖外,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工魂务, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留曼验,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓头镊,卻偏偏與公主長(zhǎng)得像蚣驼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子相艇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

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

  • 安裝Git Git的下載地址:Git官網(wǎng)下載地址 Git本地倉(cāng)庫(kù)和命令 配置用戶 下載完Git后,右鍵會(huì)有一個(gè)Gi...
    TokyoZ閱讀 4,494評(píng)論 1 7
  • (預(yù)警:因?yàn)樵敿?xì)纯陨,所以行文有些長(zhǎng)坛芽,新手邊看邊操作效果出乎你的預(yù)料) 一:Git是什么? Git是目前世界上最先進(jìn)的...
    axiaochao閱讀 1,927評(píng)論 1 8
  • 大綱: 一翼抠、前言 二咙轩、概述 三、在Windows上安裝Git 四阴颖、創(chuàng)建本地倉(cāng)庫(kù) 五活喊、本地倉(cāng)庫(kù)管理詳解 六、總結(jié) 注...
    首席架構(gòu)師閱讀 361評(píng)論 1 3
  • Git 是目前最流行的分布式版本控制系統(tǒng)之一量愧。 版本控制指的是钾菊,記錄每次版本變更的內(nèi)容和時(shí)間等細(xì)節(jié)帅矗,保留各版本之間...
    神齊閱讀 1,409評(píng)論 0 7
  • 本系列教程來自廖雪峰的官方網(wǎng)站,現(xiàn)在搬運(yùn)過來,目的幫助自己和小白學(xué)習(xí)收藏!附贈(zèng):常用git命令清單 目錄 前言 版...
    Blizzard_liu閱讀 1,300評(píng)論 0 2