I'm menggunakan Git 1.7.4.1. Saya ingin mendapatkan versi terbaru dari kode saya dari repositori, tapi aku'm 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'.
I've menghapus salinan lokal file alat ini mengeluh tentang, tapi saya masih mendapatkan kesalahan. Bagaimana cara memeriksa versi terbaru dari remote repo? - Dave
Jika anda don't peduli tentang setiap perubahan lokal (termasuk tidak terlacak atau file yang dihasilkan atau subrepositories yang hanya terjadi di sini) dan hanya ingin copy dari repo:
git reset --hard HEAD
git clean -xffd
git pull
Sekali lagi, ini akan nuke setiap perubahan yang anda've buatan lokal jadi gunakan dengan hati-hati. Berpikir tentang rm -Rf
ketika melakukan hal ini.
Kasus 1: tidak peduli tentang perubahan lokal
git fetch asal git reset --hard asal/[tag/cabang/commit-id biasanya: master]
rm -rf [project_folder] git clone [remote_repo]
Kasus 2: Peduli tentang perubahan lokal
git fetch asal git status
akan melaporkan sesuatu seperti:
Anda branch belakang 'asal/master' oleh 1 komit, dan dapat cepat diteruskan.
Kemudian mendapatkan versi terbaru
git pull
git fetch asal git status
akan melaporkan sesuatu seperti:
kesalahan: perubahan lokal Anda ke file-file berikut akan ditimpa oleh gabungan: file_name Silakan, melakukan perubahan atau simpanan mereka sebelum anda dapat bergabung. Batal
Melakukan perubahan lokal anda
git add . git commit-m 'Melakukan msg'
Cobalah untuk mendapatkan perubahan (akan gagal)
git pull
akan melaporkan sesuatu seperti:
Menarik adalah tidak mungkin karena anda telah unmerged file. Silakan, memperbaiki mereka dalam bekerja pohon, dan kemudian menggunakan 'git add/rm <File>' sesuai untuk menandai resolusi, atau gunakan 'git commit-a'.
Membuka konflik file dan memperbaiki konflik. Maka:
git add . git commit-m 'Memperbaiki konflik' git pull
akan melaporkan sesuatu seperti:
Sudah up-to-date.
Info lebih lanjut: https://stackoverflow.com/questions/9529078/how-do-i-used-git-reset-hard-head-to-revert-to-a-previous-commit
Saya menduga bahwa apa yang's terjadi mungkin bahwa anda've menghapus file yang dimodifikasi (karena anda tidak't peduli tentang perubahan-perubahan) dan sekarang git adalah mengambil penghapusan menjadi berubah.
Berikut adalah pendekatan yang bergerak perubahan anda keluar dari pekerjaan anda copy dan ke "stash" (dpt harus benar-benar berubah bahwa anda membutuhkan mereka lagi), sehingga anda kemudian dapat menarik terbaru perubahan yang turun dari hulu.
git stash
git pull
Jika anda pernah ingin mengambil file anda (potensi konflik dengan hulu perubahan dan semua), menjalankan git simpanan apply` untuk tetap perubahan-perubahan tersebut di atas kode anda. Dengan cara itu, anda memiliki sebuah "undo" pendekatan.
Anda harus menggabungkan file-file anda terlebih dahulu. Melakukan git status
untuk melihat apa saja berkas yang harus digabung (berarti anda perlu untuk menyelesaikan konflik pertama). Setelah ini dilakukan, lakukan git add file_merged
dan melakukan menarik
lagi.
Saya mengerti anda ingin sampah perubahan lokal anda dan tarik ke bawah apa's pada remote anda?
Jika semuanya gagal, dan jika anda're (cukup dimengerti) takut "reset", hal yang paling sederhana adalah hanya untuk mengkloning asal ke sebuah direktori baru dan tempat sampah lama.
Bagi saya, itu terdengar seperti anda're memiliki inti.autocrlf-masalah. inti.autocrlf=benar dapat memberikan masalah seperti yang anda jelaskan pada Windows jika CRLF baris diperiksa ke dalam repositori. Cobalah menonaktifkan core.autocrlf untuk repositori, dan melakukan hard-reset.
Jika anda menggunakan Git GUI, pertama fetch kemudian bergabung.
Ambil melalui Remote menu >> Fetch >> Asal. Bergabung melalui Penggabungan menu >> Menggabungkan Lokal.
Dialog berikut akan muncul.
Pilih cabang pelacakan radio button (juga secara default dipilih), meninggalkan kuning kotak kosong dan tekan menggabungkan dan ini harus memperbarui file.
Saya sudah dikembalikan beberapa perubahan lokal sebelum melakukan langkah ini karena aku ingin membuang orang-orang yang lagian jadi saya don't harus menghilangkan via merge nanti.