git基於歷史commit創建分支


今天在使用dbus實現rpc時,發現遠程方法傳遞和返回的參數不對,而前幾天測試過明明是正常的。於是很自然的想到找回歷史版本再測試一遍,確認是測試環境發生變化了,還是修改代碼引起的。

 

可是怎么取出歷史版本呢?對git不太熟練,折騰了一番總算搞定了。

 

1.確定需要取出版本的commit值:

#git log
commit 76dc4da1c919a2baf430fbe0a7362844ab274451 Author: Zhengfeng Rao <z.rao@xxxxxxxxxxxx.com> Date: Thu Jun 19 16:16:16 2014 +0800 improve rpc api commit 1bfaab5c77be218618382af4a6732b3ec1196673 Author: Zhengfeng Rao <z.rao@xxxxxxxxxxxx.com> Date: Wed Jun 18 20:08:31 2014 +0800 improve rpc client & service api, not tested. commit 92483401abdc41bc64bbdde1a63ed7bbee403e19 Author: Zhengfeng Rao <z.rao@xxxxxxxxxxxx.com> Date: Tue Jun 17 20:10:42 2014 +0800 devel package can call function in service package by dbus now. commit 80e79ff87718b9e56be1b4d4986d796dc046878b Author: Zhengfeng Rao <z.rao@xxxxxxxxxxxx.com> Date: Fri Jun 13 19:56:01 2014 +0800 add new test files

 我需要的歷史版本的commit 值為92483401abdc41bc64bbdde1a63ed7bbee403e19

2. 取出該版本,並創建branch

#git checkout -b dbus_work_ok 92483401abdc41bc64bbdde1a63ed7bbee403e19

基於commit "92483401abdc41bc64bbdde1a63ed7bbee403e19"創建了branch "dbus_work_ok",並取出該版本的代碼。

一點說明:

git checkout -b <branch name> <SHA1>

  
這樣就checkout之前的一個commit並開一個branch指向它了.
  
如果不打算做修改,
只是想checkout出來的話, git checkout <SHA1>就行, 用
detached HEAD特性.

http://www.newsmth.net/nForum/#!article/LinuxDev/42375

 

更多的可以查看git的manul:

#git checkout --help

 

悲催的是,經過測試發現之前能正常工作的dbus功能,居然出錯了!。。。。看來又有得忙了

 

 

 

-----------------------------------

ps:

經過測試,發現是修改了dbus函數中參數的順序,導致傳遞給remote的參數錯誤。

3. 提交代碼:

#git commit -a -m "fix bug:params incorrect in function rpc_execute_context_query(), which will cause dbus work abnormal"

 注意:這只是提交到branch "dbus_work_ok"上,並沒有合並到主干分支上(因為當前的分支是"dbus_work_ok")。

 

4. 合並到主干branch "master"上:

切換到主干branch "master":

#git checkout master

 (當前分支是"master")

 

合並:

#git merge dbus_work_ok

 

5. 刪除不需要的branch  "dbus_work_ok":

#git branch -d dbus_work_ok

 

6.在主干分支“master”上繼續工作。

 

 

 

 


免責聲明!

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



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