Git版本管理 reset

2021-08-10 16:23:41 字數 2149 閱讀 4547

一、修改已 commit 的版本

檢視資料夾的資訊

$ git log

--oneline

#輸出b17fed6 change 2

9be868c change 1

e44c7f7 creat demo.txt

有時候我們總會忘了什麼, 比如已經提交了 commit 卻發現在這個 commit 中忘了附上另乙個檔案. 接下來我們模擬這種情況. 上節內容中, 我們最後乙個 commit 是 change 2, 我們將要新增另外乙個檔案, 將這個修改也 commit 進 change 2. 所以把 demo2.txt 變成 staged, 然後使用 –amend 將這次改變合併到之前的 change 2 中.

$ git add demo2.txt 

$ git commit --amend --no-edit # "--no-edit": 不編輯, 直接合併到上乙個 commit

$ git log --oneline # "--oneline": 每個 commit 內容顯示在一行

二、reset 回到從前

1、回到add 之前

$ git status -s # "-s": status 的縮寫模式

$ git reset demo.txt

2、回到 commit 之前

# 不管我們之前有沒有做了一些 add 工作, 這一步讓我們回到 上一次的 commit

$ git reset --hard head

# 輸出

head is now at 904e1ba change 2

-----------------------

# 看看所有的log

$ git log --oneline

# 輸出

904e1ba change 2

c6762a1 change 1

13be9a7 create demo.txt

-----------------------

# 回到 c10ea64 change 1

# 方式1: "head^"

$ git reset --hard head^

# 方式2: "commit id"

$ git reset --hard c6762a1

-----------------------

# 看看現在的 log

$ git log --oneline

# 輸出

3、 checkout 回到從前(單個檔案)

$ git log --oneline

# 輸出

904e1ba change 2

c6762a1 change 1

13be9a7 create demo.txt

---------------------

$ git checkout c6762a1 -- demo.txt

三、回到將來

$ git reflog

# 輸出

c6762a1 head@: reset: moving to c6762a1

904e1ba head@: commit (amend): change 2

0107760 head@: commit: change 2

c6762a1 head@: commit: change 1

13be9a7 head@: commit (initial): create demo.txt

$ git reset --hard 904e1ba

$ git log --oneline

# 輸出

904e1ba change 2

c6762a1 change 1

13be9a7 create demo.txt

版本管理 Git

4.一直回車,直到生成公鑰私鑰。預設位址c users linxz.ssh 5.在github上的選擇setting ssh and gpg keys,新增新的ssh key new ssh key tittle隨便寫,key是在c users lianjiu.ssh中id rsa.pub 公鑰 6...

Git 版本管理

為什麼要用分支提交?pull 取回分支再與當前分支合併,這等同於先做git fetch,再做git merge。git pull 遠端主機名 遠端分支名 本地分支名 git pull的問題是它把過程的細節都隱藏了起來,以至於你不用去了解git中各種型別分支的區別和使用方法。當然,多數時候這是沒問題的...

Git 管理版本

1 我們對test目錄下的readme.txt檔案新增新的內容,然後通過git status檢視當前test倉庫的狀態。注意一定要在test目錄下,執行該命令。可以看到readme.txt檔案已經被修改了,但是並沒有告訴我們具體的修改。可以通過git diff命令來檢視。通過git add file...