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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

撤销操作 —— Git 学习笔记 12

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 撤销操作 —— Git 学习笔记 12 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

撤銷操作

寫在前面:有些撤消操作是不可逆的。 這是在使用 Git 的過程中,會因為操作失誤而導致之前的工作丟失的少有的幾個地方之一。

修改最新提交

有時候我們提交完了才發現漏掉了幾個文件沒有添加,或者提交信息寫錯了。 此時,可以運行帶有 --amend 選
項的提交命令嘗試重新提交:

$ git commit --amend

如果自上次提交以來你還未做任何修改(例如,在上次提交后馬上執行此命令),那么快照會保持不變,而你所修改的只是提交信息。文本編輯器啟動后,可以看到之前的提交信息。 編輯后保存會覆蓋原來的提交信息。

如果你忘了提交一些文件,那么把這些文件加入暫存區后,這個命令會將暫存區中的文件提交。

例如第一次提交:

git commit -m 'initial commit'

這時候發現forgotten_file這個文件沒有暫存,按理說應該在第一次提交。可以這樣操作:

$ git add forgotten_file $ git commit --amend

最終你只會有一個提交,第二次提交將代替第一次提交的結果。

咱們實操一下。

$ git status On branch master Changes to be committed:(use "git reset HEAD <file>..." to unstage)new file: bar.cUntracked files:(use "git add <file>..." to include in what will be committed)hello.c

按理說應該把 hello.c 也加入索引,但是給忘了:

$ git commit -m "abcdefg" [master 1380bcd] abcdefg1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 bar.c

為了補救,可以運行:

$ git add hello.c$ git commit --amend

這時候文本編輯器會啟動,可以看到之前的提交信息。 編輯后(比如我在后面添加了幾個加號)保存,退出文本編輯器。這時候命令行顯示:

[master 8f19240] abcdefg+++Date: Fri Sep 7 21:08:07 2018 +08002 files changed, 0 insertions(+), 0 deletions(-)create mode 100644 bar.ccreate mode 100644 hello.c

可以看到,后面的這次提交和之前的提交合并了,最終只有一次提交。

實際上,不管最新提交如何,你都可以編輯文件,再更新索引(比如git add或者git rm),最后發出git commit --amend來修正最新提交。

用圖來說明就是:

取消暫存的文件

如果誤將某個文件暫存了,可以用

git reset HEAD <file>

舉個例子。

$ git add * $ git status On branch master Changes to be committed:(use "git reset HEAD <file>..." to unstage)renamed: README.md -> READMEmodified: CONTRIBUTING.md

實際上你不想暫存 CONTRIBUTING.md,那么可以用

$ git reset HEAD CONTRIBUTING.md

執行后會顯示:

Unstaged changes after reset: M CONTRIBUTING.md

這時候你再查看一下:

$ git status On branch master Changes to be committed:(use "git reset HEAD <file>..." to unstage)renamed: README.md -> README Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified: CONTRIBUTING.md

CONTRIBUTING.md 文件已經是修改未暫存的狀態了。

如果想知道這個命令的細節,可以參考我的博文 git reset 命令詳解(二)

提示:雖然在調用時加上 --hard 選項可以讓 git reset 成為一個危險的命令(可能導致工作目錄中所有當前進度丟失!),但本例中工作目錄中的文件并不會被修改。不加選項地調用 git reset 并不危險 —— 它只會修改暫存區。

撤消對文件的修改

如果你不想保留對 CONTRIBUTING.md 文件的修改怎么辦? 你該如何將它還原成上次提交時的樣子(或者剛克隆完的樣子)? 幸運的是,git status 告訴了我們應該如何做。 在上文的例子中,未暫存區域是這樣:

Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified: CONTRIBUTING.md

它非常清楚地告訴了你如何撤消之前所做的修改。 讓我們來按照提示執行:

$ git checkout -- CONTRIBUTING.md $ git status On branch master Changes to be committed:(use "git reset HEAD <file>..." to unstage)renamed: README.md -> README

