Bagaimana untuk membetulkan Git Error 'Perubahan tempatan anda ke fail berikut akan ditimpa oleh menggabungkan'

Mesej ralat " Perubahan setempat anda kepada fail berikut akan ditimpa oleh gabungan " berlaku dalam mekanisme kawalan versi Git. Kesilapan ini berlaku jika anda telah mengubah suai fail yang juga mempunyai pengubahsuaian dalam repositori jauh.

Kesalahan Git: Perubahan setempat anda kepada fail berikut akan ditimpa oleh gabungan

Mesej ralat ini dielakkan JIKA tidak ada fail yang tidak komitkan yang juga mempunyai pengubahsuaian dalam repositori jauh. Apabila mengalami mesej ini, sebaiknya berunding dengan ahli pasukan anda yang lain dan minta pendapat mereka. Sama ada anda ingin menggabungkan perubahan tempatan anda atau menyimpan versi yang ada di dalam repositori, yang terbaik adalah untuk memastikan semua orang di papan.

Apakah repositori? Apakah tolak dan tarik Git?

Repositori adalah sejenis penyimpanan untuk kod yang sentiasa diubah suai dan diperolehi oleh ahli pasukan melalui mekanisme kawalan versi GitHub. A ' Tarik' bermaksud bahawa anda sedang menarik versi terbaru repositori ke penyimpanan / IDE (Persekitaran Pembangunan Bersepadu) seperti Pycharm dan lain-lain.

Selepas Tarik, anda membuat perubahan pada kod atau menambah lebih banyak ciri. Sebaik sahaja anda selesai, anda ' Push' kod ke repositori supaya perubahan disimpan dan penambahan dibuat. Kod ini juga boleh diakses oleh orang lain.

Sekiranya anda baru dalam kawalan versi Github, disarankan agar anda meneruskan semua asasnya terlebih dahulu. Dalam artikel ini, kami menganggap bahawa anda sudah mempunyai pengetahuan asas dan mengetahui semua ins dan outs.

Bagaimana untuk membetulkan 'Perubahan setempat anda kepada fail berikut akan ditimpa oleh gabungan'?

Resolusi mesej ralat ini bergantung pada apa yang ingin anda lakukan. Anda boleh membuang perubahan tempatan anda dan menarik orang-orang dalam repositori atau anda boleh menyimpan perubahan setempat anda ke dalam stash dan tarik versi dari repositori. Ia semua bergantung kepada keutamaan anda.

Oleh itu, kami mengesyorkan agar anda berunding dengan ahli pasukan anda dan pastikan anda semua berada di halaman yang sama sebelum bergerak ke hadapan. Jika anda melakukan salah atau menolak versi yang salah, ia boleh menjejaskan seluruh pasukan.

Kaedah 1: Memaksa tarik untuk mengganti perubahan tempatan

Jika anda tidak mengambil berat mengenai perubahan yang dilakukan di dalam negara dan ingin mendapatkan kod dari repositori, anda boleh memaksa tarik. Ini akan menimpa semua perubahan setempat yang dilakukan pada komputer anda salinan salinan versi dalam repositori akan muncul.

Jalankan arahan berikut dalam IDE anda:

 reset git - keras git tarik 

Ini dengan serta-merta akan memusnahkan semua perubahan tempatan anda supaya pastikan anda tahu apa yang anda lakukan dan tidak memerlukan perubahan setempat anda.

Kaedah 2: Menjaga kedua-dua perubahan (tempatan dan dari repo)

Sekiranya anda ingin menyimpan kedua-dua perubahan (perubahan dilakukan secara setempat dan perubahan yang ada di repositori), anda boleh menambah dan melakukan perubahan anda. Apabila anda tarik, pasti akan menjadi konflik gabungan. Di sini anda boleh menggunakan alat-alat di IDE anda (seperti Difftool dan mergetool) untuk membandingkan kedua-dua kepingan kod dan menentukan perubahan yang perlu disimpan dan yang mana untuk dikeluarkan. Inilah jalan tengah; tiada perubahan akan hilang sehingga anda secara manual mengeluarkannya.

 git tambah $ the_file_under_error git commit git pull 

Apabila anda mendapat konflik bergabung, pop konflik tersebut menyelesaikan alat dan semak baris demi baris.

Kaedah 3: Menjaga kedua-dua perubahan TETAPI tidak melakukan

Keadaan ini berlaku dari semasa ke semasa di mana pemaju tidak bersedia untuk melakukan kerana ada beberapa kod yang patah sebahagian yang anda debugkan. Di sini kita boleh menyimpan perubahan dengan selamat, tarik versi dari repositori, dan kemudian unstash kod anda.

 simpan git simpan - simpan-indeks 

atau

 git stash 
 git pull git stash pop 

Sekiranya terdapat beberapa konflik selepas anda memukul stash, anda harus menyelesaikannya dengan cara biasa. Anda juga boleh menggunakan arahan:

 git stash dikenakan 

bukannya pop jika anda tidak bersedia untuk kehilangan kod yang tersekat akibat konflik.

Sekiranya gabungan itu tidak kelihatan seperti pilihan yang sesuai untuk anda, pertimbangkan untuk melakukan rebase. Rebahan adalah proses pemindahan atau menggabungkan urutan komitmen kepada komitmen asas baru. Dalam kes rebasing, ubah kod kepada:

 git stash git pull - asal mula master git stash pop 

Kaedah 4: Buat perubahan kepada bahagian 'khusus' kod anda

Jika anda ingin membuat perubahan pada bahagian tertentu kod dan tidak mahu menggantikan segala-galanya, anda boleh melakukan semua yang anda tidak mahu timpa dan kemudian ikuti kaedah 3. Anda boleh menggunakan perintah berikut untuk perubahan yang anda ingin menimpa dari versi yang ada dalam repositori:

 jalan keluar git / ke / fail / ke / kembali 

atau

 git checkout HEAD ^ path / to / file / to / revert 

Juga, anda perlu memastikan bahawa fail tidak dipentaskan melalui:

 reset git HEAD path / to / file / to / return 

Kemudian teruskan dengan arahan tarik:

 tarik tarik 

Ini kemudian akan cuba mengambil versi dari repositori.

Artikel Yang Menarik