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

Git丟棄對(duì)一個(gè)文件的改動(dòng)的方法詳解

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

背景

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

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

本文會(huì)對(duì)這兩種情況分別進(jìn)行介紹

要點(diǎn)

僅丟棄尚未暫存的改動(dòng)

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

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

注意事項(xiàng)

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

丟棄 已暫存 的改動(dòng) + 尚未暫存 的改動(dòng)

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

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

注意事項(xiàng)

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

正文

示例

準(zhǔn)備工作

請(qǐng)將以下代碼保存為 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í)行下方的命令就可以運(yùn)行 main.sh ??

bash main.sh

運(yùn)行完 main.sh 之后,當(dāng)前目錄中會(huì)多出一個(gè) temp 目錄。在當(dāng)前目錄執(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 中既有 已暫存 的改動(dòng)(如下圖綠色框所示),也有 尚未暫存 的改動(dòng)(如下圖紅色框所示)

各個(gè)狀態(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
當(dāng)前的 f.txt\text{f.txt}f.txtContent committed
Staged content in f.txt
Content to be staged ...

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

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

我們分別來看

情形一:僅丟棄尚未暫存的改動(dòng)

請(qǐng)注意:尚未暫存 的改動(dòng)被丟棄之后就找不回來了

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

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

git restore f.txt

執(zhí)行該命令后,我們?cè)儆?git status\text{git status}git status 命令和 cat f.txt\text{cat f.txt}cat f.txt 命令驗(yàn)證一下

從紅色框的內(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 中尚未暫存的改動(dòng)

git checkout f.txt

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

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

情形二:丟棄 已暫存 與 尚未暫存 的改動(dòng)

請(qǐng)注意:已暫存/尚未暫存 的改動(dòng)被丟棄之后就找不回來了

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

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

git restore --staged --worktree f.txt

執(zhí)行該命令后,我們?cè)儆?git status\text{git status}git status 命令和 cat f.txt\text{cat f.txt}cat f.txt 命令驗(yàn)證一下 ??

從紅色框的內(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已暫存 的改動(dòng) + 尚未暫存 的改動(dòng)

git checkout HEAD f.txt

執(zhí)行該命令后,我們?cè)儆?git status\text{git status}git status 命令和 cat f.txt\text{cat f.txt}cat f.txt 命令驗(yàn)證一下 ??

從紅色框的內(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丟棄對(duì)一個(gè)文件的改動(dòng)的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Git丟棄文件改動(dòng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

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

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

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

    sqoop是一個(gè)用來將hadoop中hdfs和關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)相互遷移的工具,可以將一個(gè)關(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ìn)行抓包分析時(shí),我們經(jīng)常會(huì)看到200、301、304這幾個(gè)狀態(tài)碼。具本三者是什么意思呢?這里腳本之家小編就為大家介紹一下
    2017-07-07
  • git遠(yuǎn)程操作異常:correct access rights問題及解決

    git遠(yuǎn)程操作異常:correct access rights問題及解決

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

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

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

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

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

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

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

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

    用戶管理權(quán)限設(shè)計(jì)一直是大家討論的熱點(diǎn),因?yàn)閹缀跎婕暗矫恳粋€(gè)開發(fā)的業(yè)務(wù)系統(tǒng)。我找了很多很多的資料,大家的核心基本上都是一樣的:基于角色管理. 用戶,角色,模塊,權(quán)限的相互組合,就可以形成一個(gè)強(qiáng)大的權(quán)限管理系統(tǒng)。
    2008-12-12
  • 一文詳解Git中分支本地和遠(yuǎn)程刪除的方法

    一文詳解Git中分支本地和遠(yuǎn)程刪除的方法

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

最新評(píng)論

准格尔旗| 平武县| 淮南市| 道孚县| 景宁| 迁西县| 广宗县| 汽车| 郎溪县| 阿拉尔市| 阿拉善盟| 张家口市| 赞皇县| 包头市| 谢通门县| 板桥市| 芦溪县| 阿图什市| 镇安县| 德化县| SHOW| 扶沟县| 博兴县| 紫阳县| 辽阳市| 鹤峰县| 南华县| 任丘市| 天全县| 河北区| 加查县| 微山县| 正蓝旗| 滦南县| 平遥县| 姚安县| 福泉市| 靖安县| 遂昌县| 光泽县| 建水县|