Di perusahaan saya saat ini, kami menggunakan proyek sumber terbuka yang dihosting di Github sebagai komponen aplikasi kami. Saya telah mengerjakan proyek ini untuk menambahkan beberapa fitur yang kami butuhkan dan mengintegrasikannya dengan sistem build kami. Manajer saya dan saya sepakat bahwa kami ingin menyerahkan sebanyak mungkin pekerjaan kami pada komponen ini sebagaimana masuk akal kembali ke proyek open-source. Pertanyaan saya adalah tentang apa alur kerja / teknik terbaik untuk mempertahankan komitmen Git sedemikian rupa sehingga saya dapat dengan mudah memisahkan hal-hal yang masuk akal untuk ditambahkan kembali ke proyek open-source - perbaikan bug dan fitur-fitur baru yang cukup umum - dari hal-hal yang spesifik untuk proyek kami, seperti membangun lokasi dan konstanta aplikasi.
Apa yang telah saya lakukan sejauh ini adalah mempertahankan cabang Git pribadi di mana saya melakukan semua perubahan saya, dengan rincian yang sesuai. Saya kemudian gunakan cherry-pick
untuk menambahkan komit sumber-terbuka ke cabang master, dan mengirimkannya kembali ke Github.
Sepertinya saya harus menggunakan penggabungan untuk melakukan ini, sehingga saya tidak terus membuat komit terpisah dengan konten yang identik, tapi saya tidak yakin bagaimana melakukan ini dengan mengecualikan komit khusus perusahaan dan menjaga alur kerja yang masuk akal.
Sebagai contoh, saya kira saya bisa melakukan hal-hal yang dapat-sumber-sumber pada master dan hal-hal khusus perusahaan di cabang pribadi, dan kemudian menggabungkan master ke cabang itu sesuai kebutuhan, membiarkan cabang master menunjuk komit sebelum penggabungan, sehingga saya bisa melakukan hal-hal yang dapat-sumber-terbuka untuk itu lagi dan kemudian bergabung lagi. Apa yang tampak canggung tentang alur kerja ini adalah bahwa saya harus memutuskan terlebih dahulu untuk semua yang saya lakukan di cabang mana itu berasal, mengerjakannya dengan apa yang tampak seperti selesai, kemudian komit dan gabungkan sebelum pengujian. Salah satu hal yang sangat saya sukai dari Git adalah betapa mudahnya melakukan apa saja yang Anda perlukan agar aplikasi Anda berfungsi, dan kemudian memutuskan nanti bagaimana dan di mana melakukan perubahan Anda. Sejauh yang saya tahu, jika Anda saat ini di cabang dan memiliki beberapa pekerjaan, ada '
Apakah yang saya lakukan merupakan alur kerja yang masuk akal untuk kontribusi jangka panjang? Adakah yang bisa merekomendasikan alur kerja yang berbeda yang mungkin lebih baik, dan mengapa itu lebih baik?