鍍金池/ 教程/ Java/ 撤銷暫存的更改
創(chuàng)建沖突
暫存更改
創(chuàng)建項(xiàng)目
Git 內(nèi)幕:.git 目錄
撤銷本地更改
移動(dòng)文件
移除 oops 標(biāo)簽
何為 Origin
再談結(jié)構(gòu)
撤銷暫存的更改
修正提交
別名
檢查狀態(tài)
給版本打標(biāo)簽
撤銷提交的更改
拉下共享的更改
變基
暫存與提交
合并
合并拉下的更改
更改而非文件
更改原始倉(cāng)庫(kù)
重置 master 分支
回顧克隆的倉(cāng)庫(kù)
變基 VS 合并
共享倉(cāng)庫(kù)
導(dǎo)航分支
重置 greet 分支
添加跟蹤的分支
獲得舊版本
克隆倉(cāng)庫(kù)
Git 內(nèi)幕:直接處理 Git 對(duì)象
再談設(shè)置
遠(yuǎn)程分支
從分支移除提交
合并回 master
查看分叉的分支
添加遠(yuǎn)程倉(cāng)庫(kù)
拉下更改
歷史
在 master 中更改
裸倉(cāng)庫(kù)
做更改
高級(jí)/將來(lái)的主題
推送更改
多個(gè)倉(cāng)庫(kù)
設(shè)置
提交更改
取得更改
托管你的 Git 倉(cāng)庫(kù)
創(chuàng)建分支
解決沖突

撤銷暫存的更改

目的

學(xué)習(xí)如何還原已經(jīng)暫存的更改。

更改文件并暫存更改

修改 hello.rb 文件來(lái)包含一個(gè)錯(cuò)誤的注釋。

# This is an unwanted but staged comment
name = ARGV.first || "World"

puts "Hello, #{name}!"

然后去暫存它。

$ git add hello.rb

檢查狀態(tài)

檢查你不想要的更改狀態(tài)。

$ git status
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   hello.rb
#

status 輸出顯示更改已被暫存且準(zhǔn)備提交。

重置暫存區(qū)

幸運(yùn)的是 status 輸出告訴我們?nèi)∠麜捍娓臅r(shí)需要做什么。

$ git reset HEAD hello.rb
$ git reset HEAD hello.rb
Unstaged changes after reset:
M   hello.rb

reset 命令重置 HEAD 中暫存區(qū)的內(nèi)容。這將清除我們已經(jīng)暫存的更改。

reset 命令(默認(rèn))不會(huì)更改工作目錄。所以在工作目錄中仍然有不想要的注釋。我們可以使用之前實(shí)驗(yàn)中的 checkout 命令來(lái)從工作目錄移除不想要的更改。

檢出提交的版本

$ git checkout hello.rb
$ git status
$ git status
# On branch master
nothing to commit (working directory clean)

現(xiàn)在我們的工作目錄又變干凈了。

上一篇:做更改下一篇:共享倉(cāng)庫(kù)