Memahami dan Membetulkan Konflik Git Merge
Menangani konflik gabungan dalam repositori Git ialah cabaran biasa bagi pembangun. Ia boleh mengecewakan apabila berbilang perubahan pada bahagian yang sama fail menyebabkan konflik yang memerlukan penyelesaian manual.
Dalam panduan ini, kami akan membimbing anda melalui langkah-langkah untuk mengenal pasti, menyelesaikan dan mencegah konflik gabungan. Memahami konsep ini akan membantu anda mengekalkan aliran kerja yang lancar dan cekap dalam projek anda.
Perintah | Penerangan |
---|---|
git fetch origin | Mengambil kemas kini daripada repositori jauh tanpa menggabungkannya. Berguna untuk menyemak perubahan baharu sebelum digabungkan. |
git merge origin/main | Menggabungkan cawangan yang ditentukan (asal/utama) ke dalam cawangan semasa. Jika terdapat konflik, ia perlu diselesaikan secara manual. |
git add <resolved-file> | Menambahkan fail yang diselesaikan ke kawasan pementasan, menyediakannya untuk komit seterusnya. |
git commit -m "Resolved merge conflicts" | Mencipta komitmen baharu dengan mesej yang menunjukkan bahawa konflik gabungan telah diselesaikan. |
git push origin main | Menolak komitmen tempatan ke repositori jauh, mengemas kini cawangan jauh dengan konflik yang diselesaikan. |
GitLens UI | Ciri sambungan GitLens dalam Kod Visual Studio yang menyediakan antara muka grafik untuk melihat dan menyelesaikan konflik gabungan. |
Menyelesaikan Konflik Gabungan Dijelaskan
Skrip pertama memfokuskan pada menggunakan arahan Git untuk menyelesaikan konflik gabungan melalui antara muka baris arahan. Ia bermula dengan , yang mengambil kemas kini daripada repositori jauh tanpa menggabungkannya. Ini diikuti oleh , yang cuba menggabungkan perubahan dari cawangan utama jauh ke dalam cawangan semasa. Jika terdapat konflik, anda perlu membuka setiap fail yang berkonflik secara manual dan menyelesaikan konflik tersebut. Selepas menyelesaikan, anda gunakan untuk mementaskan fail yang diselesaikan.
Kemudian, anda membuat komitmen baharu dengan untuk memuktamadkan penggabungan. Langkah terakhir ialah menolak perubahan yang diselesaikan ke repositori jauh menggunakan . Skrip kedua menunjukkan penggunaan sambungan GitLens dalam Kod Visual Studio, yang menyediakan antara muka grafik untuk menyelesaikan konflik. Ia membimbing anda untuk menarik perubahan terkini, menggunakan UI GitLens untuk menyelesaikan konflik, dan kemudian membuat pementasan, melakukan dan menolak perubahan menggunakan kawalan terbina dalam.
Menyelesaikan Konflik Gabungan Menggunakan Perintah Git
Antara Muka Baris Perintah Git Bash
# Step 1: Fetch the latest changes from the remote repository
git fetch origin
# Step 2: Merge the remote branch into your current branch
git merge origin/main
# Step 3: Identify and resolve conflicts
# Open each conflicted file in your editor and resolve manually
# Step 4: After resolving conflicts, add the resolved files
git add <resolved-file>
# Step 5: Complete the merge
git commit -m "Resolved merge conflicts"
# Step 6: Push the changes to the remote repository
git push origin main
Menggunakan Alat GUI untuk Menyelesaikan Konflik Gabungan
Kod Visual Studio dengan Sambungan GitLens
# Step 1: Open your project in Visual Studio Code
# Step 2: Install the GitLens extension if not already installed
# Step 3: Use the Source Control panel to pull the latest changes
# Step 4: When conflicts occur, navigate to the conflicted files
# Step 5: Use the GitLens UI to view and resolve conflicts
# Step 6: After resolving, stage the changes
# Step 7: Commit the resolved changes
# Step 8: Push the changes to the remote repository
Mengendalikan Konflik Gabungan Kompleks dengan Rebase
Satu lagi pendekatan untuk menyelesaikan konflik gabungan adalah menggunakan . Rebasing membolehkan anda mengalihkan atau menggabungkan urutan komit kepada komit asas baharu. Ini boleh membantu dalam mencipta sejarah projek yang lebih bersih dengan mengelakkan penggabungan yang tidak perlu. Untuk meletakkan semula cawangan semasa anda ke cawangan lain, gunakan . Semasa proses asas semula, jika terdapat konflik, Git akan menjeda dan membenarkan anda menyelesaikannya sama seperti konflik gabungan.
Selepas menyelesaikan konflik, gunakan untuk meneruskan rebase. Jika anda perlu membatalkan proses rebase pada bila-bila masa, anda boleh menggunakannya . Rebasing harus digunakan dengan berhati-hati, terutamanya pada cawangan kongsi, kerana ia menulis semula sejarah komit. Memahami dan menggunakan rebase secara berkesan boleh membawa kepada sejarah projek yang lebih diperkemas dan mudah difahami.
- Apakah konflik gabungan dalam Git?
- Konflik gabungan berlaku apabila berbilang perubahan pada bahagian yang sama fail dibuat dalam cawangan yang berbeza dan Git tidak boleh menggabungkannya secara automatik.
- Bagaimanakah saya mula menyelesaikan konflik gabungan?
- Anda boleh mula menyelesaikan konflik gabungan dengan menjalankan dan kemudian mengedit fail bercanggah secara manual.
- Apakah buat?
- mendapatkan semula kemas kini daripada repositori jauh tetapi tidak menggabungkannya ke dalam cawangan semasa anda.
- Bagaimanakah cara saya menyelesaikan gabungan selepas menyelesaikan konflik?
- Selepas menyelesaikan konflik, peringkat perubahan dengan , beri komitmen kepada mereka , dan tolak mereka menggunakan .
- Apakah perbezaan antara dan ?
- mencipta komit gabungan menggabungkan perubahan, manakala menulis semula sejarah komit untuk mencipta urutan komit linear.
- Bilakah saya harus menggunakan ?
- guna apabila anda ingin mencipta sejarah projek yang lebih bersih dan mengelakkan penggabungan yang tidak perlu, tetapi gunakannya dengan berhati-hati pada cawangan kongsi.
- Bagaimanakah saya boleh membatalkan rebase?
- Anda boleh membatalkan proses rebase pada bila-bila masa menggunakan .
- Apakah alatan yang boleh membantu menyelesaikan konflik gabungan?
- Alat seperti Visual Studio Code dengan sambungan GitLens menyediakan antara muka grafik untuk membantu menyelesaikan konflik gabungan dengan lebih mudah.
Kesimpulannya, menyelesaikan konflik gabungan dalam repositori Git melibatkan pemahaman selok-belok arahan dan alatan Git. Dengan menggunakan secara berkesan , , dan arahan lain, serta alatan GUI seperti GitLens, pembangun boleh mengekalkan aliran kerja yang bersih dan cekap. Menangani konflik dengan segera dan tepat membantu dalam memastikan sejarah komitmen projek bersih dan kerjasama lancar. Sama ada anda lebih suka baris arahan atau antara muka grafik, menguasai teknik ini adalah penting untuk mana-mana pembangun yang bekerja dengan Git.