Saya punya banyak proyek di Git yang akhirnya ingin saya bawa ke orang lain. Namun, sekarang ini hanya saya dan saya menggunakan Git dan GitHub dengan sangat sederhana: tidak ada cabang dan pada dasarnya hanya menggunakan komit sebagai cadangan untuk file lokal saya. Kadang-kadang saya akan kembali dan melihat versi sebelumnya dari file saya untuk referensi, tetapi saya tidak perlu melakukan rollback ke titik ini, meskipun saya menghargai opsi yang harus saya butuhkan di masa depan.
Sebagai pengembang tunggal, fitur Git atau GitHub apa yang dapat saya manfaatkan yang akan bermanfaat bagi saya saat ini? Seperti apa seharusnya alur kerja saya?
Juga, apakah ada praktik tertentu yang perlu saya mulai lakukan dalam mengantisipasi penambahan orang lain ke proyek saya di masa depan?
sumber
Jawaban:
Tentu saja. Ada praktik bagus dan sederhana yang dapat Anda gunakan bahkan jika Anda tidak memiliki tim saat ini: buat cabang terpisah untuk pengembangan. Idenya adalah bahwa cabang utama hanya akan berisi versi kode yang dirilis atau perubahan besar. Ini dapat diadopsi dengan mudah oleh pengembang baru yang bergabung dengan proyek Anda.
Selain itu, percabangan berguna bahkan jika Anda bekerja sendiri. Misalnya, Anda menemukan bug saat dalam proses pengkodean fitur baru. Jika Anda tidak menggunakan cabang, Anda harus melakukan keduanya: menambahkan fitur baru dan memperbaiki bug di cabang yang sama. Ini tidak baik: P Di sisi lain, jika Anda telah membuat cabang baru untuk membuat fitur baru Anda, Anda bisa checkout cabang pengembangan, memperbaiki bug, dan checkout kembali cabang fitur baru.
Ini hanyalah contoh singkat dari apa yang dapat Anda lakukan sebagai programmer tunggal. Saya yakin pasti ada lebih banyak praktik baik.
Saya sangat merekomendasikan Anda artikel ini: Model percabangan Git yang sukses
sumber
Saya persis dalam situasi ini, tetapi saya memang memilih alur kerja yang sedikit lebih kompleks meskipun tidak harus lebih rumit dengan Git.
Tujuan awalnya adalah mempelajari cara git jadi saya melakukan sejumlah penjelajahan. lalu kembali ke cukup banyak alur kerja yang Anda gambarkan.
Setelah beberapa saat ini menjadi sulit untuk dikerjakan karena beberapa situasi muncul juga memberi saya kebiasaan buruk yang akan sulit untuk dihancurkan begitu saya bergabung dengan tim.
jadi saya memilih yang berikut:
Saya juga mengatur akun hub git tempat saya menyinkronkan trunk. Ini memungkinkan saya untuk dengan mudah mulai bekerja pada komputer yang berbeda. Itu karena kebutuhan tetapi memungkinkan saya untuk menemukan bug yang terkait dengan lingkungan saya di mana tidak tersedia di komputer lain. Jadi sekarang saya biasakan untuk mencoba proyek pada sistem "perawan" yang berbeda setidaknya sekali. Menghemat banyak sakit kepala ketika tiba saatnya untuk menyebar ke pelanggan.
Cabang-cabang ganda pada awalnya tampak seperti berlebihan tetapi itu BENAR-BENAR banyak membantu. Saya dapat memulai sebuah ide di cabang, mengerjakannya sebentar dan ketika saya mulai menjalankan lingkaran saya menyerah dan memulai cabang lain untuk mengerjakan sesuatu yang lain. Kemudian sebuah ide muncul dimana saya akan kembali ke cabang setengah matang dan mengeksplorasi ide ini. keseluruhan ini membuat saya JAUH lebih produktif karena saya bisa bertindak cepat dan ide sangat cepat dan melihat apakah itu berhasil. Biaya beralih cabang dengan GIT sangat rendah membuat saya sangat gesit dengan basis kode saya. Yang mengatakan saya masih harus menguasai konsep rebase untuk membersihkan sejarah saya, tetapi karena saya sendirian saya ragu saya benar-benar perlu. Mendorongnya sebagai "senang belajar".
Ketika semua percabangan menjadi rumit maka saya menjelajahi opsi log untuk menggambar pohon perubahan dan melihat cabang mana yang ada.
Singkat cerita, git tidak seperti SVN, CVS, atau (brrr) TFS. Bercabang sangat murah dan membuat kesalahan yang akan menghapus pekerjaan sebenarnya cukup sulit. Hanya sekali saya kehilangan beberapa pekerjaan dan itu karena saya membuat komitmen saya terlalu besar (lihat kebiasaan buruk di atas). Jika Anda sering melakukan, dengan git kecil git pasti akan menjadi sekutu terbaik Anda.
Bagi saya git membuka pikiran saya tentang apa sebenarnya kontrol sumber. Yang lain sebelumnya hanyalah upaya untuk mendapatkannya, git adalah yang pertama, yang ada di pikiran saya, mengerti. Yang mengatakan, saya tidak mencoba DVCS lain, sangat mungkin pernyataan ini bisa melebar ke seluruh keluarga.
Satu saran terakhir, baris perintah adalah teman Anda. Bukan untuk mengatakan bahwa alat grafis tidak baik, justru sebaliknya tetapi saya benar-benar groked git ketika saya turun ke baris perintah dan mencobanya sendiri. Ini sebenarnya dibuat dengan sangat baik, mudah diikuti dengan sistem bantuan yang sangat komprehensif. Masalah terbesar saya adalah terikat pada konsol jelek di windows sampai saya menemukan alternatif.
Sekarang saya menggunakan keduanya, Eclipse integrasi dengan Git untuk melihat apa yang terjadi secara real time dan melakukan beberapa operasi seperti diffs, menjelajahi sejarah file, dll. Dan baris perintah untuk percabangan, penggabungan, mendorong, mendapatkan dan pohon log yang lebih kompleks . beberapa scripting dasar dan saya tidak pernah begitu produktif dalam hal kontrol sumber dan saya tidak pernah memiliki begitu banyak kendali atas sumber saya.
Semoga berhasil, semoga ini membantu.
sumber
Saya berpengalaman dalam beberapa model percabangan yang canggih, dan menggunakannya di tempat kerja. Namun, ketika saya bekerja sendirian di proyek, saya melakukan persis apa yang Anda lakukan sekarang. Saya selalu dapat membuat cabang setelah fakta jika saya membutuhkannya, tetapi saya hampir tidak pernah melakukannya. Bekerja sendiri, saya jarang memiliki perbaikan bug yang tidak bisa menunggu sampai tugas saya saat ini selesai. Saran saya adalah membiasakan diri dengan beberapa model percabangan, tetapi tidak ada hal-hal rumit yang perlu Anda lakukan.
sumber
Untuk model yang lebih sederhana, Anda dapat melihat apa yang dilakukan GitHub. "Aliran GitHub" sangat sederhana, dan ada panduan yang sangat bagus di sini: https://guides.github.com/introduction/flow/index.html
Ringkasan (dari blog Scott Chacon ):
sumber