Saya menggunakan Git 1.7.4.1. Saya ingin mendapatkan versi terbaru dari kode saya dari repositori, tetapi saya mendapatkan kesalahan ...
$ git pull
….
M selenium/ant/build.properties
….
M selenium/scripts/linux/get_latest_updates.sh
M selenium/scripts/windows/start-selenium.bat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'.
Saya telah menghapus salinan lokal dari file yang dikeluhkan oleh alat ini, tetapi saya masih mendapatkan kesalahan. Bagaimana cara memeriksa versi terbaru dari repo jarak jauh? - Dave
git fetch
dulu. Saya tidak mendapatkan konflik, tetapi saya mendapatkan kode versi terbaru.Jawaban:
Jika Anda tidak peduli dengan perubahan lokal (termasuk file atau subrepositori yang tidak dilacak atau dibuat yang kebetulan ada di sini) dan hanya ingin salinan dari repo:
Sekali lagi, ini akan menghapus setiap perubahan yang Anda buat secara lokal jadi gunakan dengan hati-hati. Pikirkan
rm -Rf
ketika melakukan ini.sumber
git clean -f
sebenarnya bukan bagian dari jawabannya. Ini akan menghapus file yang tidak disimpan di repositori (misalnya dalam kasus saya, file log); Anda tidak perlu melakukan ini untukgit pull
kembali bekerja,git reset --hard HEAD
cukup sudah.git clean -f
adalah penting jika Anda ingin nyata up bersih repositoy Anda. Ini setara dengan melakukan "Hapus semua dari folder -> Dapatkan versi Terbaru / Dapatkan Spesifik" di TFS dan dalam kasus saya, inilah yang saya inginkan.Kasus 1: Jangan pedulikan perubahan lokal
Solusi 1: Dapatkan kode terbaru dan setel ulang kode
Solusi 2: Hapus folder dan clone lagi: D
Kasus 2: Peduli dengan perubahan lokal
Solusi 1: tidak ada konflik dengan versi online-baru
akan melaporkan sesuatu seperti:
Kemudian dapatkan versi terbaru
Solusi 2: konflik dengan versi online-baru
akan melaporkan sesuatu seperti:
Komit perubahan lokal Anda
Cobalah untuk mendapatkan perubahan (akan gagal)
akan melaporkan sesuatu seperti:
Buka file konflik dan perbaiki konflik. Kemudian:
akan melaporkan sesuatu seperti:
Info lebih lanjut: Bagaimana cara menggunakan 'git reset --hard HEAD' untuk kembali ke komit sebelumnya?
sumber
Saya menduga apa yang terjadi mungkin karena Anda telah menghapus file yang Anda modifikasi (karena Anda tidak peduli dengan perubahan itu) dan sekarang git menganggap penghapusan sebagai perubahan.
Berikut ini adalah pendekatan yang memindahkan perubahan Anda dari copy pekerjaan Anda ke "simpanan" (jika benar-benar ternyata Anda membutuhkannya lagi), maka Anda dapat menarik perubahan terbaru ke bawah dari hulu.
Jika Anda ingin mengambil file Anda (kemungkinan konflik dengan perubahan hulu dan semuanya), jalankan a
git stash apply
untuk menempelkan perubahan itu di atas kode Anda. Dengan begitu, Anda memiliki pendekatan "undo".sumber
git stash pop
kecuali jika Anda ingin sejarahAnda harus menggabungkan file Anda terlebih dahulu. Lakukan
git status
untuk melihat file apa yang perlu digabungkan (berarti Anda harus menyelesaikan konflik terlebih dahulu). Setelah ini selesai, lakukangit add file_merged
dan lakukanpull
lagi.sumber
coba kode ini
sumber
Jika Anda hanya ingin membuang semua yang ada di folder kerja Anda (mis. Hasil gabungan gagal atau batal) dan kembali ke komit sebelumnya yang bersih, lakukan a
git reset --hard
.sumber
Saya mengerti Anda ingin membuang perubahan lokal Anda dan menarik turun apa yang ada di remote Anda?
Jika semuanya gagal, dan jika Anda (cukup dimengerti) takut akan "reset", hal yang paling sederhana adalah mengkloning asal ke direktori baru dan buang yang lama.
sumber
Dengan Menjalankan perintah ini, Anda akan mendapatkan tag terbaru yang biasanya adalah versi proyek Anda:
sumber
Kedengarannya bagi saya seperti Anda memiliki masalah core.autocrlf. core.autocrlf = true dapat memberikan masalah seperti yang Anda jelaskan di Windows jika baris baru CRLF diperiksa ke dalam repositori. Coba nonaktifkan core.autocrlf untuk repositori, dan lakukan hard-reset.
sumber
Jika Anda menggunakan Git GUI, pertama ambil kemudian bergabung.
Fetch via Remote menu >> Fetch >> Origin. Gabungkan melalui menu Gabung >> Gabungkan Lokal.
Dialog berikut muncul.
Pilih tombol radio cabang pelacakan (juga secara default dipilih), biarkan kotak kuning kosong dan tekan gabungkan dan ini akan memperbarui file.
Saya sudah mengembalikan beberapa perubahan lokal sebelum melakukan langkah-langkah ini karena saya ingin membuangnya, jadi saya tidak perlu menghilangkan melalui penggabungan nanti.
sumber