Saya adalah pengembang baru - ini adalah posisi pemrograman pertama saya.
Masalah saya adalah ini: Kami menggunakan git
- Saya memotong cabang dari develop
cabang kami , lalu saya mulai mengerjakan tugas kecil yang telah saya tugaskan. Ini sangat lambat, karena saya tidak berpengalaman. Pada saat saya siap untuk menggabungkan cabang saya kembali ke develop
yang lain telah membuat begitu banyak perubahan yang menyelesaikan konflik sangat besar (sebenarnya tampaknya lebih mudah untuk membatalkan pekerjaan saya dan memulai kembali pada tugas, yang tentu saja bukan solusi yang berkelanjutan ).
Bagaimana saya mengatasi ini? Apakah ada taktik yang bisa saya gunakan selain 'lebih baik dalam pengkodean'? Saya bermaksud untuk membicarakan hal ini dengan penyelia saya minggu depan.
Jawaban:
Anda mendapatkan gabungan konflik jika perubahan yang Anda lakukan di cabang Anda dekat dengan perubahan yang dilakukan rekan Anda di
develop
cabang sementara itu, yaitu, jika Anda dan rekan Anda mengubah baris kode yang sama atau baris yang berdekatan di file yang sama.Jadi untuk mengurangi kemungkinan menggabungkan konflik, Anda dapat mencoba menggabungkan lebih awal sehingga kolega Anda mengubah lebih sedikit jalur sementara, atau Anda dapat mencoba mengubah lebih sedikit garis sendiri.
Untuk mengubah lebih sedikit garis sendiri, pastikan untuk hanya membuat perubahan terkait dengan tugas Anda.
Jika Anda perlu bereksperimen dengan berbagai cara untuk mencapai tujuan Anda, mungkin beberapa eksperimen Anda mengubah garis yang tidak perlu diubah? Batalkan perubahan ini sebelum bergabung.
Ada juga beberapa perintah Git yang dapat membantu Anda mengubah sesedikit mungkin baris:
git diff
dangit diff --staged
untuk melihat baris mana yang Anda ubah.git add -p
untuk hanya menambahkan beberapa perubahan Anda dalam file.git commit --amend
dangit rebase -i
untuk mengubah komit yang sudah Anda buat di cabang fitur lokal Anda sebelum mendorongnya ke repositori Git lainnya.(Mengubah sebagai beberapa baris mungkin juga dapat membuat lebih mudah untuk meninjau pekerjaan Anda atau menggunakan alat-alat yang bekerja pada perbedaan antara melakukan seperti
git cherry-pick
,git rebase
,git bisect
, dangit blame
.)Tetapi bahkan jika Anda mengurangi kemungkinan menggabungkan konflik, Anda masih akan sering mengalami konflik menggabungkan. Jadi jangan takut pada mereka, tetapi belajar bagaimana menyelesaikan konflik.
sumber
git fetch
dangit diff origin/develop
akan menampilkan pratinjau gabungan Anda (semacam). Memberi Anda kesempatan untuk membersihkan perubahan Anda sebelum Anda mendapatkan banyak konflik yang tidak berguna.Saya menganggap Anda menggunakan git. Jika demikian, manfaatkan
git rebase -i
(-i
sarana interaktif). Jadikan itu tugas harian (bahkan lebih sering, jika perlu) untuk rebase cabang Anda terhadap cabang berkembang. Ini membawa perubahan secara bertahap setiap hari (setidaknya) untuk menjaga agar cabang fitur Anda tetap terbarui. Jika ada konflik selama rebase harian Anda, Anda perlu berbicara dengan tim Anda tentang siapa yang mengerjakan apa.Jika Anda menjalankannya setiap hari, Anda mungkin tidak akan membutuhkan bagian interaktifnya. Biarkan saja melakukan hal itu.
Saya adalah pengembang yang cukup berpengalaman, dan masih butuh sedikit waktu untuk mempercepat proyek baru. Dalam kasus Anda, sepertinya Anda memiliki beberapa orang yang mengerjakan proyek yang sama secara bersamaan, jadi itu adalah proyek yang sangat besar, atau proyek baru yang berkembang dengan cepat. Dalam kedua kasus itu, jangan khawatir jika Anda membutuhkan beberapa bulan untuk masuk ke arus. Jika saya berganti proyek selama 2 atau 3 minggu dan kemudian beralih kembali, saya perlu beberapa jam (atau bahkan satu atau dua hari) untuk sepenuhnya "kembali ke" proyek yang saya tulis 100% sendiri!
Singkatnya, jangan khawatir tentang menjadi lambat saat ini. Cara untuk menjadi lebih baik adalah terus berlatih. Jangan takut untuk bertanya kepada pengembang lain tentang aspek proyek yang tidak Anda mengerti.
SUNTING:
Atau gunakan
merge
. Itu juga pilihan. Jadi, di atas akan menjadi: "menggunakangit rebase -i
(-i
sarana interaktif) ataugit merge
". Mengenai yang mana yang akan digunakan, bicarakan dengan anggota tim Anda yang lain. Mereka mungkin (atau mungkin tidak) memiliki preferensi yang kuat. Jelas beberapa orang memang memiliki preferensi yang kuat.sumber
git pull
yang hanya kombinasi darigit fetch
dangit merge
(atau Anda dapat menambahkan--rebase
untuk melakukan rebase bukan penggabungan). Dengan asumsi Anda hanya sekitar satu hari di belakang, maka pada LAN ini kemungkinan akan selesai dalam waktu kurang dari detik, mungkin butuh beberapa detik melalui internet. Bahkan melalui internet dan dengan konflik penggabungan kecil, Anda biasanya dapat terkini dan digabungkan dengan bersih dalam waktu kurang dari satu menit. Menghabiskan penyebaran lima menit sepanjang minggu jauh lebih baik daripada menghabiskan satu jam di akhir minggu untuk menangani konflik gnarly merger.git bisect
: Benda-benda yang dirubah bahkan tidak dapat dikompilasi, jadigit bisect
tidak ada gunanya pada komitmen yang dihasilkan rusak. @maaartinus: Saya, lebih suka, sejarah sejati daripada sejarah linier. Jika Anda rebase, Anda benar-benar harus memeriksa setiap komit baru untuk kewarasan untuk menghindari kebohongan berbahaya.Ini mungkin merupakan tanda rekayasa perangkat lunak yang buruk di pihak perusahaan. Terlalu banyak ketergantungan antar, masalah yang berbeda dengan fitur yang tumpang tindih, berusaha untuk mengatasi masalah dalam urutan yang salah, dll. Dapat menyebabkan situasi yang Anda gambarkan. Saya sarankan secara teratur bergabung
develop
ke cabang Anda selama pengembangansumber
Jawaban yang diterima menurut saya lebih bersifat teknis "bagaimana menggunakan Git lebih baik", saya pikir ini lebih merupakan masalah tim daripada masalah teknik atau perkakas.
Jika Anda menghadapi banyak konflik gabungan, itu berarti Anda dan orang lain dalam tim saling melangkah.
Anda atau mereka harus bertujuan untuk mengembangkan ruang pribadi saat coding dan menghindari bekerja di daerah yang sudah sibuk.
Di tim saya, kami cenderung memiliki tingkat tugas yang tinggi.
Saya biasanya akan mengambil kepemilikan penuh atau lengkap dari dua atau tiga file sekaligus dan mengerjakannya di cabang selama satu atau dua hari paling banyak.
Biasanya jika orang lain menyentuh file-file itu hanya jika benar-benar diperlukan untuk tugas mereka sendiri, kita umumnya tidak bekerja sama di blok tugas yang sama sekali!
Jika Anda menemukan bahwa Anda harus menggabungkan banyak hal, maka semua kode tim Anda ada di satu tempat (yang merupakan sesuatu yang harus dihindari dengan sendirinya) atau semua tugas Anda.
Semua yang dikatakan, sebagai pengembang baru Anda mungkin tidak dalam posisi untuk menegakkan, meminta atau bahkan benar-benar menyarankan segala bentuk restrukturisasi.
Apa yang saya harapkan adalah bahwa tugas Anda telah ditetapkan sebagai hal "belajar-tali" yang seharusnya dapat didekati secara wajar di tingkat keterampilan Anda untuk memudahkan Anda masuk ke dalam tim. Mereka mungkin diambil dari tugas rekan kerja yang masih bekerja di area yang sama, karenanya konflik gabungan Anda.
Solusi untuk hal ini adalah dengan menghentikannya, menyelesaikan masalah, menangani konflik penggabungan sebaik mungkin dan jangan terlalu khawatir, selama Anda melakukan yang terbaik, manajer Anda harus khawatir. kemajuan Anda.
Anda akan menjadi lebih cepat dan lebih percaya diri saat melangkah,
sumber
Hal terpenting dari penggabungan adalah semakin lama Anda menunggu, semakin menyakitkan hal itu. Dan masalahnya tumbuh lebih dari linear. Tiga kali lebih banyak konflik adalah sembilan kali lebih banyak pekerjaan. Ada beberapa strategi:
Gabungkan dengan cabang pengembangan setiap kali ada perubahan, sehingga Anda selalu dekat dengannya, dan tidak pernah memiliki banyak konflik.
Jika Anda membutuhkan waktu lama, mungkin itu karena Anda menghabiskan sebagian besar waktu untuk mencari tahu perubahannya, dan kemudian sedikit waktu untuk mengimplementasikan perubahan tersebut. Jika demikian, gabungkan dengan cabang pengembangan sebelum Anda memulai perubahan kode aktual.
Bicaralah dengan kolega Anda tentang strategi untuk menghindari konflik. Anda mendapat konflik jika dua orang mengedit kode yang sama. Bukan hanya file yang sama, tetapi kode yang sama. Jadi saya memerlukan functionA fungsi baru dan Anda memerlukan functionB fungsi baru, dan kami berdua menambahkannya di akhir file yang sama, kami memiliki konflik. Jika kita menambahkannya di tempat yang berbeda, tidak ada konflik. Jika kami berdua menambahkannya di tempat di file yang secara logis berada, kemungkinan kami tidak akan mengalami konflik.
Jika Anda memiliki konflik, dapatkan alat diff yang baik, sehingga Anda dapat membandingkan cabang pengembangan sebelum penggabungan Anda, kode Anda sebelum penggabungan, kode asli Anda, dan kode gabungan, dan menggabungkan dengan tangan.
Kasus terburuk: Anda tidak membuang pekerjaan Anda, tetapi gunakan alat diff yang bagus untuk mengetahui dengan tepat perubahan apa yang Anda buat, cabang lagi dari pengembangan, dan terapkan semua perubahan yang Anda buat secara manual alih-alih mengetik ulang.
sumber
Menangani konflik
git merge
seringkali lebih sederhana daripada digit rebase
. Di Git gabungan Anda dapat melihat seluruh daftar file yang telah diubah sekaligus. Tidak peduli berapa banyak komitmen yang telah dilakukan oleh rekan kerja lain, Anda harus bergabung satu kali . Dengan alur kerja rebase, Anda mungkin mendapatkan konflik yang sama berulang-ulang dan harus meninjaunya secara manual. Anda bisa memperbaiki komit ke-13 dan merasa seperti Anda tidak bisa melihat cahaya keluar dari terowongan .Berdasarkan pengalaman saya, ketika saya mencoba untuk menyelesaikan konflik rebase secara naif saya akhirnya kehilangan modifikasi seseorang atau dengan aplikasi yang bahkan tidak dapat dikompilasi. Seringkali saya dan rekan kerja melakukan banyak pekerjaan tetapi menjadi kewalahan oleh kerumitan mengulangi konflik sehingga kami harus membatalkan dan kehilangan pekerjaan kami sebelumnya setelah beberapa rebase dilakukan.
Saya akan menyarankan Anda beberapa teknik tetapi mereka hanya bisa membantu penggabungan menjadi lebih mudah daripada mengotomatiskan tugas.
Saya juga telah melihat beberapa kebiasaan buruk dalam alur kerja Git di tim saya. Seringkali orang terlalu berkomitmen pada cabang mereka. Saya pribadi menyaksikan pengembang menambahkan 10 hingga 20 komit berlabel "fix", masing-masing komit satu atau dua baris. Kebijakan kami adalah bahwa komit diberi label dengan tiket JIRA untuk memberi Anda ide.
@JacobRobbins menyarankan untuk membuat
git rebase
tugas harian. Saya ingin mendorong pendekatannya ke depan.Pertama, gunakan rebase sekali saja untuk mengurangi jumlah komit ke segelintir. Dan rebase hanya ke cabang pengembangan asli , yang merupakan komit dari mana Anda bercabang. Ketika saya mengatakan sedikit, saya bisa berarti 3 atau 4 (misalnya semua ujung depan, semua ujung belakang, semua tambalan basis data) atau angka yang masuk akal secara manusiawi. Setelah Anda mengonsolidasikannya, gunakan
fetch
dan kerjakan rebase Anda di cabang hulu. Ini tidak akan menyelamatkan Anda dari konflik kecuali tim Anda meninjau pendekatan mereka sendiri, tetapi akan membuat hidup Anda tidak terlalu menyakitkan.Jika Anda memiliki pertanyaan tambahan tentang tugas tertentu, jangan ragu untuk mencari dan bertanya di Stackoverflow.
[Sunting] tentang aturan no-reformat dan boy scout. Saya memiliki sedikit format ulang RE untuk menyoroti bahwa apa yang saya maksud adalah tugas memformat dari awal seluruh file sumber, termasuk kode yang tidak tersentuh oleh Anda. Bertentangan dengan untuk selalu memformat kode Anda sendiri, yang merupakan boy-scouty, sejumlah pengembang, termasuk saya, digunakan untuk memformat ulang seluruh file dengan kemampuan IDE. Ketika file itu disentuh oleh orang lain, bahkan jika baris yang terpengaruh tidak diubah dalam konten dan semantiknya, Git akan melihatnya sebagai konflik. Hanya editor yang sangat sadar bahasa yang dapat menyarankan bahwa konflik hanya terkait dengan memformat dan menggabungkan secara otomatis fragmen berformat terbaik. Tapi saya tidak punya bukti alat semacam itu.
Lagi pula, aturan pramuka tidak memerintahkan Anda untuk membersihkan kekacauan orang lain. Hanya milikmu.
sumber
Pertama, jangan berpikir untuk membuang perubahan Anda. Anda akan kehilangan peluang untuk mempelajari proses penggabungan.
Kedua, cari orang yang mengerjakan file yang menyebabkan konflik. Anda bisa melihat sejarahnya. Bicaralah dengan orang tersebut dan selesaikan konflik dalam file-file itu. Lakukan hal yang sama untuk konflik lainnya.
Jika ada terlalu banyak konflik, tugas Anda mungkin kecil, tetapi berulang. Cobalah untuk menemukan polanya. Ini akan membantu dalam menyelesaikan konflik dengan alat klien Git UI. Saya menggunakan TortoiseGit. Ini membantu dalam penggabungan.
Dan untuk menghindari di masa depan,
Ini adalah praktik yang sangat baik untuk menggabungkan cabang pengembangan secara teratur ke cabang fitur Anda.
Jika Anda mengaktifkan CI, lihat apakah alat CI menyediakan pembangunan cabang. Ini harus dibangun pada setiap cek di Anda buat di cabang fitur Anda, tetapi setelah gabungan mengembangkan cabang.
sumber
Anda harus menjalankan secara teratur (setiap hari) perintah 'git fetch' (bukan git pull) dari cabang pengembangan Anda. Ini akan membuat orang lain melakukan perubahan dan membawanya ke cabang fitur Anda tanpa berusaha mengintegrasikan perubahan ke cabang Anda.
Ini adalah sesuatu yang harus Anda bicarakan dengan pengembang utama (tidak harus manajer Anda), karena perusahaan Anda mungkin memiliki standar sendiri atau cara yang disarankan untuk menangani masalah ini; ini sangat umum. Jangan tunggu sampai minggu depan - cari tahu prosesnya sekarang, dan tanyakan apakah Anda dapat melakukan beberapa pekerjaan sepele (seperti memformat kode atau menambahkan komentar) sehingga Anda dapat menguji prosesnya.
sumber
Jelas hal pertama adalah menghindari banyak orang mengerjakan file yang sama sejak awal, setidaknya dengan cara yang mengarah pada konflik yang sulit. Menambahkan hal-hal ke dalam penghitungan bukanlah masalah asalkan format kode yang baik digunakan. Mengubah aliran kontrol dengan cara yang berbeda dan memindahkan kode adalah jauh lebih rumit. Kadang-kadang ini tidak bisa dihindari. Anda harus mengajukan pertanyaan saat menyelesaikan konflik yang benar-benar rumit.
Yang mengatakan, saya melihat banyak jawaban merekomendasikan untuk bergabung / rebase ke pengembangan secara teratur. Saya akan jauh kurang antusias tentang nasihat semacam itu. Tujuan Anda pada titik ini adalah membuat proses penyelesaian konflik semudah dan seaman mungkin. Satu hal yang akan sangat membantu dengan proses itu adalah untuk memiliki banyak tes regresi segera tersedia, termasuk yang baru yang merupakan bagian dari fitur baru Anda. Jika Anda menyinkronkan cabang Anda secara teratur dengan pengembangan, Anda akhirnya harus menyelesaikan konflik sementara Anda setengah selesai benar-benar mengimplementasikan fitur Anda. Dan itu berarti akan jauh lebih sulit untuk mencari tahu apa yang seharusnya dilakukan oleh kode, karena Anda belum selesai melakukannya. Sebelum mencoba untuk bergabung, pastikan cabang Anda adalah unit perubahan yang koheren. Bahkan lebih baik,
Saya mencoba untuk tidak masuk ke dalam manfaat rebase atas penggabungan yang mungkin untuk pertanyaan lain. Dalam konteks ini alat tidak terlalu penting.
sumber
Ini terdengar seperti skenario ideal untuk pemrograman berpasangan !
Info lebih lanjut tentang manfaat dan pendekatan dasar:
https://gds.blog.gov.uk/2018/02/06/how-to-pair-program-effectively-in-6-steps/
Secara alami, Anda akan mempercepat dari waktu ke waktu untuk bekerja sendiri, tetapi hal itu bisa menakutkan sampai saat itu tiba, dan kadang-kadang butuh waktu yang lama. Juga, sementara orang dapat belajar dengan cepat berada dalam lingkungan yang penuh tekanan selalu ditekan untuk mengejar ketinggalan, orang lain yang tidak belajar dengan baik di bawah tekanan terus-menerus akan terhambat.
Alih-alih bekerja pada cabang sendiri dan mencoba untuk mengikuti pengembang lain yang jelas jauh lebih cepat daripada Anda, Anda malah akan bekerja secara langsung (PC yang sama) dengan pengembang lain. Dengan cara ini Anda mendapatkan saran instan dan mungkin akan mengambil tips cara mempercepat dll.
Anda harus mengetahui pendekatan terbaik untuk kode tertentu dalam proyek Anda, karena pemrograman pasangan tidak selalu masuk akal untuk beberapa proyek - meskipun bisa dibilang selalu masuk akal untuk belajar bahkan jika Anda hanya duduk dan menonton seseorang yang lebih berpengalaman daripada Anda (Selama mereka adalah pengembang yang baik, pengalaman tidak selalu berarti mereka menggunakan praktik yang baik).
Duduk dengan dev yang lebih cepat dan lebih berpengalaman berpotensi membantu dengan:
Saran saya adalah membahas pemrograman berpasangan dengan pengembang lainnya dan kemudian mendekati supervisor Anda. Jika mereka layak, mereka akan menghargai inisiatif Anda yang memiliki lebih banyak kesempatan bagi Anda untuk mengajukan pro pemrograman berpasangan (jika mereka membutuhkannya, kebanyakan orang mengetahuinya dan itu adalah pengetahuan umum mengapa itu membantu).
sumber
Ada beberapa masalah mendasar di sini. Masalah Anda menggabungkan kemungkinan besar bukan kesalahan Anda dan lebih umum merupakan gejala praktik buruk.
1) Idealnya Anda akan menggabungkan cabang Anda menjadi berkembang setiap hari. Cobalah memiliki kode yang berfungsi setidaknya sekali sehari yang lulus semua tes sehingga Anda dapat bergabung menjadi pengembangan.
2) Jika Anda tidak memiliki kode kerja di titik mana pun selama hari kerja biasa, Anda mungkin memiliki terlalu banyak kode untuk dikerjakan. Anda perlu memecah tugas Anda menjadi tugas-tugas kecil yang dapat diselesaikan (idealnya satu sama lain) lebih cepat sehingga Anda dapat bergabung.
3) File proyek Anda cenderung terlalu besar. Jika ada banyak konflik gabungan untuk file, ada terlalu banyak orang yang mengerjakan satu file. Idealnya sesuatu yang dikerjakan seseorang harus terpisah dari apa yang dikerjakan orang lain.
4) Tim Anda mungkin terlalu besar. Jika Anda merasa lebih mudah untuk membuang seluruh fitur dan memulai kembali, kemungkinan ada terlalu banyak orang yang melakukan kode ke repositori yang sama.
5) Anda mungkin tidak memiliki standar format kode yang konsisten. Jika Anda tidak konsisten menggunakan pemformatan kode yang sama, Anda akan mendapatkan banyak konflik berbeda untuk kode yang sama. Bergantung pada bagaimana git Anda diatur, ini bahkan mungkin mengarah ke konflik spasi putih (ujung baris, lekukan, tab vs spasi).
6) Orang mungkin mendorong perubahan mereka langsung ke cabang pengembangan.
Inilah yang dapat Anda lakukan: 1) Jika Anda tidak dapat bergabung menjadi berkembang setiap hari, gabungkan / rebase berkembang menjadi cabang Anda setiap hari (atau lebih sering).
2) Cobalah memisahkan kode Anda dari kode orang lain.
3) Bicaralah dengan seluruh tim tentang fitur yang lebih kecil, standar pengkodean yang konsisten, dan pengaturan kode yang lebih baik (file yang lebih kecil, fungsi yang lebih kecil).
sumber
Sebagian besar waktu, inilah yang saya lakukan, pertama kali saya memperbaiki bug atau membuat perubahan pada sistem, saya belajar tentang cara melakukannya. Lain kali saya memperbaiki bug yang sama hanya butuh 1% dari waktu karena saya sekarang mengerti masalahnya.
Saya juga menemukan bahwa ketika saya mengulang sedikit pekerjaan, saya menulis kode yang lebih baik .....
Karenanya tidak ada yang salah dengan membuat cabang baru dari master, mengulang pekerjaan Anda di dalamnya, sambil menggunakan "cabang pribadi" Anda untuk mengingatkan Anda apa yang perlu Anda lakukan.
Mungkin juga Anda telah menemukan cara untuk membagi perubahan Anda menjadi bagian-bagian yang logis dan benar, masing-masing yang digabung ke cabang master setelah selesai. Misalnya, tes unit dan perubahan pada kode backend dapat dilakukan, dan digabungkan. Kemudian dalam operasi terpisah, Anda dapat melakukan perubahan UI yang memanfaatkannya, karenanya memiliki risiko lebih kecil untuk orang lain mengedit file UI yang sama.
sumber
Jika Anda tidak ingin terlalu sering menggabungkan cabang pengembangan ke cabang Anda, Anda bisa mendapatkan alur kerja yang lebih mirip dengan menggunakan svn
git pull --rebase
. Ini akan menarik komit baru dan mengulang komit Anda pada mereka. Ini berarti ketika Anda menggabungkan cabang Anda menjadi berkembang, itu akan menjadi penggabungan maju cepat (seolah-olah Anda akan menambahkan semua komitmen masa lalu Anda satu per satu) dan tidak memiliki konflik penggabungan, karena Anda menyelesaikannya semua selamagit pull --rebase
.Tetapi semakin banyak komitmen yang Anda buat sebelum menggabungkan salah satu cabang Anda menjadi berkembang atau berkembang menjadi cabang Anda, semakin rumit rebase berikutnya akan didapat dan hal itu sedikit menumbangkan rasa fitur-cabang, karena cabang Anda hanya ada selama tidak di-ungerger .
sumber
Ketika Anda bekerja di file umum, dengan cara apa pun Anda atau rekan satu tim Anda perlu menyelesaikan semua konflik sebelum penggabungan selesai maka dari awalnya, jangan kecewa . Anda masih melakukan pekerjaan proyek dan bangga dengan pekerjaan Anda. Sekarang untuk membuat langkah yang lebih cerdas, Anda dapat mengikuti beberapa saran di bawah ini.
Bagi tugas secara mandiri:
Sebelum Anda memulai pekerjaan Anda, rencanakan dan bagi seluruh tugas sedemikian rupa sehingga tugas yang ditugaskan untuk setiap anggota tim adalah sebanyak mungkin independen dan modular (untuk menghindari potensi konflik saat berkembang). Anda dapat mendekati pemimpin scrum Anda untuk menetapkan beberapa tugas independen untuk Anda karena Anda masih pemula.Gabungkan granular yang sering dilakukan:
Jangan menunggu tugas penuh untuk diselesaikan sebelum final marge. Tentu saja tugas yang lebih besar dapat dipartisi menjadi beberapa subtugas. Jadi pendekatan yang lebih baik adalah dengan menggabungkan komitmen yang lebih kecil untuk subtugas yang lebih kecil pada saat yang sama sering untuk menghindari resolusi konflik yang besar.Rebase cabang Anda sesering mungkin:
Lakukan rebase yang sering ke cabang lokal Anda dengan yang jarak jauh. Anda dapat menggunakan perintah di bawah ini untuk sering rebase cabang lokal Anda dengan yang jauh,
Sejauh ini perintah git yang paling berguna bagi saya dalam kehidupan pengembangan saya.
Bekerja sama dengan rekan tim:
Jika Anda benar-benar perlu bekerja secara paralel dengan rekan setim Anda dalam tugas bersama, silakan bekerja secara kolaboratif. Dia dapat menunggu beberapa saat untuk menghindari penyelesaian konflik yang rumit untuk kenyamanan Anda karena Anda adalah pemula dan dia adalah seorang ahli.
Biasakan dengan opsi git:
Gunakan kekuatan alat penggabungan git. Ada banyak cara mudah untuk menyelesaikan konflik saat bergabung. Strategi penggabungan kadang - kadang mungkin banyak membantu. Biasakan dan tak kenal takut dengan perintah git.
sumber