Git教程筆記(二·版本與修改)

主要內(nèi)容:

  1. 工作區(qū)和暫存區(qū)
  2. 管理修改

命令概覽

$ git checkout -- filename
$ git reset filename
$ git rm filename

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

Git和其他版本控制系統(tǒng)如SVN的一個不同之處就是有暫存區(qū)的概念。
先來看名詞解釋廊鸥。
工作區(qū)(Working Directory)
就是你在電腦里能看到的目錄锋边,比如我的learngit
文件夾就是一個工作區(qū):

working-dir

版本庫(Repository)
工作區(qū)有一個隱藏目錄.git韩容,這個不算工作區(qū)茄厘,而是Git的版本庫蚁阳。
Git的版本庫其中最重要的就是稱為stage(或者叫index)的暫存區(qū),還有Git為我們自動創(chuàng)建的第一個分支master,以及指向master的一個指針叫HEAD户秤。
git-repo

我們把文件往Git版本庫里添加的時候码秉,是分兩步執(zhí)行的:

第一步是用git add把文件添加進(jìn)去,實(shí)際上就是把文件修改添加到暫存區(qū)虎忌;

第二步是用git commit提交更改泡徙,實(shí)際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支橱鹏。

管理修改

git跟蹤的是修改而非文件膜蠢,每次修改,如果不add到暫存區(qū)莉兰,那就不會加入到commit中挑围。
$ git checkout -- file可以丟棄工作區(qū)的修改。命令中的--
很重要糖荒,沒有--杉辙,就變成了“切換到另一個分支”的命令。
命令git checkout -- README.md意思就是捶朵,把README.md文件在工作區(qū)的修改全部撤銷蜘矢,這個文件回到最近一次git commit或git add時的狀態(tài)。

用命令git reset HEAD file可以把暫存區(qū)的修改撤銷掉(unstage)综看,重新放回工作區(qū)品腹。git reset命令既可以回退版本,也可以把暫存區(qū)的修改回退到工作區(qū)红碑。當(dāng)我們用HEAD時舞吭,表示最新的版本。
場景1:當(dāng)你改亂了工作區(qū)某個文件的內(nèi)容析珊,想直接丟棄工作區(qū)的修改時羡鸥,用命令git checkout -- file

場景2:當(dāng)你不但改亂了工作區(qū)某個文件的內(nèi)容忠寻,還添加到了暫存區(qū)時惧浴,想丟棄修改,分兩步奕剃,第一步用命令git reset HEAD file
赶舆,就回到了場景1,第二步按場景1操作祭饭。
場景3:已經(jīng)提交了不合適的修改到版本庫時芜茵,想要撤銷本次提交,參考版本回退一節(jié)倡蝙,不過前提是沒有推送到遠(yuǎn)程庫九串。

刪除文件

$ git checkout
其實(shí)是用版本庫里的版本替換工作區(qū)的版本,無論工作區(qū)是修改還是刪除,都可以“一鍵還原”猪钮。
一般情況下品山,你通常直接在文件管理器中把沒用的文件刪了,或者用rm命令刪了

  1. 是確實(shí)要從版本庫中刪除該文件烤低,那就用命令$ git rm filename刪掉肘交,并且$ git commit
    比如:
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
[master d17efd8] remove test.txt 
1 file changed, 1 deletion(-) 
delete mode 100644 test.txt
  1. 另一種情況是刪錯了,因?yàn)榘姹編炖镞€有呢扑馁,所以可以很輕松地把誤刪的文件恢復(fù)到最新版本:
    $ git checkout -- test.txt

參考來源:
廖雪峰的git教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涯呻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子腻要,更是在濱河造成了極大的恐慌复罐,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雄家,死亡現(xiàn)場離奇詭異效诅,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)趟济,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門乱投,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人顷编,你說我怎么就攤上這事戚炫。” “怎么了勾效?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵嘹悼,是天一觀的道長。 經(jīng)常有香客問我层宫,道長杨伙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任萌腿,我火速辦了婚禮限匣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘毁菱。我一直安慰自己米死,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布贮庞。 她就那樣靜靜地躺著峦筒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窗慎。 梳的紋絲不亂的頭發(fā)上物喷,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天卤材,我揣著相機(jī)與錄音,去河邊找鬼峦失。 笑死扇丛,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的尉辑。 我是一名探鬼主播帆精,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼隧魄!你這毒婦竟也來了卓练?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤堤器,失蹤者是張志新(化名)和其女友劉穎昆庇,沒想到半個月后末贾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體闸溃,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年拱撵,在試婚紗的時候發(fā)現(xiàn)自己被綠了辉川。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡拴测,死狀恐怖乓旗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情集索,我是刑警寧澤屿愚,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站务荆,受9級特大地震影響妆距,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜函匕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一娱据、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盅惜,春花似錦中剩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屈芜,卻和暖如春郊愧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工糕珊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留动分,地道東北人。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓红选,卻偏偏與公主長得像澜公,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子喇肋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350

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