1. 程式人生 > >[Git] 011 checkout 與 reset 命令的補充

[Git] 011 checkout 與 reset 命令的補充

技術分享 txt head info 沒有 有用 src .com not

1. git checkout -- <file> 的示意

技術分享圖片


2. "checkout" 的補充

2.1 git checkout <branch_name>

  • 切換分支時有用,具體見 [Git] 017 加一條分支,享雙倍快樂 的 "2.1"

2.2 git checkout .

  • 將暫存區中的內容盡數回滾給工作區
  • 此命令有危險!
  • 先對 "note_01.txt" 做些改動

技術分享圖片


  • 然後使用 git checkout .

技術分享圖片


分析

  • 僅僅使用 git checkout 是沒有效果的
  • git checkout
    有一個反饋,再次說明“沒有消息就是最好的消息”
  • git checkout . 生效

3. 畫了一張“腦圖”,復習一下 "reset"

技術分享圖片


4. git reset --hard HEAD~ 的示意

技術分享圖片


5. 關於單個文件的回滾

技術分享圖片


分析

  • 工作區與本地倉庫一致
  • 暫存區的 "note_01.txt" 中的內容與本地倉庫的上一個版本的 "note_01.txt" 一致

  • 恢復

技術分享圖片


6. 關於 "--hard"

  • “有無相生,難易相成,長短相形,高下相傾,音聲相和,前後相隨,恒也。”
  • 既然有 "hard",那麽應該也有 "soft"
  • 其實還有一個 "mixed"
參數 釋義
--hard 移動 HEAD,使指向的“快照”用於暫存區
--soft 移動 HEAD 的指向,但不回滾
--mixed 默認值,將“快照”回滾到暫存區

[Git] 011 checkout 與 reset 命令的補充