最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Git丟棄對一個文件的改動的方法詳解

 更新時間:2026年05月06日 08:32:34   作者:金銀銅鐵  
當我們進行日常開發(fā)時,有時候需要丟棄對一個文件的改動,為了便于描述,我們假設(shè)這個文件是 f.txt,會有兩種情況,本文會對兩種情況進行討論,需要的朋友可以參考下

背景

當我們進行日常開發(fā)時,有時候需要丟棄對一個文件的改動。為了便于描述,我們假設(shè)這個文件是 f.txt\text{f.txt}f.txt。會有兩種情況 ??

  • 僅丟棄 f.txt\text{f.txt}f.txt 尚未暫存 的改動
  • 丟棄 f.txt\text{f.txt}f.txt 已暫存 的改動 + 尚未暫存 的改動

本文會對這兩種情況分別進行介紹

要點

僅丟棄尚未暫存的改動

執(zhí)行以下兩個命令中的 任何一個 都可以丟棄 尚未暫存 的改動

git restore <file>
## 或者
git checkout <file>

注意事項

  • 執(zhí)行命令時,需要將 <file> 替換為您想指定的文件(例如 f.txt\text{f.txt}f.txt
  • 如果您是第一次使用它們,請不要用重要的項目來進行試驗,以防誤操作(尚未暫存 的改動被丟棄之后就找不回來了)

丟棄 已暫存 的改動 + 尚未暫存 的改動

執(zhí)行以下兩個命令中的 任何一個 都可以丟棄 已暫存 的改動 + 尚未暫存 的改動

git restore --staged --worktree <file>
## 或者
git checkout HEAD <file>

注意事項

  • 執(zhí)行命令時,需要將 <file> 替換為您想指定的文件(例如 f.txt\text{f.txt}f.txt
  • 如果您是第一次使用它們,請不要用重要的項目來進行試驗,以防誤操作(已暫存/尚未暫存 的改動被丟棄之后就找不回來了)

正文

示例

準備工作

請將以下代碼保存為 main.sh (具體的名稱并不重要)

## Prepare a temp dir for our test
mkdir temp
cd temp

## Prepare for the initial commit
git init
echo "Content committed" >> f.txt
git add f.txt
git commit -m "initial commit"

## Stage some content in f.txt
echo "Staged content in f.txt" >> f.txt
git add f.txt

## Add some content to be staged in f.txt
echo "Content to be staged ..." >> f.txt

通過執(zhí)行下方的命令就可以運行 main.sh ??

bash main.sh

運行完 main.sh 之后,當前目錄中會多出一個 temp 目錄。在當前目錄執(zhí)行 tree temp 命令后,應(yīng)該可以看到如下的內(nèi)容

temp
└── f.txt

1 directory, 1 file

通過執(zhí)行如下命令,可以切換到 temp 目錄中 ??

cd temp

temp 目錄中,我們執(zhí)行如下命令就可以看到 f.txt\text{f.txt}f.txt 的狀態(tài)

git status

執(zhí)行該命令后,可以看到 f.txt\text{f.txt}f.txt 中既有 已暫存 的改動(如下圖綠色框所示),也有 尚未暫存 的改動(如下圖紅色框所示)

各個狀態(tài)的 f.txt\text{f.txt}f.txt 的內(nèi)容列舉如下

內(nèi)容
commit\text{commit}commitf.txt\text{f.txt}f.txtContent committed
已暫存的 f.txt\text{f.txt}f.txtContent committed
Staged content in f.txt
當前的 f.txt\text{f.txt}f.txtContent committed
Staged content in f.txt
Content to be staged ...

如果我們想讓 f.txt\text{f.txt}f.txt 變回下圖紅框里的這個樣子,那么只需要丟棄 尚未暫存 的改動

如果我們想讓 f.txt\text{f.txt}f.txt 變回下圖綠框里的這個樣子,那么需要丟棄 已暫存 的改動 + 尚未暫存 的改動

我們分別來看

情形一:僅丟棄尚未暫存的改動

請注意:尚未暫存 的改動被丟棄之后就找不回來了

第一種方式:基于git restore\text{git restore}git restore命令

我們可以用 git restore\text{git restore}git restore 命令來丟棄 f.txt\text{f.txt}f.txt 中尚未暫存的改動

git restore f.txt

執(zhí)行該命令后,我們再用 git status\text{git status}git status 命令和 cat f.txt\text{cat f.txt}cat f.txt 命令驗證一下

從紅色框的內(nèi)容可以看出,f.txt\text{f.txt}f.txt 的變化符合預(yù)期。

第二種方式:基于git checkout\text{git checkout}git checkout命令

我們也可以用 git checkout\text{git checkout}git checkout 命令來丟棄 f.txt\text{f.txt}f.txt 中尚未暫存的改動

git checkout f.txt

執(zhí)行該命令后,可以再用 git status\text{git status}git status 命令和 cat f.txt\text{cat f.txt}cat f.txt 命令驗證一下

從紅色框的內(nèi)容可以看出,f.txt\text{f.txt}f.txt 的變化符合預(yù)期。

情形二:丟棄 已暫存 與 尚未暫存 的改動

請注意:已暫存/尚未暫存 的改動被丟棄之后就找不回來了

第一種方式:基于git restore\text{git restore}git restore命令

我們可以用 git restore\text{git restore}git restore 命令來丟棄 f.txt\text{f.txt}f.txt已暫存 的改動 + 尚未暫存 的改動

git restore --staged --worktree f.txt

執(zhí)行該命令后,我們再用 git status\text{git status}git status 命令和 cat f.txt\text{cat f.txt}cat f.txt 命令驗證一下 ??

從紅色框的內(nèi)容可以看出,f.txt\text{f.txt}f.txt 的變化符合預(yù)期。

第二種方式:基于git checkout\text{git checkout}git checkout命令

我們也可以用 git checkout\text{git checkout}git checkout 命令來丟棄 f.txt\text{f.txt}f.txt已暫存 的改動 + 尚未暫存 的改動

git checkout HEAD f.txt

執(zhí)行該命令后,我們再用 git status\text{git status}git status 命令和 cat f.txt\text{cat f.txt}cat f.txt 命令驗證一下 ??

從紅色框的內(nèi)容可以看出,f.txt\text{f.txt}f.txt 的變化符合預(yù)期。

參考資料

Git Cheat Sheet

下圖中的內(nèi)容與本文有關(guān)

git restore 命令的文檔

下圖紅色框中的內(nèi)容和本文有關(guān)

git checkout 命令的文檔

下圖紅色框中的內(nèi)容和本文有關(guān)

以上就是Git丟棄對一個文件的改動的方法詳解的詳細內(nèi)容,更多關(guān)于Git丟棄文件改動的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 搭建websocket消息推送服務(wù),必須要考慮的幾個問題

    搭建websocket消息推送服務(wù),必須要考慮的幾個問題

    面對各種新場景對websocket功能和性能越來越高的需求,不同的團隊有不同的選擇,下面給大家分享構(gòu)建websocket服務(wù)時必須要考慮的一些技術(shù)特性以及能顯著提高用戶體驗的功能,感興趣的朋友跟隨小編一起看看吧
    2020-04-04
  • 關(guān)于base64編碼的原理及實現(xiàn)方法分享

    關(guān)于base64編碼的原理及實現(xiàn)方法分享

    我們的圖片大部分都是可以轉(zhuǎn)換成base64編碼的data:image。 這個在將canvas保存為img的時候尤其有用
    2012-03-03
  • sqoop如何指定pg庫的模式(方法詳解)

    sqoop如何指定pg庫的模式(方法詳解)

    sqoop是一個用來將hadoop中hdfs和關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)相互遷移的工具,可以將一個關(guān)系型數(shù)據(jù)庫(mysql、oracle等)中的數(shù)據(jù)導(dǎo)入到hadoop的hdfs中,也可以將hdfs的數(shù)據(jù)導(dǎo)入到關(guān)系型數(shù)據(jù)庫中,本文給大家介紹sqoop如何指定pg庫的模式,一起看看吧
    2022-01-01
  • http 200、301、304等狀態(tài)碼詳解

    http 200、301、304等狀態(tài)碼詳解

    在利用httpwatch進行抓包分析時,我們經(jīng)常會看到200、301、304這幾個狀態(tài)碼。具本三者是什么意思呢?這里腳本之家小編就為大家介紹一下
    2017-07-07
  • git遠程操作異常:correct access rights問題及解決

    git遠程操作異常:correct access rights問題及解決

    這篇文章主要介紹了git遠程操作異常:correct access rights問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • vscode使用restClient實現(xiàn)各種http請求的操作方法

    vscode使用restClient實現(xiàn)各種http請求的操作方法

    這篇文章主要介紹了vscode使用restClient實現(xiàn)各種http請求的操作方法,定義變量以及使用環(huán)境變量和返回數(shù)據(jù)作為變量的操作代碼,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • 詳解Git?的?rebase?命令使用方法

    詳解Git?的?rebase?命令使用方法

    這篇文章主要介紹了Git?的?rebase?命令使用方法,接下來,我們使用rebase命令,其命令一般形式為git?rebase?feature,即表示在?master?分支上執(zhí)行rebase命令,將?feature?分支的代碼合并到?master?分支,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • VS2019無法啟動程序(系統(tǒng)找不到指定文件)解決辦法

    VS2019無法啟動程序(系統(tǒng)找不到指定文件)解決辦法

    這篇文章主要介紹了VS2019無法啟動程序(系統(tǒng)找不到指定文件)解決辦法,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 用戶權(quán)限管理設(shè)計[圖文說明]

    用戶權(quán)限管理設(shè)計[圖文說明]

    用戶管理權(quán)限設(shè)計一直是大家討論的熱點,因為幾乎涉及到每一個開發(fā)的業(yè)務(wù)系統(tǒng)。我找了很多很多的資料,大家的核心基本上都是一樣的:基于角色管理. 用戶,角色,模塊,權(quán)限的相互組合,就可以形成一個強大的權(quán)限管理系統(tǒng)。
    2008-12-12
  • 一文詳解Git中分支本地和遠程刪除的方法

    一文詳解Git中分支本地和遠程刪除的方法

    在使用 Git 進行版本控制的過程中,我們會創(chuàng)建多個分支來進行不同功能的開發(fā),這就容易涉及到如何正確地刪除本地分支和遠程分支,下面我們就來看看相關(guān)的實現(xiàn)方法吧
    2025-06-06

最新評論

台中县| 武定县| 景德镇市| 沙河市| 许昌县| 桂林市| 彩票| 湟源县| 安西县| 司法| 曲麻莱县| 常山县| 翁牛特旗| 武夷山市| 盘锦市| 陵川县| 山阳县| 于田县| 广灵县| 万山特区| 咸丰县| 黎川县| 于都县| 秦安县| 南召县| 安西县| 天长市| 宣化县| 金湖县| 青河县| 和平县| 库尔勒市| 安化县| 阿拉尔市| 长岭县| 东至县| 蒲城县| 庆元县| 安福县| 姚安县| 工布江达县|