这种场景下该采用怎么样的git分支管理策略?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-02 09:20:14
0
8
834

目前开发的项目采用git作为版本管理工具,

平时开发有两个分支,develop和master

在develop上开发,

在master发布正式版本。

目前有这样一种情况:

有一个设计好的功能,由于种种原因,在develop分支上开发完成后不能正常使用,

需要使用另一个补救性的设计方案临时代替,此代替方案需要上线,发布到master里面

当原功能成熟后,再删除这个补救方法,切换回原有的功能

请问我该使用哪种git分支策略?

曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(8)
我想大声告诉你

Syorkan kaedah permintaan gabungan dalam aliran Gitlab
Cawangan induk dan membangunkan tidak dibenarkan ditolak terus
tuan = pengeluaran
membangunkan = keluaran seterusnya
Apabila terdapat keperluan baharu, cipta ciri cawangan keperluan/aaa
Cipta permintaan gabungan
selepas pembangunan selesai Gabung feature/aaa ke develop cawangan
selepas semakan kod Gabung develop cawangan ke master
apabila pergi dalam talian Keluarkan master cawangan

Untuk soalan poster, anda boleh melakukan ini
Cipta cawangan baharu feature/aaa berdasarkan feature/bbb Selepas menyelesaikan kerja pemulihan, gabungkannya menjadi develop, master dan kemudian pergi ke dalam talian
. Teruskan pembangunan feature/aaa dan akhirnya menggabungkannya menjadi develop, master

洪涛

Anda boleh merujuk aliran kerja git

adalah kira-kira master cawangan daripada checkout cawangan hotfixes. Tulis remedi dalam hotfixes, kemudian merge ke master dan develop masing-masing. Pada ketika ini, anda boleh memadamkan cawangan hotfixes ini.

Kemudian bangun dan perbaiki fungsi anda daripada cawangan develop, dan akhirnya letakkan cawangan develop merge kepada master dalam talian.

Mungkin ada cara yang lebih baik, hanya untuk rujukan

Ty80
develop(未开发新功能)-> develop(已开发新功能,新功能不可用)-> develop(继续完善到可用)
                 └───> fix(补救)                                 ╲
                           └───> master(记得在~1版本打 tag 哦)      ╲ merge
           master(tag)<────────────────────────────┘               ↘
                 └───────────────────────────────────────────────> master
phpcn_u1582

Bantu poster selesaikan masalah ini dahulu.

Strategi cawangan poster tidak memerlukan pemprosesan khas Ia boleh dikendalikan dengan baik dengan mengikut proses biasa dan menggabungkan fungsi git:

  • Pertama, teruskan menyerahkan kod pembetulan selepas komit selesai pada pembangunan untuk memastikan ciri pembangunan boleh dikeluarkan dan digunakan seperti biasa. "Penyelesaian pemulihan" yang disebut oleh poster di sini sebenarnya adalah sebahagian daripada pembangunan ciri, bukan pembetulan pepijat.
  • Selepas itu, anda boleh memasuki proses pelepasan selepas ujian lulus. Jika strategi cawangan asal poster asal termasuk cawangan keluaran, anda boleh membuat cawangan keluaran selepas langkah sebelumnya dan membangunkan akan terus menerima penyerahan ciri baharu. Pelan reka bentuk dan remedi sementara kali ini akan menerima pembetulan pepijat dalam keluaran.
  • Perkara di atas sebenarnya adalah proses pembangunan dan pelepasan biasa. Bagaimana dengan pembangunan reka bentuk seterusnya dan pemadaman fungsi pemulihan? Malah, pembangunan seterusnya sebenarnya boleh dianggap sebagai penambahbaikan atau ciri baharu, hanya pembangunan biasa. Anda boleh mengembalikan komit pemulihan asal (perintah git revert) pada mana-mana nod semasa proses penambahbaikan ini seperti yang diperlukan.
  • Selepas revert remedy dan "original design" dilaksanakan, lepaskan sahaja mengikut proses pelepasan biasa.

Menurut pemahaman saya, "fungsi asal" dan "penyelesaian pemulihan" yang disebut oleh poster adalah penyerahan kod biasa. Perkara yang dikelirukan oleh poster ialah cara menangani masalah bahawa penyelesaian remedi sementara akhirnya akan dibuang (digulung semula), jadi menggunakan arahan git revert yang disebutkan di atas harus memenuhi jangkaan poster. Ini bukan sahaja memastikan bahawa semua operasi pada asas kod boleh direkodkan dalam trunk (master, develop), tetapi juga mengelakkan masalah seperti model cawangan yang kompleks.


Selain itu, saya tidak tahu sama ada strategi percabangan yang digunakan oleh poster mengikut aliran kerja yang disebut oleh @rsj217. Jika membangunkan adalah cawangan pembangunan utama untuk semua pembangun, saya fikir adalah lebih baik untuk membangunkan untuk menyerahkan ciri yang belum selesai secara langsung tanpa menerimanya. Dalam kerja pembangunan harian, terutamanya dalam kes pembangunan selari berbilang ciri/cawangan, berbilang cawangan ciri boleh mengelakkan gangguan antara satu sama lain.
Kembali kepada soalan poster asal, reka bentuk yang tidak boleh digunakan ini boleh terus dibangunkan dan tidak boleh digabungkan menjadi pembangunan. Berdasarkan cawangan ini, semak cawangan pembangunan untuk ciri pemulihan Selepas ujian selesai, gabungkannya ke dalam pembangunan untuk memasuki proses keluaran. Cadangan penggabungan dan pengembalian berikut masih diperlukan Jangan langgar proses dan lakukan pemprosesan khas melainkan anda perlu melakukannya, semua operasi komit dikekalkan dengan cara ini.

刘奇

Adalah disyorkan untuk merujuk kepada cabang induk aliran kerja git yang dibangunkan digunakan untuk keluaran pembangunan digunakan untuk mengeluarkan versi baharu pembaikan terbaru digunakan untuk membetulkan pepijat dalam talian dan operasi kecemasan lain

小葫芦

Katakan cawangan remedi anda berkembang1 Selepas pergi ke dalam talian, develop1 dan master akan digabungkan bersama untuk menjadi master baru Selepas cawangan berfungsi asal matang dan stabil, ia akan digabungkan menjadi master baru (ia berkemungkinan besar bercanggah). Padamkan bahagian develop1 dan ujian akan masuk dalam talian tanpa sebarang masalah. Ia agak menyusahkan, dan mungkin sedikit bodoh, tetapi setiap kali git bergabung, titik baharu dijana ke hadapan anda kehilangan sesuatu tidak lama lagi?
Mungkin ada cara yang lebih baik, hanya untuk rujukan

我想大声告诉你

Jika anda menghadapi kesukaran membaca model percabangan Git yang berjaya, anda boleh membaca terjemahan model percabangan Git yang berjaya oleh Juven Xu

巴扎黑

Menggunakan git-flow akan membantu anda Anda boleh menggunakan arahan mudah untuk membantu anda membuat dan melengkapkan cawangan. Dan terdapat keluaran piawai, pembaikan terkini dan aliran kerja ciri

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan