git 2 git版本庫回退

2021-09-23 07:53:57 字數 1973 閱讀 4066

修改一下readme.txt檔案

echo git is a powerful version control system > readme.txt  #新增powerful

git status        #檢視git倉庫當前的狀態

上面的輸出表示readme.txt被修改了但是還沒有提交

git diff readme.txt                  #檢視更改資訊

再次提交這個檔案還是兩步:

已經沒有需要提交的修改了

git log              #檢視提交(commit)的歷史記錄

第二次提交顯示在了最前面

git log還可以加引數  --pretty=oneline可以簡化顯示

這個是commit的id,用sha1計算出來的乙個非常大的數字,用十六進製制表示。因為git是分布式的,可能多人在乙個版本庫工作,所以不能用1 2 3 4 5……這樣的數字。

在git中head表示當前版本,是最新的提交。上乙個版本是head^,head^^,head^^^…依次類推。如果太多了,可以用數字表示,向前100個版本就是head~100。

git reset --hard head^   #退回到上乙個版本。

回退後再檢視,readme.txt已經回到上乙個版本了。現在只剩這個版本了。

但是執行了這個命令,有後悔了咋辦。如果視窗還沒有關掉,向上找到上乙個版本的commit_id。

然後執行git reset 命令

git reset --hard e39612d           #前幾位就可以了
readme.txt又回到了second submission 版本了。

這實際上是一種指標操作。

head 最先指向了second submission ,然後回退版本後,又指向了first submission。然後會把工作區的檔案更新了。所以head指向哪個版本號, 當前版本就定為在哪。

如果確實回退到了,first submission,並且關了視窗,不能從視窗拿到commit_id的時候。

可以使用 git reflog 命令。

git回退版本

把檔案從暫存區域或歷史記錄中複製到工作目錄,用來丟棄本地修改。git reset files 用來撤銷最後一次git add files,你也可以用git reset 撤銷所有暫存區域檔案。git reset option commitid 用來撤銷歷史記錄,option選項 soft,hard,m...

git回退版本

有些時候我們提交的遠端 最新的 也許還不如上次寫的好,於是我們就想回退到以前的版本。那麼怎麼回退呢 對了,回退之前還是先備份下。1 2 3 git log 檢視提交的歷史 git log pretty oneline 如果嫌上面的輸出資訊過多可以使用這條 只輸出版本號 git reset hard ...

git 回退版本

git commit amend 提交後的一次補救,比如忘記在上一次提交時提交某些檔案,需要做一些修改後再提交。這個命令就像本次提交覆蓋了上一次提交,在倉庫歷史中不會顯示上一次提交 git reset head 將檔案從暫存區移到工作區,把暫存區的修改回退到工作區 git checkout 檔名 回...