Git 本地提交未Push 自動切到其他版本的解決姿勢

原文鏈接請標明:
http://blog.csdn.net/u011974987/article/details/52913925
本文出自:【stromxu的博客】
歡迎訪問我的博客,增加點兒人氣~~Xuhao’s Blog


現象描述:

我在現有的分支上進行修改代碼,使用git提交本地代碼後,SourceTree上面沒有記錄,我就納悶了,我原本以爲我提交到其他項目了,仔細查看了幾個項目的提交記錄也都沒有,於是退出SourceTree,在打開這個項目還是沒記錄,並且最新修改的分支在兩個版本之前的Develop v2.2.2分支(這個我記得我是在最新的分支上開發的,不排除我在其他分支上進行開發的情況),不過這個都不是事兒,怎麼恢復修改的代碼到最新的分支上面呢?下面提供解決方案~~

解決方案:

  1. 打開gitbash 命令行;
  2. 輸出git log 查看不到提交歷史的歷史記錄;
  3. 輸入git reflog可以查看所有分支的所有操作記錄(包括(包括commit和reset的操作),包括已經被刪除的commit記錄,git log則不能察看已經刪除了的commit記錄。

這裏寫圖片描述

上面紅色箭頭指的地方就查看不到記錄。
4. (上面已經說明了,當前最新提交的分支在v2.2.2上)然後我們要恢復5d3c053 這個分支到v2.2.4上面,那我們就要使用git cherry了。
5. 使用 cherry-pick. 根據git 文檔:

Apply the changes introduced by some existing commits 

就是對已經存在的commit 進行apply (可以理解爲再次提交)

簡單用法:

git cherry-pick <commit id>

例如:

$  git checkout old_cc
$  git cherry-pick 67fbeee# 這個 67fbeee號碼,位於:
Commit: 67fbeee108798cf43895db16cdcf91c2b1d5298d [67fbeee]
Parents: fa10c134b8
Author: xuhao <504105930@qq.com>
Date: 2016102118:27:14
Labels: tag:, v2.2.3
更改版本號,解決發佈問題標題問題

如上圖:
由於adb install 這個記錄可能在v2.2.2分支提交的,現在要把這個分支提交到v2.2.4分支上;

結果如下:

這裏寫圖片描述

最後之前丟失的那條記錄也出來了,成功的解決了~~,sourceTree記錄圖如下:

這裏寫圖片描述

總結:不管用什麼工具,只有熟練掌握了命令纔是王道啊~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章