選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
5 分鐘閱讀時間 (905 個字)

[GIT] 跨 Repo 取得 commit 資料 (一) - remote + cherry-pick

image

簡介

此系列文章主要使用 Command 的方式來操作,會先介紹一下會使用到的各個 Command 使用方法與功用,再介紹實作方法,此篇為使用 Remote + Cherry-pick 來跨 Repository 取得 Commit 的作法。 

Command 介紹

這邊預設對 Git 有一定的基礎 (clone、pull、push、log...),故僅介紹此篇主要使用的相關 Command。

remote

Remote 為管理遠端 Repository 的功能,並可對每個連結的 Repository 設定名稱。

git clone 之後,會有一個預設的名稱 origin,這是 git 給的預設名稱。
可以使用 git remote 查看目前有設定的 remote。

使用 git remote -v 可以查看名稱 + Repository Url。

使用 git remote add <名稱> <git repo url> 新增連結的遠端 Repository。

可以檢查一下剛剛新增的 remote,確認關聯成功!

目前設定了一個 sub 的遠端,但是可以發現目前沒有抓取此 Repo 的任何資訊,使用 git log 可觀察到目前還不認識 sub 裡面 master 這個分支。

那接下來進入下個章節 fetch 學習抓取 sub 這個遠端的資訊。

fetch

Fetch 可以抓取遠端資訊,把目前還沒載下來的資訊都抓下來。

現在我們把上一個指令中新增的 sub Repository 下載下來。

可以驗證一下,現在下載完成了,再試一下 git log,可以查看到 sub 的 master 分支 commit 內容囉!

cherry pick

cherry-pick 的功能是「撿分支」,假如你目前的分支只想要其他分支的某幾個 Commit,那就很適合使用 cherry-pick 這個功能。

使用方法為:git cherry-pick <commit SHA>

目前專案分支如下,有兩條分支 mastercreate-menu

那現在想要將 create-menu91ccde(Create menu txt.) 紀錄放到 master 分支上,
但不希望 056791(Update menu txt.) 也併到 master 上,
那這個情境就很適合使用 cherry-pick 這個方法。

僅要將目前的分支先切到 master,然後使用 cherry-pick 想要的紀錄(91ccde),即可完成囉!

再觀察一下線圖,可以看到 Commit 紀錄也存在於 master 的分支上囉~

實作:remote + cherry pick

這個方法最好懂,也最適合新手,方法就是去撿想要的 Commit 紀錄過來。

流程如下:

  1. 使用 git remote 遠端想要的 Repository
  2. 使用 git fetch 剛剛設定的 Remote
  3. 使用 git cherry-pick 把想要的分支撿過來,就完成囉!

那現在以案例來實作,目前有兩專案 main-projectsub-project,而 commit 紀錄如下圖:

main-project
sub-project

目前想要在 main-project 的 master 分支新增 sub-projecta61120 Commit 紀錄,
操作如下:

觀察 git graph,有成功將 Commit 紀錄新增在 main-projectmaster 中了。

[GIT] 跨 Repo 取得 commit 資料 (二) - diff + apply
申請免費憑證給K8S使用

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2024/05/19, 週日

Captcha 圖像