1. 程式人生 > >git本地版本回退與遠端版本回退(回滾)

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

預備知識:

一個commit對應這一個版本,有一個commit id,40位的16進位制數字,通過SHA1計算得到,不同的檔案計算出來的SHA1值不同(有很小的機率相同,可忽略),這樣每一個提交都有其獨特的id。每提交一個新版本,實際上Git就會把它們自動串成一條時間線。
在Git中,HEAD表示當前版本,也就是e620a6ff0940a8dff…,HEAD^表示上一個版本,HEAD^^表示上上一個版本,往上100個版本可以寫成HEAD加連續100個^,也可以寫成:HEAD~100。

git log:該命令顯示從最近到最遠的提交日誌。

commit e620a6ff0940a8dff91e0d252f30e4d138ec37be
Author:
TangShengqin <15527733782@163.com> Date: Wed Jan 3 10:35:44 2018 +0800 練習版本回退,假設這是版本3 commit 33342d9870f104719d351539a15e74a1382407ea Author: TangShengqin <15527733782@163.com> Date: Wed Jan 3 10:34:03 2018 +0800 練習版本回退,假設這是版本2 ......

git log - -pretty=oneline:將只會顯示提交的commit id號和對應的註釋。(這裡是兩個-,Markdown顯示兩個-為一個-)

e620a6ff0940a8dff91e0d252f30e4d138ec37be 練習版本回退,假設這是版本3
33342d9870f104719d351539a15e74a1382407ea 練習版本回退,假設這是版本2
......

git reset –hard id 之前的版本日誌資訊:

git log --pretty=oneline
e620a6ff0940a8dff91e0d252f30e4d138ec37be 練習版本回退,假設這是版本3
33342d9870f104719d351539a15e74a1382407ea 練習版本回退,假設這是版本2

git reset –hard commit_id 或則是 git reset –hard HEAD^

git reset --hard HEAD^   # hard選項,表示徹底將工作區、暫存區和版本庫記錄恢復到指定的版本庫

使用git reset –hard 進行版本回退之後,在本地檢視README.md,裡面已經變為版本2對應的內容了。

如果你在本地做了錯誤提交,那麼回退版本的方法很簡單
1.先用下面命令找到要回退的版本的commit id:

git reflog 

2.接著回退版本:

git reset --hard a7e1d279

a7e1d279就是你要回退的版本的commit id的前面幾位。

遠端分支版本回退的方法
如果你的錯誤提交已經推送到自己的遠端分支了,那麼就需要回滾遠端分支了。
1.首先要回退本地分支:

git reflog
git reset --hard Obfafd

2.緊接著強制推送到遠端分支:

git push -f origin master ## 這裡假設只有一個master分支

origin就是一個名字,它是在你clone一個託管在Github上程式碼庫時,git為你預設建立的指向這個遠端程式碼庫的標籤,origin指向的是repository,master只是這個repository中預設建立的第一個branch。當你git push的時候因為origin和master都是預設建立的,所以可以這樣省略。
關於origin意義,知乎上的討論
注意:本地分支回滾後,版本將落後遠端分支,必須使用強制推送覆蓋遠端分支,否則無法推送到遠端分支

相關推薦

git本地版本退遠端版本退()

預備知識: 一個commit對應這一個版本,有一個commit id,40位的16進位制數字,通過SHA1計算得到,不同的檔案計算出來的SHA1值不同(有很小的機率相同,可忽略),這樣每一個提交都有其獨特的id。每提交一個新版本,實際上Git就會把它們自

git本地檔案上傳到遠端倉庫時,本地專案遠成倉庫不是同一個專案的BUG

原文地址 http://blog.csdn.net/lindexi_gd/article/details/52554159 本文講的是把Git在最新2.9.2,合併pull兩個不同的專案,出現的問題如何去解決fatal: refusing to merge unre

Spark本地開發環境搭建遠端debug設定

快速看完《Spark大資料處理 技術、應用與效能優化》前四章後,對Spark有了一個初步的瞭解,終於踏出了第一步,現在需要在Spark叢集中做些測試例子,熟悉一下開發環境和開發的流程。本文主要總結了如何在本地使用Maven搭建開發環境以及如何進行遠端debug。由於採用的Spark是

git本地倉庫關聯多個遠端倉庫

直接貼程式碼: [email protected] MINGW32 ~/IdeaProjects/myBoot (master) $ git remote add originlocal h

Git本地關聯到github的遠端

從本地關聯到一個git倉庫,也就是本地有個專案資料夾,讓他跟一個在github的倉庫關聯 echo "# test2" >> README.md git init git add README.md git commit -m "first commit" gi

