日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

checkout 撤销修改_Git的4个阶段的撤销更改

發(fā)布時間:2025/3/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 checkout 撤销修改_Git的4个阶段的撤销更改 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

雖然git誕生距今已有12年之久,網(wǎng)上各種關(guān)于git的介紹文章數(shù)不勝數(shù),但是依然有很多人(包括我自己在內(nèi))對于它的功能不能完全掌握。以下的介紹只是基于我個人對于git的理解,并且可能生編硬造了一些不完全符合git說法的詞語。目的只是為了讓git通俗化,使初學者也能大概了解如何快速上手git。同時,下面所有討論,我們都假設(shè)只使用一個分支,也就是主分支master的情況,雖然這種作法并不符合git規(guī)范,但是現(xiàn)實情況中絕大部分用戶是直接在master分支上進行工作的,所以在這里我們不去引入更加復(fù)雜的各種分支的情況,也不涉及標簽tag的操作,只講在最簡單的主分支上如何回退。

基本概念

3個步驟

正常情況下,我們的工作流就是3個步驟,對應(yīng)上圖中的3個箭頭線:

git add .

git commit -m "comment"

git push

git add .把所有文件放入暫存區(qū);

git commit把所有文件從暫存區(qū)提交進本地倉庫;

git push把所有文件從本地倉庫推送進遠程倉庫。

4個區(qū)

git之所以令人費解,主要是它相比于svn等等傳統(tǒng)的版本管理工具,多引入了一個暫存區(qū)(Stage)的概念,就因為多了這一個概念,而使很多人疑惑。其實,在初學者來說,每個區(qū)具體怎么工作的,我們完全不需要關(guān)心,而只要知道有這么4個區(qū)就夠了:

工作區(qū)(Working Area)

暫存區(qū)(Stage)

本地倉庫(Local Repository)

遠程倉庫(Remote Repository)

5種狀態(tài)

以上4個區(qū),進入每一個區(qū)成功之后會產(chǎn)生一個狀態(tài),再加上最初始的一個狀態(tài),一共是5種狀態(tài)。以下我們把這5種狀態(tài)分別命名為:

未修改(Origin)

已修改(Modified)

已暫存(Staged)

已提交(Committed)

已推送(Pushed)

檢查修改

了解了基本概念之后,我們來談一談犯錯誤之后如何撤銷的問題。首先,我們要了解如何檢查這3個步驟當中每一個步驟修改了什么,然后才好判斷有沒有修改成功。檢查修改的二級命令都相同,都是diff,只是參數(shù)有所不同。

已修改,未暫存

git diff

首先,我們來看一下,如果我們只是簡單地在瀏覽器里保存了一下文件,但是還沒有做git add .之前,我們?nèi)绾螜z查有哪些修改。我們先隨便拿一個文件來做一下實驗:

我們在文件開頭的第2行胡亂加了4個數(shù)字1234,存盤,這時文件進入了已修改狀態(tài),但是還沒有進入暫存區(qū),我們運行g(shù)it diff,結(jié)果如下:

diff --git a/index.md b/index.md

index 73ff1ba..1066758 100644

--- a/index.md

+++ b/index.md

@@ -1,5 +1,5 @@

---

-layout: main

+1234layout: main

color: black

---

git diff的結(jié)果告訴我們哪些文件已經(jīng)做了哪些修改。

已暫存,未提交

git diff --cached

現(xiàn)在我們把修改放入暫存區(qū)看一下。先執(zhí)行g(shù)it add .,然后執(zhí)行g(shù)it diff,你會發(fā)現(xiàn)沒有任何結(jié)果:

這說明git diff這個命令只檢查我們的工作區(qū)和暫存區(qū)之間的差異,如果我們想看到暫存區(qū)和本地倉庫之間的差異,就需要加一個參數(shù)git diff --cached:

diff --git a/index.md b/index.md

index 73ff1ba..1066758 100644

--- a/index.md

+++ b/index.md

@@ -1,5 +1,5 @@

---

-layout: main

+1234layout: main

color: black

---

這時候我們看到的差異是暫存區(qū)和本地倉庫之間的差異。

已提交,未推送

git diff master origin/master

現(xiàn)在,我們把修改從暫存區(qū)提交到本地倉庫,再看一下差異。先執(zhí)行g(shù)it commit,然后再執(zhí)行g(shù)it diff --cached,沒有差異,執(zhí)行g(shù)it diff master origin/master,可以看到差異:

在這里,master就是你的本地倉庫,而origin/master就是你的遠程倉庫,master是主分支的意思,因為我們都在主分支上工作,所以這里兩邊都是master,而origin就代表遠程。

撤銷修改

了解清楚如何檢查各種修改之后,我們開始嘗試各種撤銷操作。

已修改,未暫存

如果我們只是在編輯器里修改了文件,但還沒有執(zhí)行g(shù)it add .,這時候我們的文件還在工作區(qū),并沒有進入暫存區(qū),我們可以用:

git checkout .

或者

git reset --hard

來進行撤銷操作。

可以看到,在執(zhí)行完git checkout .之后,修改已被撤銷,git diff沒有任何內(nèi)容了。

一對反義詞

git add .的反義詞是git checkout .。做完修改之后,如果你想向前走一步,讓修改進入暫存區(qū),就執(zhí)行g(shù)it add .,如果你想向后退一步,撤銷剛才的修改,就執(zhí)行g(shù)it checkout .。

