PTT推薦

[請益] git協同合作問題

看板Soft_Job標題[請益] git協同合作問題作者
greytiger
(灰色老虎)
時間推噓22 推:22 噓:0 →:23

遇到一個情境 想請問應該如何操作

假設現在
有一個主分支release
兩個feature branch

第二個分支需要用到第一個分支部分代碼
另外一部分不能弄進來

但是因爲第一個分支還沒回release
但如果選擇了pull merge 第一個分支拉部分的code(如圖紅色的部分)
第二分支回release之後...

第一個分支去pull release的時候會造成檔案被修改或刪掉如圖藍色部分
https://i.imgur.com/hgMRn5l.jpg

圖 git協同合作問題

紅色那塊該怎麼做呢?才不會影響到藍色部分的代碼
是不是應該pull 完第一個分支之後reset ?

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.111.130 (臺灣)
PTT 網址

※ 編輯: greytiger (211.75.111.130 臺灣), 12/09/2021 13:43:36

t6414112/09 13:53手動編輯將codeB 的修改搬到 BranchB,或 cherry-pick 試

t6414112/09 13:53試?

tod12/09 13:54你可以cherry pick

quickbym112/09 13:55Cherry pick Code B 的 commit

Cherry pick 要的每一個commit嗎~

※ 編輯: greytiger (211.75.111.130 臺灣), 12/09/2021 14:09:03

abc092200112/09 14:41chrry pick阿,不然就merge 再 revert 不要的 commit

Petyr12/09 15:07撿櫻桃很好用的

vi00024612/09 15:19避免用revert 到時候merge A的時候會有問題

anandydy52912/09 16:06cherry-pick

quickbym112/09 16:14對 你可以先cherry pick 好幾個回來 然後都不要 commi

quickbym112/09 16:14t

abc092200112/09 16:56我沒想到mergeA,失策了

Bencrie12/09 19:50rebase -i 選你要的

bill020512/09 19:52commit很多用rebase 一兩個commit 用chrry pick

請問rebase 怎麽操作呢 小弟只有用過rebase release 和rebase 改commit 沒有在feature branch rebase 其他的feature branch過 如果選用squash merge 還會出現藍色的那種狀況? 1. 如果 在B 分支 squash merge 分支A 2. B PR回release 用 squash merge進去 這樣還會有藍色狀況嗎?

※ 編輯: greytiger (42.72.113.67 臺灣), 12/09/2021 21:37:37

superpandal12/09 21:49我會用不是git的方法解決它 做的事情愈來愈多 愈來愈

superpandal12/09 21:49不符合類unix邏輯了

Mupzopod12/09 22:17試試 git checkout --patch target_branch file/path

Mupzopod12/09 22:17--patch可以只checkout 一部分的code, 我還蠻常用的

neo527712/10 01:58rebase啊 萬用解

neo527712/10 01:58只要你可以聯絡道寫branch的人就可以當場解衝突

acgotaku12/10 11:55就多開一個分支當緩衝就好拉

acgotaku12/10 11:59這種情況 我不會在作業branch直接merge/rebase/撿櫻桃

acgotaku12/10 12:00另外開一個branch去處理 在發mr給自己檢查 會比較安全

james73212/10 19:38rebase -i根本是神器

sunsamy12/11 09:39會用git當版控的聖盃通常邏輯不是很強,會在這鬼異的死循

sunsamy12/11 09:40環一直無限循環下去,會一直上來po文問,又解決不了問題

sunsamy12/11 09:41唯一的解法是:幹掉產生問題的工具-->git. 不能再多說了

sunsamy12/11 09:42懂的就懂,不懂的就一輩子一直詭異下去吧

jhjhs3350412/11 16:40飢餓遊戲git開發者的惡趣味若權責沒分配好加班加到爆~

JustInn12/11 22:22推樓上,我公司技術魔人一直在推,結果搞到最後難看收拾

brucetu12/13 15:56其實git真的滿囉嗦 但沒辦法大家都用

newhandfun12/14 23:19敢問前幾樓有什麼更好的版控工具?

newhandfun12/14 23:19可以分享一下嗎?

Sunal12/15 08:28有時候覺得git不好用是開發流程沒那個需求。當有一堆要分

Sunal12/15 08:28階段上版的功能待測試,同時又有產品要fix bug更新,沒有gi

Sunal12/15 08:28t配合ci/cd還不知道要怎麼測。

b52452477812/15 18:55是說 release當主幹道是認真的嗎

afu486912/16 13:57我個人想不到比git還強大的版控就是了QQ

afu486912/16 14:02然後樓上大大的推文才讓我想到 如果有個dev branch 然後

afu486912/16 14:02用force push/merge/cherry-pick去控制release branch是

afu486912/16 14:02不是會比較好 整個結構應該有優化空間

turtleman12/16 18:10除了Git 還有什麼好用的版控呀?

abc168921712/16 21:13同問,如果開發流程很複雜,還有哪套比 git 好用?

abc092200112/23 17:19現在大概都是 Git 的天下了吧

abc092200112/23 17:20同類型的有 Mercurial,不過沒用過,可以試試看

cathychg02/09 12:20版控 。 時間 地點 誰幹的!!!