git 本地專案推送到遠端倉庫(或者倉庫分支)Window版-01

初始化專案git init 確保安裝了git 在專案根目錄下進入 git命令列 使用git init 命令 使用 git add .命令 使用 git commit

Git本地倉庫連線Github/GitLab遠端倉庫

重點放在前面 上傳的Github/GitLab賬戶郵箱一定要和本地配置的郵箱相同,也就是說如果郵箱不相同,每次連線不同的Github/GitLab賬戶時,本地需要重新配置郵箱,但是ssh不用重新生成,測試過了。GitLab連線和Github相同,所以會一邊就好了

Git本地專案推送到遠端倉庫

有時候,我們需要把本地的專案推送到遠端Git倉庫(GitHub或者自己搭建的GitLab)中,可以通過以下幾個步驟來實現: 1、新建遠端倉庫 我們需要在遠端git服務端新建一個Git倉庫來儲存管理本地的專案,有兩種方法,比較簡單,如下: 1. 通過G

git本地專案推動到gitlab遠端伺服器

本地已經有了現成的專案,需要將此專案push到遠端gitlab的伺服器上。具體操作步驟如下: 1.在gitlab上建立好對應的project 首先,我們現在gitlab伺服器上建立[email protected]:xxx/xxx.git專案,xx

何為集中式版本控制系統分散式版本控制系統?

什麼是集中式版本控制系統與分散式版本控制系統?    集中式版本控制系統:版本庫是集中放在中央伺服器的,當我們實際工作的時候,用的都是自己的電腦,所以首先要連線中央伺服器,從那裡得到最新的版本,然後編寫

Git本地專案配置多個遠端倉庫

目錄 Git一個專案多個遠端倉庫的使用 本地專案配置多個遠端倉庫 現在專案中有一個需求就是一個專案需要推送到多個遠端倉庫。 首先在工作目錄開啟git-bash 然後輸入git rem

git 遠端版本退

分支 記錄 ... log ima 圖片 顯示 某個版本 test 情景:本地更改推送遠端後,想要回退到自己推送之前的某個版本。 比如想回退的分支為 test 分支。 風險:遠端回退到某一版本後,之後的所有推送都沒了(對應的日誌記錄也沒了)。如果是團隊開發,不僅自己推送的沒

git版本退撤銷操作

想要 就是 比較 提交 com commit file 撤銷 IT 場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。 場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步

idea中git遠端版本退

  工作中遇到git遠端倉庫需要回退到歷史版本的問題,根據網上的搜尋結果結合自己的實踐,整理了如下步驟: 1. 在“Show History”中找到當前版本(取名:newVersion)和想要回退到的版本(oldVersion)  2. 選擇newVersion和ol

git 命令 git強制 遠端倉庫 退 到某個版本

git強制 遠端倉庫 回退 到某個版本 強制撤銷push到遠端倉庫的程式碼的提交: git reset --hard 版本號回(退到想要去的版本,hard是不留任何的痕跡,soft是留痕跡,mixed也是留痕跡但是停留在當前的改變的介面而不像soft一樣是返

idea中git退遠端版本

 工作中遇到,程式碼已提交併已提交到遠端倉庫,現需要回退到之前版本,記錄如下: 記錄當前版本的版本號和需要回退到版本的版本號。 current version:85e7f32dfe421c5892a4e2f38e7b542d1eacdf8c old version: 4d87

Git快速入門-git stash 暫存變更,git reset 撤銷commit,git revert 退遠端版本

注:本文基於git version 2.13.5 版本進行演示 1. 概述 Git入門系列第四篇,基於場景,介紹一些非常實用的Git命令,也許這些命令會讓你產生“還有這種操作”的感嘆。例如如何把修改暫存起來,留著以後使用?想撤銷已提交(com

Git使用(4)修改提交結果、版本退衝突解決

1.檢視版本之間差異 1.1檢視有哪些資料夾/檔案有差異 git diff 顯示工作目錄與暫存區檔案之間的差異 git diff --cached 顯示暫存區與git倉庫之間的差異 git diff HEAD 顯示工作目錄與git倉庫之間的差異

遠端版本分支版本退

使用場景:錯誤的提交到遠端分支,想回到遠端錯誤之前的版本 ps:需要在自己本地操作 1.git clone 遠端分支master 2.git checkout 提交錯誤的分支 3.git reflog 4.根據操作日誌檢視想要回退的版本號(或遠端提交記錄裡的版本號) 5.git

git 遠端版本合併到本地錯誤

git pull 提示錯誤,Your local changes to the following files would be overwritten by merge Please commit y