Rumah >alat pembangunan >git >Kongsi cara yang elegan untuk memainkan aliran kerja git
Dalam pembangunan, sama ada pasukan membangunkan projek bersama-sama atau anda membangunkan projek secara bebas. Tidak dapat dielakkan untuk berurusan dengan git
. Menghadapi senario pembangunan yang berbeza, mungkin setiap pasukan mempunyai git工作流
sendiri. Di sini, saya ingin berkongsi gitlab
berdasarkan git工作流
yang pasukan saya sedang gunakan. Mari berbincang bersama.
Proses git terstandard boleh mengurangkan kebarangkalian ralat kami, dan kami tidak akan sering menghadapi masalah git, dan kemudian mencari sekumpulan penggunaan git lanjutan. Kaedah git kami sebenarnya hanya memerlukan anda mengetahui operasi git asas, dan kemudian menyeragamkan operasi, dan pada dasarnya anda tidak akan menghadapi masalah git, supaya semua orang boleh menghabiskan masa mereka untuk perniagaan. Pada akhirnya, saya berharap semua orang akan belajar git apabila mereka berminat, dan bukannya apabila mereka menghadapi masalah dan segera mencari jawapan
Kaedah aliran kerja git kami terutamanya Ia dibahagikan kepada cawangan berikut:
master
cawangan, kod stabil terkini vx.x.x
cawangan, cawangan versi, x.x.x ialah nombor versi pembangunan ini. feat-xxx
Cawangan ciri (fungsi baharu) fix-xxx
cawangan pembaikan cawangan Cawangan di atas adalah apa yang kita perlukan dalam pembangunan Cipta dan gunakan cawangan selalunya. Mari kita bincangkan tentang maksud setiap cawangan secara terperinci di bawah.
master
Cawangan mewakili versi kod stabil terkini, yang biasanya digabungkan selepas kod cawangan versi atau cawangan pembaikan berada dalam talian.
feat-xxx
Cawangan mewakili cawangan yang dicipta untuk membangunkan ciri baharu versi tertentu.
vx.x.x
mewakili cawangan versi Ini adalah cawangan yang kami buat daripada master
di bawah nama nombor versi ini sebelum permulaan setiap versi. Contohnya, nombor versi ialah 2.0.1
, kemudian cawangan versi ialah v2.0.1
. Kemudian tunggu sehingga ciri baharu versi ini dibangunkan pada feat-xxx
dan lulus ujian asap, kemudian pergi ke gitlab
dan gabungkan mr
ke dalam cabang versi ini. Selepas setiap ujian persekitaran lulus, gabungkan kod cawangan versi ke dalam master
, dan kemudian padamkan cawangan versi ini.
fix-xxx
mewakili cawangan pembaikan Biasanya apabila menangani masalah dalam talian, cawangan yang dinamakan sempena nama kecacatan dibuat Selepas ujian kecacatan lulus, mr
digabungkan ke dalam cawangan master
. >
yang dibangunkan dan diserahkan pada cawangan ciri secara amnya dianggap sebagai maklumat yang tidak berguna dan akan digabungkan menjadi commit
apabila digabungkan ke dalam cawangan versi (kerana kami Use commit
untuk bergabung, jadi hanya semak pilihan gitlab
apabila memulakan permintaan mr
), dan selepas ujian, sama ada untuk membetulkan pepijat semasa proses ujian atau untuk mengoptimumkan fungsi, squash
akan semua Terpelihara, ini tujuan adalah amaran, kerana saya berharap situasi terbaik adalah melancarkan ujian dengan segera Walaupun sukar untuk mencapai matlamat ini, commit
maklumat yang ditinggalkan dapat membantu kami menyemak setiap cawangan commit
sequenceDiagram master->>v1.0.0: 从master切出 v1.0.0 master->>feat-add-button: 从master切出 feat-add-button master->>feat-add-form: 从master切出 feat-add-button feat-add-form->>feat-add-form: 开发完成 feat-add-button->>feat-add-button: 开发完成 feat-add-button->>v1.0.0: 在gitlab发起mr到v1.0.0,并合并所有commit feat-add-form->>v1.0.0: 在gitlab发起mr到v1.0.0,并合并所有commit v1.0.0->>v1.0.0: 提测 feat-add-button->>feat-add-button: 修复测试bug feat-add-button->>v1.0.0: 将修复的 commit cherry pick到 v1.0.0 v1.0.0->>master: 在gitlab上mr到master,并将合并信息改成 v1.0.0melalui urutan di atas. rajah. , seperti yang anda lihat, kami menamakan cawangan versi
selepas versi yang akan kami mulakan, dan juga mencipta dua cabang ciri v1.0.0
dan feat-add-button
berdasarkan dua fungsi versi ini, dan kemudian menunggu untuk pembangunan fungsi selesai Kemudian mulakan feat-add-form
melalui gitlab
(perhatikan bahawa pilihan gabungan mr
mesti ditandakan di sini) untuk bergabung menjadi commit
, kemudian kod cawangan v1.0.0
akan mengalir dari persekitaran dev kepada persekitaran pengeluaran. Antaranya, jika terdapat apa-apa yang perlu diperbaiki atau dioptimumkan, cawangan ciri akan diubah suai dahulu, dan kemudian v1.0.0
dipindahkan ke cawangan versi. Selepas pergi ke dalam talian, padamkan cawangan versi dan cawangan ciri berikut. cherry pick
sequenceDiagram master->>fix-button-click: 从master切出 fix-button-click fix-button-click->>fix-button-click: 修复问题并测试 fix-button-click->>master: 从gitlab发起mr合并到masterMalah, di sini Prosesnya tidak jauh berbeza daripada di atas, tetapi apa yang perlu diperhatikan di sini ialah apabila membetulkan masalah dalam talian, satu komit diperlukan untuk setiap pepijat, dan komit tidak digabungkan apabila bergabung ke dalam induk. Dan maklumat gabungan perlu diubah suai kepada nombor versi ini. Sebagai contoh, kali ini ia adalah v1.0.1Senario ketiga ialah pembangunan selari berbilang versiSenario ini tidak berbeza daripada senario lelaran biasa, ia hanya bergantung pada sama ada anda mempunyai berbilang versi, jadi buat Cawangan versi yang sepadan sudah memadai. Cuma ikut proses lelaran biasa untuk setiap cawangan versi. S&JS: Mengapa tiada cawangan yang sepadan dengan persekitaran seperti dev dan test, supaya push boleh digunakan J: Proses kami telah berhenti menggunakan ini. Terdapat beberapa sebab,
Selepas ujian kod, dari dev ke ujian, malah ke persekitaran uat (pra-keluaran), jika terdapat perubahan kod dalam persekitaran yang berbeza, maka untuk memastikan kod cawangan ini konsisten, adalah perlu Menyegerakkan kod ke setiap cawangan persekitaran agak menyusahkan. Masalah ini tidak wujud dengan cawangan versi Hanya terdapat satu cawangan versi, yang boleh sepadan dengan pelbagai persekitaran.
Mudah untuk pembangunan selari berbilang versi. Cawangan berbilang versi boleh dibuat, yang lebih mudah untuk digunakan ke persekitaran ujian yang berbeza semasa pembangunan selari. Jika modul antara versi tidak berkait rapat, anda juga boleh mengujinya secara selari.
Semantik. Cawangan versi boleh digunakan untuk mengetahui cawangan mana yang sedang dibangunkan melalui nama cawangan.
S: Bagaimana untuk menangani perubahan dalam cawangan induk
J: Jika terdapat perubahan dalam cawangan induk, gabungkannya ke dalam cawangan berfungsi anda sendiri tepat pada masanya untuk mengelakkan konflik dengan kod ahli lain Jika terdapat konflik
Pembelajaran yang disyorkan: "Tutorial Video Git"
Atas ialah kandungan terperinci Kongsi cara yang elegan untuk memainkan aliran kerja git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!