1. 程式人生 > >git-撤銷操作

git-撤銷操作

撤消操作

任何時候,你都有可能需要撤消剛才所做的某些操作。接下來,我們會介紹一些基本的撤消操作相關的命令。請注意,有些撤銷操作是不可逆的,所以請務必謹慎小心,一旦失誤,就有可能丟失部分工作成果。


修改最後一次提交
有時候我們提交完了才發現漏掉了幾個檔案沒有加,或者提交資訊寫錯了。想要撤消剛才的提交操作,可以使用 --amend 選項重新提交:


$ git commit --amend
此命令將使用當前的暫存區域快照提交。如果剛才提交完沒有作任何改動,直接執行此命令的話,相當於有機會重新編輯提交說明,但將要提交的檔案快照和之前的一樣。


啟動文字編輯器後,會看到上次提交時的說明,編輯它確認沒問題後儲存退出,就會使用新的提交說明覆蓋剛才失誤的提交。


如果剛才提交時忘了暫存某些修改,可以先補上暫存操作,然後再執行 --amend 提交:


$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend
上面的三條命令最終只是產生一個提交,第二個提交命令修正了第一個的提交內容。


取消已經暫存的檔案
接下來的兩個小節將演示如何取消暫存區域中的檔案,以及如何取消工作目錄中已修改的檔案。不用擔心,檢視檔案狀態的時候就提示了該如何撤消,所以不需要死記硬背。來看下面的例子,有兩個修改過的檔案,我們想要分開提交,但不小心用 git add . 全加到了暫存區域。該如何撤消暫存其中的一個檔案呢?其實,git status 的命令輸出已經告訴了我們該怎麼做:


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


        modified:   README.txt
        modified:   benchmarks.rb
就在 “Changes to be committed” 下面,括號中有提示,可以使用 git reset HEAD <file>... 的方式取消暫存。好吧,我們來試試取消暫存 benchmarks.rb 檔案:


$ git reset HEAD benchmarks.rb
Unstaged changes after reset:
M       benchmarks.rb
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)


        modified:   README.txt


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:   benchmarks.rb
這條命令看起來有些古怪,先別管,能用就行。現在 benchmarks.rb 檔案又回到了之前已修改未暫存的狀態。


取消對檔案的修改
如果覺得剛才對 benchmarks.rb 的修改完全沒有必要,該如何取消修改,回到之前的狀態(也就是修改之前的版本)呢?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:   benchmarks.rb
在第二個括號中,我們看到了拋棄檔案修改的命令(至少在 Git 1.6.1 以及更高版本中會這樣提示,如果你還在用老版本,我們強烈建議你升級,以獲取最佳的使用者體驗),讓我們試試看:


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


        modified:   README.txt
可以看到,該檔案已經恢復到修改前的版本。你可能已經意識到了,這條命令有些危險,所有對檔案的修改都沒有了,因為我們剛剛把之前版本的檔案複製過來重寫了此檔案。所以在用這條命令前,請務必確定真的不再需要保留剛才的修改。如果只是想回退版本,同時保留剛才的修改以便將來繼續工作,可以用下章介紹的 stashing 和分支來處理,應該會更好些。


記住,任何已經提交到 Git 的都可以被恢復。即便在已經刪除的分支中的提交,或者用 --amend 重新改寫的提交,都可以被恢復(關於資料恢復的內容見第九章)。所以,你可能失去的資料,僅限於沒有提交過的,對 Git 來說它們就像從未存在過一樣。

相關推薦

Git基礎入門(七)Git撤銷操作和遠程倉庫管理

git 操作 基 版本 系統 遠程倉庫撤銷操作:註意:Git的有些撤消操作是不可逆的。 這是在使用Git的過程中,會因為操作失誤而導致之前的工作丟失的少有的幾個地方之一取消暫存的文件git add a.py b.py git status On branch master Changes to

掌握Git撤銷操作,隨心所欲控制文件狀態

load idt 目的 慎用 transform pro git merge 影響 type 本文主要討論和撤銷有關的 git 操作。目的是讓讀者在遇到關於撤銷問題時能夠方便迅速對照執行解決問題,而不用去翻閱參數繁多的 git 使用說明。 一開始你只需了解大致功能即可,不

Git - 撤銷操作

一、撤銷commit get reset — soft HEAD^ 引數說明: —mixed:不刪除工作空間程式碼,撤銷commit 和add,為預設引數,等同於git reset HEAD^—soft: 不刪除工作空間程式碼,撤銷commit,不撤銷add—hard :刪除工作空間程式碼

git-撤銷操作

撤消操作任何時候,你都有可能需要撤消剛才所做的某些操作。接下來,我們會介紹一些基本的撤消操作相關的命令。請注意,有些撤銷操作是不可逆的,所以請務必謹慎小心,一旦失誤,就有可能丟失部分工作成果。修改最後一次提交有時候我們提交完了才發現漏掉了幾個檔案沒有加,或者提交資訊寫錯了。想

