Git學習之Git 重置

2021-08-27 16:34:41 字數 1431 閱讀 8394

******************************

分支游標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...