Saya menggunakannya untuk pemeliharaan situs web kritis. Saya adalah satu-satunya pengembang namun saya memiliki cabang master, mengembangkan dan menerbitkan.
Proses kerja saya untuk pengaturan situs terlihat seperti ini:
Buat cabang utama yang bisa diterapkan. Lakukan komit awal.
Checkout mengembangkan cabang. Jangan lakukan apa pun, kembangkan fungsi sebagai buffer uji untuk bergabung ke master.
Cabang masalah pemeriksaan. Buat kode untuk masalah Anda, setelah selesai, tarik untuk dikembangkan, lihat apakah ada masalah, gabungkan konflik dll ... perbaiki itu.
Ketika masalah yang cukup digabungkan ke dalam pengembangan untuk rilis dan pengembangan telah diuji untuk stabilitas, tarik berkembang menjadi master.
Master
|
Develop - E
/ | \ \
A B C D
Dengan begitu Anda mendapatkan koleksi pengujian lengkap dalam pengembangan, di mana Anda dapat menguji stabilitas, masalah, dll ... tanpa harus mengambil risiko menyakiti Guru dan harus membatalkan komitmen jika itu berbahaya.
Juga, dengan menggunakan masing-masing cabang untuk melakukan, Anda dapat "meninggalkan" pekerjaan yang sudah Anda lakukan, memulai sesuatu yang baru untuk memperbaiki masalah yang lebih mendesak dan menyelesaikannya lebih awal.
Dalam kehidupan nyata saya biasanya memiliki satu cabang masalah, dan menarik yang berkembang dan kemudian menjadi master. Kadang-kadang itu membosankan, tetapi setiap dua bulan sekali setidaknya saya harus meninggalkan pekerjaan hanya dengan topi karena seseorang mempunyai ide bahwa saya harus membuat RightNow ™ dan dengan cara itu saya dapat dengan cepat beralih kembali ke keadaan dasar, menjadikannya hal yang penting. dan kemudian setelah itu melanjutkan keberadaan saya. Terutama dengan proyek-proyek besar yang membutuhkan waktu beberapa minggu, ini adalah hal yang luar biasa sehingga saya dapat dengan cepat berganti cabang.
Pertimbangkan skenario ini: Anda selalu bekerja di cabang utama dan Anda memiliki AwesomeCodeThing ™ dalam karya-karya yang membuat cabang Master Anda dalam operasi jantung terbuka dan YugeBug ™ muncul yang perlu diperbaiki segera jika tidak, ribuan pengguna akan mengeluh kepada Anda tentang BigProblems ™
The satu-satunya cara untuk dengan cepat menyelesaikan masalah Anda dalam skenario seperti itu,
- periksa komitmen Anda sebelumnya,
- lihat kapan komit stabil terakhir Anda (mengutuk adalah opsional)
- putar kembali ke komit itu
- melakukan perbaikan, dorong perbaikan untuk produksi
- selesaikan semua konflik dan masalah yang kini Anda coba kembalikan ke status AwesomeCodeThing ™
- menyerah, menangis dan mulai bekerja. (opsional)
Jika Anda menggunakan cabang:
- Master checkout
- buat cabang UrgentFix ™ dan perbaiki hal-hal
- tarik UrgentFix ™ ke master
- mendorong produksi
- Gabungkan master ke dalam pengembangan
- Gabung berkembang menjadi AwesomeCodeThing ™
- dapatkan bir dan terus bekerja.