Git 撤銷操作

– Start 同步遠端庫到本地 同步遠端到本地需要先同步遠端庫到本地,然後同步本地庫到工作區,這裡沒有暫存區。 git fetch 同步本地庫到工作區 git merge 一步到位:同步遠端到本地庫和工作區 兩步實在是太麻煩了,事實上我們也可以一步到位

git 撤銷操作--git checkout、git reset、git revert、git commit -- amend

git 撤銷操作 一、前言 在使用git過程當中經常會用到撤銷一些已經完成的操作,經常會用到git checkout、git reset、git revert、git commit -- amend。在用法上也有不同之處,簡單的分析下這幾種方法的不同。

git版本回退與撤銷操作

想要 就是 比較 提交 com commit file 撤銷 IT 場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。 場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步

Git撤銷&回滾操作

開發過程中,你肯定會遇到這樣的場景: 場景一: 糟了,我剛把不想要的程式碼,commit到本地倉庫中了,但是還沒有做push操作! 場景二: 徹底完了,剛線上更新的程式碼出現問題了,需要還

GIT——多種情況下的撤銷操作

####撤銷更改 使用checkout out 可以撤銷工作區的修改(修改內容會丟失) 如果沒有執行過git add命令,恢復到上一版本。 如果執行過 git add 命令,則恢復到add之前的狀態。

git 常用的撤銷操作

git 開發時的使用流程,從同事那裡學習的, 第一步,先建立一個新的分支,可以在GITLAB或通過命令git checkout -b newbranch 或通過IDE外掛 第二步,讓專案切換到該分支,然後在這個分支上進行開發 第三個,提交,然後提交MERGE REQUEST,合併到DEVELOP分支

git 撤銷已經push上去的操作

今天 github 上操作遇到了一個很頭疼的問題,在某個檔案中進行了誤操作(有可能是加入了BOM頭),diff 沒看到差異,但是線上就是不正常顯示。修改半天沒用,只要回退版本。 通過 git log 可以檢視近期 commit 的資訊: commit bcdfd65ba

git 提交檔案撤銷操作

1. git add 新增 了多餘檔案 (只是add了,還沒有commit)撤銷步驟:git status 檢視add 的檔案 git reset HEAD XXX/XXX/XXX.java 對某個檔案進行撤銷git reset HEAD 撤銷上次所有的add檔案2. git

Git-撤銷/回滾操作

git結構和各操作之間的關係 WorkDir進行add操作將當前修改同步到 Index,執行commit操作同步到Head,執行push上傳到Server。 撤銷add操作 git reset [HEAD/commitid] 使

git撤銷add操作

如果已經執行了git add dir_name此時需要撤銷 add操作,則需執行如下命令git rm -r dir_name --cached由於目錄已經新增到git 暫存(stage)中了,所以需要加

git-實際操作-add後撤銷-commit後撤銷

工作區、版本庫(暫存區(stage|index)、master)     1、工作區就是我們能夠實際看到的那些檔案的區域     2、版本庫其實是本地版本庫,分為暫存區(stage|index)和本地master分支(由git為我們自動建立)     我們的add操作是將檔

Git撤銷修改和版本回退,等相關操作

撤銷修改 撤銷修改是指將工作區中的修改撤銷。 語法:git checkout 檔名或路徑 # 撤銷工作區中當前目錄中的所有更改 git checkout . # 撤銷工作區中指定檔案的修改 git checkout -- filename git

Git學習(五)----Git工作區&暫存區&版本庫(“三巨頭”)、刪除檔案、撤銷操作

工作區、暫存區(stage)、版本庫工作區:比如我的就是git1。 版本庫:工作區裡有個隱藏的.git資料夾,這個奏是Git的版本庫 暫存區:Git版本庫裡一個很重要的部分。                   以新增檔案或者修改檔案為例: (1)git add就是把“工作

Git應用詳解第二講:Git刪除、修改、撤銷操作

前言 前情提要:Git應用詳解第一講:Git分割槽,配置與日誌 在第一講中我們對Git進行了簡單的入門介紹,相信聰明的你已經瞭解Git的基本使用了。 這一講我們來進一步深入學習Git應用,著重介紹Git的一些常見操作,包括:刪除檔案、比較檔案、撤銷修改、修改註釋與檢視幫助文件。 一、刪除檔案 1.gi

Git 實用操作撤銷 Commit 提交

有的時候,改完程式碼提交 commit 後發現寫得實在太爛了,連自己的都看不下去,與其修改它還不如丟棄重寫。怎麼操作呢? ## 使用 reset 撤銷 如果是最近提交的 commit 要丟棄重寫可以用 `reset` 來操作。比如你剛寫了一個 commit: ![](https://img2020.cn

Git分支操作

多人 master 命名 mas ont 常用 推送 創建分支 branch 分支branch是Git使用中經常用到的,多人寫作開發的利器~ 查看分支 $ git branch #列出本地已有的branch列表 創建分支     創建新分支默認以