Rumah alat pembangunan git Kongsi cara yang elegan untuk memainkan aliran kerja git

Kongsi cara yang elegan untuk memainkan aliran kerja git

Jan 13, 2023 pm 03:44 PM
hujung hadapan git hujung belakang

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.

masterCawangan 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. >

Nota: Perincian di sini ialah maklumat

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

Fungsinya. seperti yang diterangkan di atas, dan kemudian mari kita bincangkan tentang cara melakukan beberapa senario klasik yang kami bangunkan:

Senario pertama: lelaran pembangunan biasa

Kami membangunkan 1.0 berdasarkan keperluan ini Ambil versi .0 sebagai contoh. Terdapat dua modul berfungsi dalam yang satu ini perlu menambah butang, dan satu lagi perlu menambah jadual

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.0
Salin selepas log masuk

Kongsi cara yang elegan untuk memainkan aliran kerja git

melalui 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

Versi kod yang diuruskan melalui proses ini sangat jelas Ini adalah sebahagian daripada serpihan induk yang dipintas

Kongsi cara yang elegan untuk memainkan aliran kerja git

Terdapat satu lagi adegan dalam proses lelaran biasa. . Iaitu, semasa proses pembangunan, PM tiba-tiba datang dan mengatakan bahawa disebabkan beberapa jenis force majeure, satu fungsi perlu dipotong. Pada masa ini, jika kod itu belum diuji lagi, atau fungsinya agak mudah, ia tidak terlalu menyusahkan untuk menanganinya. Tetapi jika ya, fungsi anda dan kod rakan sekerja lain sedang diuji, dan beberapa pepijat telah diperbaiki semuanya saling berkaitan, terutamanya keperluan yang melibatkan pengubahsuaian banyak fail. Ia akan menjadi sangat menyusahkan untuk dikendalikan pada masa ini. , bukan sahaja anda perlu melihat kod orang lain, tetapi anda juga perlu berhati-hati agar tidak membuat kesilapan dalam kod anda sendiri. Pada masa ini, ia adalah sangat mudah dalam proses kami Hanya padamkan cawangan versi sedia ada, dan kemudian kumpulkan semula cawangan ciri yang perlu berada dalam talian. Dapat dilihat bahawa cawangan versi digabungkan oleh cawangan ciri, iaitu, cawangan versi boleh digabungkan secara sewenang-wenang oleh cawangan ciri yang berbeza. Ini lebih mudah untuk dikendalikan

Senario kedua ialah pembaikan pepijat dalam talian

Kami mengambil peristiwa klik butang yang perlu diperbaiki dalam talian sebagai contoh

sequenceDiagram
master->>fix-button-click: 从master切出 fix-button-click
fix-button-click->>fix-button-click: 修复问题并测试
fix-button-click->>master: 从gitlab发起mr合并到master
Salin selepas log masuk
Malah, 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.1

Senario ketiga ialah pembangunan selari berbilang versi

Senario 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&J

S: 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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Apr 02, 2025 pm 02:06 PM

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau disediakan oleh projek sumber terbuka yang terkenal? Perpustakaan mana yang dibangunkan oleh syarikat besar atau disediakan oleh projek sumber terbuka yang terkenal? Apr 02, 2025 pm 04:12 PM

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

GITEE PAGES PENYEDIAAN LAMAN WEB STATIC Gagal: Bagaimana menyelesaikan masalah dan menyelesaikan kesilapan fail tunggal 404? GITEE PAGES PENYEDIAAN LAMAN WEB STATIC Gagal: Bagaimana menyelesaikan masalah dan menyelesaikan kesilapan fail tunggal 404? Apr 04, 2025 pm 11:54 PM

Giteepages Statik Laman Web Penggunaan Gagal: 404 Penyelesaian Masalah dan Resolusi Ralat Semasa Menggunakan Gitee ...

Cara Menjalankan Projek H5 Cara Menjalankan Projek H5 Apr 06, 2025 pm 12:21 PM

Menjalankan projek H5 memerlukan langkah -langkah berikut: memasang alat yang diperlukan seperti pelayan web, node.js, alat pembangunan, dan lain -lain. Membina persekitaran pembangunan, membuat folder projek, memulakan projek, dan menulis kod. Mulakan pelayan pembangunan dan jalankan arahan menggunakan baris arahan. Pratonton projek dalam penyemak imbas anda dan masukkan URL Server Pembangunan. Menerbitkan projek, mengoptimumkan kod, menggunakan projek, dan menyediakan konfigurasi pelayan web.

Bagaimana cara menentukan pangkalan data yang berkaitan dengan model dalam beego orm? Bagaimana cara menentukan pangkalan data yang berkaitan dengan model dalam beego orm? Apr 02, 2025 pm 03:54 PM

Di bawah rangka kerja beegoorm, bagaimana untuk menentukan pangkalan data yang berkaitan dengan model? Banyak projek beego memerlukan pelbagai pangkalan data untuk dikendalikan secara serentak. Semasa menggunakan beego ...

Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Apr 02, 2025 pm 04:54 PM

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Adakah pengeluaran halaman H5 memerlukan penyelenggaraan berterusan? Adakah pengeluaran halaman H5 memerlukan penyelenggaraan berterusan? Apr 05, 2025 pm 11:27 PM

Halaman H5 perlu dikekalkan secara berterusan, kerana faktor -faktor seperti kelemahan kod, keserasian pelayar, pengoptimuman prestasi, kemas kini keselamatan dan peningkatan pengalaman pengguna. Kaedah penyelenggaraan yang berkesan termasuk mewujudkan sistem ujian lengkap, menggunakan alat kawalan versi, kerap memantau prestasi halaman, mengumpul maklum balas pengguna dan merumuskan pelan penyelenggaraan.

Bagaimana untuk mendapatkan data kawasan perkapalan versi luar negara? Apakah beberapa sumber siap sedia ada? Bagaimana untuk mendapatkan data kawasan perkapalan versi luar negara? Apakah beberapa sumber siap sedia ada? Apr 01, 2025 am 08:15 AM

Penerangan Soalan: Bagaimana untuk mendapatkan data kawasan perkapalan versi luar negara? Adakah sumber sedia ada yang ada? Dapatkan tepat dalam e-dagang rentas sempadan atau perniagaan global ...

See all articles