git 回滾到指定版本並推送到遠程分支


1. 前言

   有些時候我們提交的遠程代碼(最新的代碼)也許還不如上次寫的好,於是我們就想回退到以前的版本。那么怎么回退呢
   對了,回退之前還是先備份下。。

2. 版本回退

      git log //查看提交的歷史
      git log --pretty=oneline //如果嫌上面的輸出信息過多可以使用這條(只輸出版本號)
      git reset --hard HEAD^ //回到上個版本,git reset --hard HEAD^^是上上個版本
  • 1
  • 2
  • 3

好了現在你已經回到上個版本了

3. 提交到遠程倉庫

接下來如果你直接提交會發現提交不了, 說遠端做了更改需要先pull一下, 如果pull那就又回到最新版本了,相當於沒回退。
  思路:我們可以新建一個分支temp,然后把回退后的代碼提交到temp分支上暫存,然后刪除master主分支,新建一個master分支,提交現有代碼到master上。

/*1.新建分支*/
git checkout -b temp              //新建分支並切換到temp分支
git push origin temp:temp         //將代碼push到temp分支
/*2.刪除主分支*/
git push origin --delete master   //刪除遠端主分支
git branch -d master              //刪除本地主分支
/*3.新建主分支*/
git checkout -b master            //新建主分支並切換到主分支
git push origin master            //提交主分支
/*4.刪除暫存分支*/
git branch -d temp
git push origin --delete temp

注意:在github下,操作(刪除或重建分支)需要在github網頁上切換當前分支,如你要刪除master,就要將分支切換到建的temp分支上。(可以理解為自己不能刪除自己)
(項目主頁->Settings即可看到)

思路一

備注說明

-- 本地分支回滾到指定版本
git reset --hard <commit ID號>
-- 強制推送到遠程分支
git push -f origin <branch name>

思路二

實際開發過程中,有時候我們會發現歷史版本是對的,當前版本和遠程分支是錯的情況。我們這時候需要回滾到歷史版本,並且讓遠程分支也回退到歷史版本,下面來說一種解決辦法。

1,先把本地的分支回退到歷史版本:
1.1 使用 命令查看歷史版本
git log --pretty=oneline
1.2 使用下面命令回滾,我們這里回滾到上一個提交版本

git reset --hard HEAD^
注意:上一個版本就是HEAD,上上一個版本就是HEAD,當然往上100個版本寫100個比較容易數不過來,所以寫成HEAD~100

2,把當前分支push到遠程倉庫並且讓遠程倉庫和當前分支保持一致:
2.1 使用命令,這里假定我們當前的分支名為master

GIt 提供了一個命令 git reflog 來記錄本機電腦的每一次命令。
$ git reflog

通過 id ,來回退曾經的版本。
$ git reset --hard HEAD^
借鑒
https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192

https://www.pianshen.com/article/3506254578/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM