Git版本回退並強制推送到遠端

2021-09-22 04:08:13 字數 1192 閱讀 9043

本文參考廖雪峰的git教程

前言:本文章解決問題的前提是本人不小心修改了本地**倉庫的最外層目錄許可權,不知道原許可權是什麼,導致本地git提示幾十個檔案被修改過,實際內容並未修改,可能是目錄許可權改變被git識別為改動,解決方案如些。

git log     //git log命令顯示從最近到最遠的提交日誌
如果嫌輸出資訊太多,看得眼花繚亂的,可以試試加上–pretty=oneline引數:

git log --pretty=oneline
首先,git必須知道當前版本是哪個版本,在git中,用head表示當前版本,也就是最新的提交1094adb…(注意我的提交id和你的肯定不一樣),上乙個版本就是head,上上乙個版本就是head

,當然往上100個版本寫100個比較容易數不過來,所以寫成head~100。

git reset --hard head^
檢視操作後版本庫的狀態確認是否回退成功,發現最近的那個版本已經看不到了,表示已回滾:

git log  //此時回退的只是本地倉庫的回退 遠端分支並沒有回退
如果還想再次回去原先最新版本,只要上面的命令列視窗還沒有被關掉,你就可以順著往上找啊找啊,找到那個原來最新版本的commit id是1094adb…,於是就可以指定回到未來的某個版本:

git reset --hard 1094adb..   //版本號沒必要寫全,前幾位就可以了,git會自動去找。當然也不能只寫前一兩位,因為git可能會找到多個版本號,就無法確定是哪乙個了。
在git中,總是有後悔藥可以吃的,git提供了乙個命令git reflog用來記錄你的每一次命令:

git reflog  //列印你記錄你的每一次操作記錄
git reflog 可以檢視所有分支的所有操作記錄(包括(包括commit和reset的操作),包括已經被刪除的commit記錄,git log則不能察看已經刪除了的commit記錄,而且跟進結果可以回退道某乙個修改。

git push -f origin 

(分支名稱); //強行將本地回退後的分支提交到遠端分支;

git fetch --all

git 遠端版本回退

情景 本地更改推送遠端後,想要回退到自己推送之前的某個版本。比如想回退的分支為 test 分支。風險 遠端回退到某一版本後,之後的所有推送都沒了 對應的日誌記錄也沒了 如果是團隊開發,不僅自己推送的沒了,還包括別人的。兩種方法 a 使用命令 1 檢視日誌,複製想要回退的版本號 在專案目錄中,右鍵 g...

Git 遠端倉庫版本回退

多人合作的專案,同事a誤提了錯誤的東西,並把其他同事修改正確的檔案給覆蓋提交了,線上的專案是有問題的。所以需要回退到同事a的誤提交之前的版本。即遠端倉庫版本回退。步驟 1.使用git log命令檢視歷史提交記錄,選擇要回退的版本號,commit後面一串字元,這裡我們選擇回退到commit 8622e...

git本地版本回退與遠端版本回退 回滾

git log 該命令顯示從最近到最遠的提交日誌。commit e620a6ff0940a8dff91e0d252f30e4d138ec37be author tangshengqin 15527733782 163.com date wed jan 3 10 35 44 2018 0800 練習版...