Saya sangat suka artikel ini tentang meninggalkan situs kode / kamp dalam keadaan yang lebih baik daripada yang Anda temukan - sepertinya pendekatan praktis di dunia nyata untuk menjaga kebersihan kode.
Saya juga sangat suka cabang fitur sebagai cara mengembangkan fitur secara terpisah sehingga, jika Anda tidak suka, Anda dapat dengan mudah tidak menggabungkannya dll.
Namun, jika saya bekerja pada cabang fitur, dan saya melihat beberapa kode jelek, haruskah saya memperbaikinya?
Rasanya ada beberapa sisi buruk untuk memperbaikinya:
- Ketika saya menggabungkan cabang kembali, diff akan berantakan, berantakan dengan nama variabel atau ekstraksi fungsi
- Jika fitur tersebut ditinggalkan, Anda harus memilih komit pembersihan (yang mungkin atau mungkin tidak berfungsi tergantung pada bagaimana kode di dekatnya berubah menjadi penggabungan yang berantakan), lakukan kembali atau tinggalkan saja.
Di sisi lain, jika saya tidak melakukannya ketika saya berada di file, maka jelas saya akan lupa melakukannya dalam beberapa hari ketika saya menggabungkan cabang.
Saya diperingatkan bahwa ini didasarkan pada pendapat (saya pikir tidak termasuk judulnya should
), tetapi saya merasa ada jawaban (tentu saja orang menggunakan kedua pendekatan ini sehingga mereka harus memiliki jawaban). Juga, pertanyaan tentang development methodologies
topik dan saya pikir mereka memerlukan tingkat pendapat.
sumber
Jawaban:
Anda hanya boleh 'memperbaiki' kode di cabang fitur jika Anda tetap mengubah kode itu sebagai bagian dari fitur.
Misalnya. Saya sedang mengerjakan fitur 'print kelinci' dan saya menemukan kode printer
Saya mengubahnya menjadi:
Mengapa:
Saya tidak secara acak mengenai bagian lain dari basis kode dan 'membuatnya lebih baik' karena ini akan:
sumber
Jika Anda ingin refactorings Anda "hidup secara mandiri" dari cabang fitur Anda saat ini, jangan lakukan perubahan di sana. Sebagai gantinya, lakukan refactoring pada cabang pengembangan utama (atau "cabang refactoring", jika itu biasa di tim Anda untuk tidak menerapkan perubahan langsung ke cabang dev). Jadi siapa pun dari tim Anda (termasuk Anda) dapat menggabungkan perubahan ke cabang fitur aktif yang sedang mereka kerjakan. Namun, berhati-hatilah untuk tidak menerapkan refactoring global di seluruh "setengah dari basis kode" tanpa meminta izin rekan kerja Anda terlebih dahulu - mereka mungkin tidak begitu senang jika refactoring Anda terlalu banyak mengganggu pekerjaan mereka saat ini.
Pengecualian ada di sini ketika perbaikan yang Anda lakukan bersifat lokal ke bagian basis kode yang Anda sentuh persis di cabang fitur itu, dan tidak masuk akal untuk memberi mereka siklus hidup yang berbeda dari "fitur baru" Anda.
sumber
Tujuan
branch
tipe adalah untuk memberikan niat untuk menanganinya. Jika Anda mengikuti gaya GitFlow bercabang, maka Anda mungkin memiliki jenis sepertifeature
,hotfix
,release
, dll .. Dalam kasus cabang fitur, yang niat adalah untuk merangkum gabungan ke cabang lain (yaitudevelop
) yang menunjukkan pengembang bertanggung jawab untuk penggabungan, apa fitur ini IS. Jika kode yang Anda bersihkan bukan bagian dari fitur itu, jangan ubah.Sebaliknya, cari cabang serendah mungkin dari kode jelek (kemungkinan
develop
) dan cabang dari sana. Ubah kode dan usulkan digabung sebagai fitur. Jika Anda memerlukan kode itu dalam apa yang sedang Anda kerjakan, dan terutama ingin menghindari penggabungan konflik, gabungkan cabang itu ke cabang ANDA.Berikut adalah penjelasan yang cukup bagus tentang berbagai strategi: https://www.atlassian.com/git/tutorials/comparing-workflows/
sumber
Mungkin baik untuk memperbaiki 'kode jelek' pada pandangan, tergantung pada tempo proyek, 'keburukan' kode, dll., Tetapi cobalah untuk tidak melakukan ini pada fitur cabang itu sendiri.
git add -p
untuk membuat perbaikan, komit perubahan itu saja , dan sebelum Anda bergabung / dorong (memang, lebih disukai setelah komit Anda berikutnya), gunakan rebase interaktif untuk memindahkan komit itu ke titik sedini mungkin di cabang Anda, atau mungkin bahkan ceri-pilih ke pengembangan, tergantung pada sejarah Anda.Saya juga akan melakukan ini dengan hal lain yang 'memperbaiki' cabang pengembangan (di mana 'perbaikan' adalah perubahan yang Anda atau pengembang lain mungkin buat untuk memastikan bahwa kode mematuhi standar). Ini membantu...
sumber