可以看到那些修改已經被撤消了, CONTRIBUTING.md 確實回到了上次提交時的樣子。

注意:你需要知道 git checkout -- [file] 是一個危險的命令, 它就像是 git reset -- hard[branch] file,不僅用某次提交中的那個文件來更新索引,同時也會覆蓋工作目錄中對應的文件 —— 這樣對工作目錄并不安全!

寫在最后:在 Git 中任何 “已提交” 的東西幾乎總是可以恢復的。甚至那些被刪除的分支中的提交或使用 –amend 選項覆蓋的提交也可以恢復。然而,任何你“未提交”的東西丟失后很可能再也找不回來。




參考資料

【1】《Pro Git》(Scott Chacon, Ben Straub Version 2.1.14, 2018-05-19)

【2】《Git 版本控制管理(第2版)》,人民郵電出版社

總結

以上是生活随笔為你收集整理的撤销操作 —— Git 学习笔记 12的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99视频精品免费 | 日韩视频一区 | 天天射夜夜骑 | 91网站视频在线观看 | 成人你懂的 | 国产91av视频 | 黄色免费91 | 一级免费观看 | 亚洲一本之道 | 日日干夜夜爱 | 色哟哟欧美精品 | 三级理论电影 | 精品人妻一区二区三区三区四区 | 日韩不卡一二区 | 亚洲精品在线观看网站 | 中国免费毛片 | 成av人在线观看 | 97视频播放 | 一级 黄 色 片69 | 福利免费在线观看 | 午夜国产在线观看 | 中文字幕 国产精品 | 久草综合在线视频 | 成年视频在线观看 | 俺来也在线视频 | 久久精品视频8 | 成人观看视频 | 麻豆国产尤物av尤物在线观看 | 亚洲精品乱码久久久久久不卡 | 国产精品正在播放 | 亚洲精品区 | 大香伊人中文字幕精品 | 日韩精品免费一区二区三区 | 久久国产精品视频 | 99久久久久无码国产精品 | 亚洲综合在线第一页 | 久久艹在线 | 亚洲小视频在线播放 | 黄色网页免费在线观看 | 免费国产一区二区 | 成人h动漫精品一区二区无码 | 高中男男gay互囗交观看 | 亚洲综合第一 | 穿扒开跪着折磨屁股视频 | 中文字幕第一 | 日本一二三区在线视频 | 狠狠操网 | 精品动漫一区二区 | 国产视频综合在线 | 免费观看理伦片在线播放视频软件 | 五月激情天| 日韩亚洲欧美一区二区三区 | 超碰在线网站 | 在线观看三级网站 | 国产精品国产三级国产普通话蜜臀 | 大奶子网站 | 古装做爰无遮挡三级视频 | 成人亚洲玉足脚交系列 | 日日日夜夜操 | 亚洲图片小说视频 | 91成人国产综合久久精品 | 日韩18p | 毛片看看 | 欧美特级a| 绿帽av| 日韩欧美在线视频播放 | 东方av正在进入 | 四虎成人影视 | 久久久在线观看 | 天狂传说之巴啦啦小魔仙 | 最好看的日本字幕mv视频大全 | 一区二区三区四区在线播放 | 伊人888| 好吊色综合 | 国产一区二区三区免费视频 | 99ri在线| www.四虎在线观看 | kk视频在线观看 | 亚洲av熟女高潮一区二区 | 丰满人妻一区二区三区大胸 | 又爽又黄视频 | 偷自在线 | 国产jjizz一区二区三区视频 | 成年免费视频黄网站在线观看 | 四虎国产成人永久精品免费 | 九九热视频在线 | 日韩激情av | 在线观看免费黄网站 | 欧美做爰xxxⅹ性欧美大片 | 亚洲一二区视频 | 成年人在线观看 | 日韩电影网址 | 天天干天天操天天摸 | 美国性生活大片 | 国产二区三区 | 经典三级在线视频 | 亚洲色图28p | www.youjizz.com视频 | 久久国产乱 |