1. 程式人生 > >Git回滾遠端版本

Git回滾遠端版本

“房子是租的 但生活不是”

1.故事的開始

遠端master分支下程式碼被不小心提交了很多垃圾程式碼或專案刪掉,想要回滾到以前的某一版本並刪除commit log。怎麼辦?情景如圖:

1

情景很簡單。老闆上傳了個檔案,我把他刪掉了。有一種辦法,把檔案再push下,但是也不想他看到圖中那comment(ps:這樣我才不會被fire)。實現上面場景的程式碼如下:

  1. vim A.txt
  2. git add .
  3. git commit --"add A.txt"
  4. git push
  5. rm A.txt
  6. git commit --"我刪除了老闆的東西"
  7. git push

————–分割線 ————–

一頭霧水的小白怎麼辦?怎麼辦?怎麼辦?

push到遠端的提交預設是不能修改的,但是一定要修改不是不行:

  1. git push -f

2.解決之道

2.1工作區,暫存區,本地版本庫 & 遠端版本庫

No pic say 個 78。。。

2

》》工作區:就是我們操作的目錄

》》暫存區:操作目錄的快照

》》本地版本庫:Git的精髓,人人都是中央倉庫。也就是Git分散式的好處,自然對比SVN這種集中式

》》遠端版本庫:Github這種中央倉庫,可以達到共享。

常用的操作也如圖所示,不言而喻了。

2.2 實戰解決

Talk is cheap,Show me the code or money~ 程式碼如下:

  1. git log
  2. git reset --soft ${commit-id}
  3. git stash
  4. git push -f

詳解如下:

第1行:git log 檢視提交歷史,然後找到要回滾的版本。歷史如下,

  1. commit 84686b426c3a8a3d569ae56b6788278c10b27e5b
  2. AuthorJeffLi1993 <[email protected].com>
  3. Date:   Fri Apr 19:11:32 2016 +0800
  4.    我刪除了老闆的東西
  5. commit 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
  6. AuthorJeffLi1993 <[email protected].com>
  7. Date:   Fri Apr 19:05:23 2016 +0800
  8.    add A.txt

我們想要回滾到的版本就是:72bd6304c3c6e1cb7034114db1dd1b8376a6283a

第2行:git reset –soft 72bd6304c3c6e1cb7034114db1dd1b8376a6283a

撤銷到某個版本之前,之前的修改退回到暫存區(不懂看漂亮的圖哦~)。soft 和 hard引數的區別就是,hard修改記錄都沒了,soft則會保留修改記錄。

第3行:暫存為了安全起見。

第4行:git push -f

將本地master push 到遠端版本庫中, -f 強制覆蓋

3. 小結

git reset 回滾到某個版本之前
git push -f 強制push覆蓋

複製程式碼

相關推薦

Git遠端版本

“房子是租的 但生活不是” 1.故事的開始 遠端master分支下程式碼被不小心提交了很多垃圾程式碼或專案刪掉,想要回滾到以前的某一版本並刪除commit log。怎麼辦?情景如圖: 情景很簡單。老闆上傳了個檔案,我把他刪掉了。有一種辦法,把檔案再push下,但是也不想他

idea中git退遠端版本

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

git 遠端倉庫(revert、reset、rebase)

使用git管理專案開發的過程中經常會碰到這種情況:某次提交已經push到了遠端倉庫,可是突然意識到“天哪,我怎麼做了這麼蠢的事情”。那麼問題來了,怎麼將遠端程式碼庫回滾呢? 在網上看到大部分人給出的解決方案是先將本地回滾,然後刪除遠端分支,之後再將本地的分支push到遠端倉

git 遠端

回滾分三步: (1)備份你當前的程式碼 庫一份,不是必須的操作,但是提醒要 做的,當然有可以用git branch backup 把當前的版本備份到一個新的分支 (2)git log找到要回滾的版本    (3)git reset --hard 要回滾到的版本號,比如 g

git 到tag版本 並提交遠端倉庫

      最近工作中遇到了git需要回滾的問題,操作了幾次後發現並不是以前用svn那樣的概念,想用本地的倉庫的程式碼 reset 以後 覆蓋是不可行的,經過查了資料和同事的幫忙,終於是可以了,現在把整個操作步驟記錄下來,FYI!       這裡我的tag是   v.1.

