Git好用工具 - 使用rebase命令進行合併提交

關鍵字 :GITrebase

< 前言 >

我們在管理各個Linux專案時,最常使用的大概就是透過Git工具,來進行SDK的版本維護和管理。然而sdk內容的維護時常伴隨著非常多零散的提交,長久下來對於專案的管理者,或著是客戶使用者,想要查詢該SDK歷史紀錄時,內容經常是非常凌亂且難以查看。

 

如下舉例96fc56e到06d9baf可能是同一功能但不同地方的修改,但是卻提交了2次內容,類似的提交一旦變多了,整個觀看的頁面將變得非常凌亂,本文將說明如何將類似的提交,合併成為一個提交,整理成為一個較為乾淨的新的提交。

 

 

< Git rebase 命令 >

當提交太過於瑣碎凌亂時,可以透過rebase來整合過去的提交。

原本的提交樹如下:

 

$ git log --oneline

96fc56e Change sensor to os02k10 for NT98525(cfg_RTOS_BOOT_LINUX_EVB).

06d9baf Change sensor to os02k10.

96f23b8 Add .gitignore file.

475342c Remove redundant files, those files are no need to tracking.

a993c8d NT9852x_linux_sdk_fastboot_v2.04.000_glibc

 

在96fc56e和06d9baf為同一個功能但修改了不同的檔案,因此可以合併為同一個提交。96f23b8和475342c很明顯地看出是移除了原本a993c8d提交的一些檔案內容,因此96f23b8和475342c也可以合併為同一個提交,這時可以透過以下命令來開始進行整合提交:

 

$git rebase -i a993c8d

 

接著會出現編輯器視窗如下:

 

 

透過squash來決定那一個提交要整合進更前一個的提交,如下:

 

 

儲存後退出編輯器,由於要合併為一個新的提交,所以編輯器會提醒要編輯這個新的合併提交,這邊我們編輯為Remove all redundant files.

 

 

 

因為從4個分別合併為2個,因此會需要編輯兩次提交,第二次的提交為Support os02k10 driver

 

使用git log查看新的提交歷史紀錄,是不是變得比較乾淨和清楚了。

 


 

 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能