(4)
git ile ilgili bir soru (yazılımcılar)
Farz edinki aşağıdaki gibi bir yapı var:develop commit acommit btestcommit acommit bcommit ctest/feature-1commit acommit bcommit ccommit dşimdi ben test/feature-1 branch'ndeki commit d'nin develop'a merge'lenmesi için PR açmak istiyorum. develop'dan test/feature-1'a merge mi almalıyım yoksa rebase m
Farz edinki aşağıdaki gibi bir yapı var:
develop
commit a
commit b
test
commit a
commit b
commit c
test/feature-1
commit a
commit b
commit c
commit d
şimdi ben test/feature-1 branch'ndeki commit d'nin develop'a merge'lenmesi için PR açmak istiyorum. develop'dan test/feature-1'a merge mi almalıyım yoksa rebase mi yapmalıyım ya da başka bir şey?
develop'a a,b,c'nin değil de sadece d'nin gitmesini istiyorum.
yani test/feature-1'in yapisi commit a,b,d'ye dönmeli ki sadece aradaki fark gitsin?
0
Örnekte test branch'inin varlık sebebini tam anlayamadığım için yanlış cevaplama ihtimalim var. develop'ta a, b'yi sabit tutup üzerine c'nin gelmeyip sadece d'nin gelmesini istiyorsunuz yani. Merge yapmam, feature-1'deki commit d'yi develop'a cherry pick'lerim bu durumda.
0
jack of hearts
(
29.05.22)
evet cherry pick yapabiliriz ama bunu develop branch'inde değil test/feature-1'da yapmak istiyorum ki sonra history'e baktığımızda anlaşılır olsun. yani test/feature-1'ın history'si a,b,d'ye dönüşmesi gerek.
0
test/feature-1 branch'indeyken rebase -i develop yazın. -i flag'i interactive demek, listede size c ve d commit'ini ekleyeyim mi diye soracak. c'ye drop diyip d'yi kabul (pick) ederseniz istediğiniz olur.
0
plutongezegendegilmi
(
29.05.22)
Ben bu durumlarda şöyle yapıyorum:
develop'tan yepyeni branch alın.
develop-d
commit a
commit b
bu branchteyken commit d'yi cherry pick yaparsanız son durumda:
develop-d
commit a
commit b
commit d
olur. develop-d'yi develop'a mergelemek için PR açın. Değişiklik olarak sadece commit d görünecektir.
History'de de daha anlaşılır olur.
edit: yazılmış zaten bunlar.
0
nickini vermek istemeyen uye
(
29.05.22)