git到某個版本操作

單機 技術分享 ast ima logs strong .cn master blog git回滾到某個版本操作: 1.git log //查看指過去的版本 2. git reset --hard 復制上面commit後的字符串到此處 如果只想 回滾單機的,那麽到

git 到任意版本

pan strong commit -h password pty font QQ -- git回滾到任意版本 1.先顯示提交的log $ git log -3 commit 4dc08bb8996a6ee02f Author: Mark <[email protected]&g

【Gitlab】GITmaster分支到指定tag版本 並提交遠程倉庫

git master 回滾【Gitlab】GIT回滾master分支到指定tag版本 並提交遠程倉庫1 查看分支git branch 2 切換到master分支git checkout master 3 查看標簽git tagv1.3.3v1.3.4v1.3.5 4 查看某個標簽的詳情git show v1.

git到之前提交的某個版本

先顯示提交的記錄: git log commit e499aac9257354c54ac2e1ff6a393ac7c8d2f342 Author: xx <[email protected]> ...... 回到指定版本: git reset --har

git分支並在遠端生效

用途:程式碼提交錯誤時返回前次或者前幾次提交的版本 (1)git log/reflog打印出git提交的日誌如下所示 (2)選擇需要回滾的提交記錄,複製提交號 (3)執行回滾命令 git reset --hard 提交號 (4)提交回滾的程式碼 git commit -

git程式碼到指定的版本

git回滾程式碼包丟失的時候你可能會需要將程式碼回滾到指定的版本上線 git可以將程式碼會回滾到指定的提交記錄並切切換到分支上線: 1.clone線上程式碼; 2.新建分支並切換到分支:git checkout  -b backup 3.檢視歷史提交記錄:git log

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

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

GITmaster分支到指定tag版本

master版本上線以後一般要打一個tag備份,以防事態有變,這是一個好習慣,如果以後有問題也可以放心的回滾版本,那麼怎麼用tag版本覆蓋mastaer呢,其實只有幾個命令 1、檢視分支 git branch 2、切換分支 git checkout master 3、檢視標籤(tag

Android studio git 檔案到上一個版本

0: VCS->Git->Reset HEAD 1: HEAD 後面新增~2 代表回退到上上次的版本,如果想要是上一次的版本就是HEAD~1 Reset Type:  Soft:選擇這個模式意思是僅僅撤銷commit而已,不影響你本地的任何

Gitgit如何遠端倉庫

使用git管理專案開發的過程中經常會碰到這種情況:某次提交已經push到了遠端倉庫,可是突然意識到“天哪,我怎麼做了這麼蠢的事情”。那麼問題來了,怎麼將遠端程式碼庫回滾呢? 在網上看到大部分人給出的解決方案是先將本地回滾,然後刪除遠端分支,之後再將本地的分支push到遠端倉

git如何遠端倉庫

使用git管理專案開發的過程中經常會碰到這種情況:某次提交已經push到了遠端倉庫,可是突然意識到“天哪,我怎麼做了這麼蠢的事情”。那麼問題來了,怎麼將遠端程式碼庫回滾呢? 在網上看到大部分人給出的解決方案是先將本地回滾,然後刪除遠端分支,之後再將本地的分支push到遠端倉庫,這其實是一種很危險的方案,

git版本並更新庫操作

1.   git log //檢視提交版本號2.   q退出檢視3.    git reset xxxxx  //這裡是版本號,回滾版本git reset --hard HASH //返回到某個節點,不保留修改。git reset --soft HASH //返回到某個節點。

Android studio git 檔案到上一個版本

0: VCS->Git->Reset HEAD 1: HEAD 後面新增~2 代表回退到上上次的版本,如果想要是上一次的版本就是HEAD~1 Reset Type:  Soft:選擇這個模式意思是僅僅撤銷commit而已,不影響你本地

git到某個commit 上和 返回最新的版本git

git回滾 本地 com reflog ORC out 返回 mit -h 1. 代碼回退 首先你要用git log 查看你要回到的那個本版, 然後用 git reset --hard HEAD^ 回退到上個版本 git reset --hard co

Git代碼到某個commit

git回滾 origin for 命令 undefine defined -- bsp reset 回退命令:$ git reset --hard HEAD^ 回退到上個版本$ git reset --hard HEAD~3 回退到前3次提交之