Kami baru-baru ini mulai menggunakan GitLab.
Saat ini menggunakan alur kerja "terpusat".
Kami sedang mempertimbangkan untuk pindah ke aliran github tetapi saya ingin memastikan.
Apa pro dan kontra dari git-flow vs github-flow ?
Kami baru-baru ini mulai menggunakan GitLab.
Saat ini menggunakan alur kerja "terpusat".
Kami sedang mempertimbangkan untuk pindah ke aliran github tetapi saya ingin memastikan.
Apa pro dan kontra dari git-flow vs github-flow ?
Seperti yang dibahas di GitMinutes episode 17, oleh Nicholas Zakas dalam artikelnya tentang " Alur kerja GitHub di dalam perusahaan ":
Git-flow adalah proses untuk mengelola perubahan di Git yang dibuat oleh Vincent Driessen dan disertai dengan beberapa ekstensi Git untuk mengelola aliran tersebut.
Ide umum di belakang git-aliran adalah memiliki beberapa cabang yang terpisah yang selalu ada, masing-masing untuk tujuan yang berbeda:master
,develop
,feature
,release
, danhotfix
.
Proses pengembangan fitur atau bug mengalir dari satu cabang ke cabang lain sebelum akhirnya dirilis.Beberapa responden menyatakan bahwa mereka menggunakan
git-flow
secara umum.
Beberapa memulaigit-flow
dan menjauh darinya.Alasan utama untuk pindah adalah karena
git-flow
prosesnya sulit untuk ditangani dalam model penerapan yang berkelanjutan (atau hampir berkelanjutan).
Secara umum, hal inigit-flow
bekerja dengan baik untuk produk dalam model rilis yang lebih tradisional, di mana rilis dilakukan setiap beberapa minggu sekali, tetapi proses ini rusak secara signifikan saat Anda merilisnya sekali sehari atau lebih .
Pendeknya:
Mulailah dengan model yang sesederhana mungkin (seperti aliran GitHub yang cenderung), dan lanjutkan ke model yang lebih kompleks jika perlu.
Anda dapat melihat ilustrasi menarik dari alur kerja sederhana , berdasarkan GitHub-Flow di:
" Model percabangan git sederhana ", dengan elemen utamanya adalah:
master
harus selalu dapat diterapkan.- semua perubahan yang dilakukan melalui cabang fitur (pull-request + merge)
- dasar untuk menghindari / menyelesaikan konflik; bergabung menjadi
master
Untuk alur kerja aktual yang lebih lengkap dan kuat, lihat alur kerja git (satu kata) .
Tidak ada alur kerja poin perak di mana setiap orang harus mengikuti, karena semua model kurang optimal. Karena itu, Anda dapat memilih model yang sesuai untuk perangkat lunak Anda berdasarkan poin di bawah ini;
Beberapa versi dalam produksi - gunakan Git-flow
Jika kode Anda memiliki beberapa versi dalam produksi (misalnya, produk perangkat lunak umum seperti Sistem Operasi, Paket Office, Aplikasi kustom, dll), Anda dapat menggunakan git-flow. Alasan utamanya adalah Anda harus terus mendukung versi sebelumnya dalam produksi sambil mengembangkan versi berikutnya.
Versi tunggal dalam perangkat lunak sederhana produksi - gunakan Github-flow
Jika kode Anda hanya memiliki satu versi dalam produksi setiap saat (yaitu situs web, layanan web, dll), Anda dapat menggunakan github-flow. Alasan utamanya adalah Anda tidak perlu hal-hal rumit untuk pengembang. Setelah pengembang menyelesaikan fitur atau menyelesaikan perbaikan bug, fitur tersebut segera dipromosikan ke versi produksi.
Versi Tunggal dalam produksi tetapi perangkat lunak yang sangat kompleks - gunakan Gitlab-flow
Perangkat lunak besar seperti Facebook dan Gmail, Anda mungkin perlu memperkenalkan cabang penerapan antara cabang dan cabang master tempat alat CI / CD> dapat berjalan, sebelum masuk ke produksi. Ide adalah untuk memperkenalkan lebih banyak perlindungan pada versi produksi sejak digunakan oleh jutaan orang.
Saya telah menggunakan model git-flow selama lebih dari setahun dan tidak apa-apa.
Tetapi itu sangat tergantung pada bagaimana aplikasi Anda akan dikembangkan dan digunakan.
Ini berfungsi dengan baik ketika Anda memiliki aplikasi yang memiliki aliran pengembangan / penerapan yang lambat.
Tapi misalnya seperti GitHub kami memiliki aplikasi yang memiliki aliran pengembangan / penerapan yang cepat, kami menerapkan setiap hari, dan terkadang beberapa kali sehari, dalam hal ini, git-flow cenderung memperlambat semuanya menurut saya, dan saya menggunakan GitHub mengalir.
Hal lain yang perlu dipertimbangkan adalah, git-flow bukan standar git, jadi Anda mungkin saja, dan ketika saya mengatakan mungkin, maksud saya, Anda akan menemukan pengembang yang tidak mengetahuinya, dan kemudian ada kurva pembelajaran, selengkapnya kesempatan untuk mengacaukan segalanya. Seperti yang disebutkan di atas, seseorang mengembangkan satu set skrip untuk membuat penggunaan git-flow lebih mudah, jadi Anda tidak perlu mengingat semua perintah, ini akan membantu Anda dengan perintah, tetapi mengingat aliran sebenarnya adalah tugas Anda. , Saya telah menjumpai lebih dari sekali ketika pengembang tidak tahu apakah itu hotfix atau fitur, atau bahkan yang terburuk ketika mereka tidak dapat mengingat aliran dan mengatur semuanya.
Setidaknya ada satu GUI yang mendukung git-flow untuk Mac dan Windows SourceTree .
Hari-hari ini, saya lebih condong ke aliran GitHub, karena kesederhanaannya dan mudah dikelola. Selain itu, karena "terapkan lebih awal lebih sering" ...
Semoga ini membantu
sumber
git flow release...
dalam kombinasi dengan tindakan github untuk menyebarkan aplikasi. Dalam tanggapan asli saya, saya menyebutkan bahwa kami merilis beberapa kali dalam sehari, ini menyebabkan masalah saat menggunakan git-flow. Alasan saya pikir git-flow akan bekerja dengan baik dalam proyek ini adalah karena kami memiliki siklus rilis yang telah ditentukan sebelumnya, yang merupakan salah satu nilai jual utama untuk menggunakan git-flow.