已暫存,未提交

你已經(jīng)執(zhí)行了git add .,但還沒有執(zhí)行g(shù)it commit -m "comment"。這時候你意識到了錯誤,想要撤銷,你可以執(zhí)行:

git reset

git checkout .

或者

git reset --hard

git reset只是把修改退回到了git add .之前的狀態(tài),也就是說文件本身還處于已修改未暫存狀態(tài),你如果想退回未修改狀態(tài),還需要執(zhí)行g(shù)it checkout .。

或許你已經(jīng)注意到了,以上兩個步驟都可以用同一個命令git reset --hard來完成。是的,就是這個強大的命令,可以一步到位地把你的修改完全恢復(fù)到未修改的狀態(tài)。

已提交,未推送

你的手太快,你既執(zhí)行了git add .,又執(zhí)行了git commit,這時候你的代碼已經(jīng)進入了你的本地倉庫,然而你后悔了,怎么辦?不要著急,還有辦法。

git reset --hard origin/master

還是這個git reset --hard命令,只不過這次多了一個參數(shù)origin/master,正如我們上面講過的,origin/master代表遠程倉庫,既然你已經(jīng)污染了你的本地倉庫,那么就從遠程倉庫把代碼取回來吧。

已推送

很不幸,你的手實在是太快了,你既git add了,又git commit了,并且還git push了,這時你的代碼已經(jīng)進入遠程倉庫。如果你想恢復(fù)的話,還好,由于你的本地倉庫和遠程倉庫是等價的,你只需要先恢復(fù)本地倉庫,再強制push到遠程倉庫就好了:

git reset --hard HEAD^

git push -f

總結(jié)

以上4種狀態(tài)的撤銷我們都用到了同一個命令git reset --hard,前2種狀態(tài)的用法甚至完全一樣,所以只要掌握了git reset --hard這個命令的用法,從此你再也不用擔心提交錯誤了。

更多參考

總結(jié)

以上是生活随笔為你收集整理的checkout 撤销修改_Git的4个阶段的撤销更改的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩高清国产一区在线 | 亚洲精品乱码久久久久99 | 国产精品美女网站 | 欧美一级免费片 | 亚洲一区二区黄片 | av不卡高清| 日本一二区视频 | 国产精品影院在线观看 | 成人乱人乱一区二区三区 | 丰满大乳少妇在线观看网站 | 色婷婷国产精品综合在线观看 | 精品黄色一级片 | 超鹏在线视频 | 午夜激情视频网站 | 亚洲天堂首页 | 欧美偷拍视频 | 国产第一页在线 | 天堂网中文字幕 | 在线涩涩| 雨宫琴音一区二区三区 | 樱桃成人精品视频在线播放 | 午夜免费看片 | 少妇高潮毛片色欲ava片 | 久久狠狠高潮亚洲精品 | 性做久久久久久免费观看 | 女人裸体无遮挡 | 人成免费在线视频 | 日批视屏| 一本大道一区二区 | 无码国产精品一区二区高潮 | 国产一级做a爱片久久毛片a | 亚洲看看| 第一av| 亚洲av日韩精品久久久久久久 | 无人在线观看高清视频 | 日日夜夜天天操 | 少妇被按摩师摸高潮了 | 四虎国产在线观看 | 丰满秘书被猛烈进入高清播放在 | 99re免费视频精品全部 | 丝袜av网站 | 亚洲最新网址 | 国内av| 欧美日韩三级在线 | 欧洲精品久久久久毛片完整版 | 玖玖爱国产 | 日本免费在线视频观看 | 四虎av影视 | 激情视频一区二区 | 又欲又污又肉又黄短文 | 久久国产福利一区 | 三上悠亚人妻中文字幕在线 | 91在线观看免费高清完整版在线观看 | 日韩久久一级片 | 亚洲熟妇无码一区二区三区导航 | 制服丝袜一区二区三区 | 日韩福利视频导航 | 97久久精品 | 国产成人99 | 欧美日韩一区二区三区69堂 | 人妻妺妺窝人体色www聚色窝 | 就操网| 欧美日本一二三区 | 国产一级三级 | 日日操夜夜草 | 6080午夜伦理 | 男生脱女生衣服 | 97伊人网| 女同性做爰全过程 | 浪漫樱花在线观看高清动漫 | 妹子干综合 | 中文字幕久久熟女蜜桃 | 女同久久另类69精品国产 | 国产乱淫视频 | 制服丝袜先锋影音 | 精品国内自产拍在线观看视频 | 少妇熟女视频一区二区三区 | 国产福利视频网站 | 深夜视频在线播放 | 无码专区久久综合久中文字幕 | 麻豆av免费在线观看 | 中文字幕视频一区 | 浮妇高潮喷白浆视频 | 精品少妇一区二区 | 黄色激情网站 | av狠狠操| 91麻豆精品国产91久久久久久久久 | 黄色特级一级片 | 丝瓜av| 日韩成人一区二区 | 久操热线 | 精品在线一区 | 成人区人妻精品一区二区网站 | 初尝黑人巨炮波多野结衣 | 超碰天天干 | 成年人在线视频网站 | 天堂在线资源库 | 91成人一区二区三区 | 香蕉在线观看视频 |