******************************
分支游標master
******************************
引用 refs/heads/master 在有新的提交發生的時候,指向新的提交。
(1) 將master游標重置到舊的提交上(注意:使用了--hard 引數,會破壞工作區未提交的改動)
$ git reset --hard head^
(2) 重置命令不僅可以重置到前一次提交,而且還可以使用提交id重置到任何一次提交
git reset --hard 9e8a761
使用重置命令會丟棄歷史,即曾經的修改會消失。
*************************====
用reflog 挽救錯誤的重置
*************************====
(1) 檢視master分支的日誌檔案
$ tail -5 .git/logs/refs/heads/master
(2) 使用git reflog 命令的子命令可以顯示此檔案的內容
$ git reflog show master | head -5
(3) 重置 master 為兩次改變之前的值
$ git reset --hard master@
(4) 使用--hard引數 $ git reset --hard
替換引用的指向:引用指向新的提交id
替換暫存區:暫存區的內容和引用指向的目錄樹一致
替換工作區:工作區的內容變的和暫存區一致,也和head所指向的目錄樹內容相同
(5) git reset --soft
只更改引用的指向,不改變工作區和暫存區
(6) 使用引數 --mixed 或不使用引數(預設為--mixed)
更改引用的指向及重置暫存區,不改變工作區
(7) git reset
使用head指向的目錄樹重置暫存區,但是不更改工作區
(8) git reset head
使用head指向的目錄樹重置暫存區,但是不更改工作區
(9) git reset -- filename
僅將檔案filename的改動撤出暫存區,其它檔案不變
(10)git reset head filename
僅將檔案filename的改動撤出暫存區,其它檔案不變
(11)git reset head^
工作區不改變,但是暫存區會回退到上一次提交之前,引用也會回退一次
(12)git reset --mixed head^
工作區不改變,但是暫存區會回退到上一次提交之前,引用也會回退一次
(13)git reset --hard head^
徹底撤銷最近的提交。引用回退到上一次,而且工作區和暫存區都會回退到上一次提交的狀態。
自上一次以來的提交丟失。
git 重置檔案
一.撤銷操作 1.未提交到暫存區 2.檔案已提交到暫存區,但未提交到版本庫 二.刪除操作 1.未提交到暫存區 2.同時刪除暫訪問和工作區 或者直接用 git rm f index.html3.刪除暫存區,不刪除工作區 git rm cached iindex.html三.恢復檔案 可以利用git l...
Git 工具之重置解密 7 7
工作流程 參考資料 目錄在繼續了解更專業的工具前,我們先討論一下 reset 與 checkout。在你初次遇到的 git 命令中,這兩個是最讓人困惑的。它們能做很多事情,所以看起來我們很難真正地理解並恰當地運用它們。針對這一點,我們先來做乙個簡單的比喻。理解 reset 和 checkout 的最...
git學習之git命令
git cmd windows風格的命令列 git gui 圖形介面的git,不建議初學者使用,盡量先熟悉常用命令 一般來說都是用第乙個,需要用到一些linux命令 常見的linux命令 1 cd 改變目錄。2 cd 回退到上乙個目錄,直接cd進入預設目錄 3 pwd 顯示當前所在的目錄路徑。4 l...