Bagaimana aku mengabaikan pesan galat berikut pada Git pull?
perubahan lokal Anda ke file-file berikut akan ditimpa oleh gabungan
Bagaimana jika saya ingin **** menimpa mereka?
I've mencoba hal-hal seperti git pull-f
, tapi tidak ada yang berhasil.
Untuk menjadi jelas, saya hanya ingin menimpa perubahan tertentu, tidak semuanya.
Jika anda ingin menghapus semua perubahan lokal dari copy pekerjaan anda, cukup simpanan mereka:
git stash save --keep-index
Jika anda don't membutuhkan mereka lagi, anda sekarang bisa drop yang stash:
git stash drop
Jika anda ingin menimpa hanya bagian-bagian tertentu dari perubahan lokal anda, ada dua kemungkinan:
Melakukan segala sesuatu yang anda don't ingin menimpa dan gunakan metode di atas untuk beristirahat.
Menggunakan git checkout path/ke/file/untuk/kembaliuntuk perubahan yang anda ingin menimpa. Pastikan bahwa file tidak dipentaskan melalui
git reset KEPALA path/ke/file/untuk/kembali`.
Anda dapat melakukan perubahan anda sebelum anda melakukan penggabungan, atau anda menyimpan mereka:
git simpanan menyimpan
git merge asal/master
git simpanan pop
Jika anda ingin membatalkan perubahan lokal pada satu file yang dapat anda lakukan sebagai berikut:
git checkout -- <File>
Kemudian anda bisa menimpa file[s] dengan versi terbaru hanya melakukan:
git pull
Kadang-kadang, tidak satupun dari mereka bekerja. Mengganggu, karena JIKA hal yang saya pikirkan, apa yang akan bekerja adalah deleting file, then menarik. Bukan berarti saya merekomendasikan solusi ini, tapi jika file doesn't ada, git tidak't sia-sia memberitahu anda bahwa anda perubahan (yang bahkan mungkin tidak ada perubahan) akan mendapatkan diganti, dan akan membiarkan anda melanjutkan.
Gunakan dengan resiko anda sendiri.
Dalam beberapa Git, anda dapat menambahkan -r
/--rebase
di tarik
perintah untuk rebase anda saat ini cabang di atas hulu cabang setelah mengambil. Peringatan harus hilang, tapi ada risiko bahwa anda'll mendapatkan beberapa konflik yang anda'll butuhkan untuk memecahkan.
Atau anda dapat checkout cabang berbeda dengan paksa, kemudian kembali ke master
lagi, misalnya:
git checkout origin/master -f
git checkout master -f
Kemudian tarik lagi seperti biasa:
git pull origin master
Dengan menggunakan metode ini dapat menghemat waktu anda menyembunyikannya (gitsimpanan
) dan potensi masalah izin, reseting file (git reset --KEPALA keras
), menghapus file (git bersih -fd
), dll. Juga di atas itu's mudah untuk diingat.
Masalah ini adalah karena anda telah membuat perubahan secara lokal ke file/s dan file yang sama/s ada dengan perubahan dalam repositori Git, jadi sebelum pull/push, anda akan perlu menyimpan perubahan lokal:
Untuk menimpa perubahan lokal dari file tunggal:
git reset file/to/overwrite
git checkout file/to/overwrite
Untuk menimpa semua daerah perubahan (perubahan di semua file):
git stash
git pull
git stash pop
Juga masalah ini mungkin karena anda berada di cabang yang tidak bergabung dengan master cabang.
git reset --hard && git bersih -df
Perhatian: Ini akan me-reset dan menghapus apapun yang tidak terlacak file.
Berikut ini adalah strategi saya untuk memecahkan masalah.
Pernyataan Masalah
Kita perlu untuk membuat perubahan dalam lebih dari 10 file. Kami mencoba MENARIK (git pull asal master)
, tapi Git berteriak:
kesalahan: perubahan lokal Anda ke file-file berikut akan ditimpa dengan bergabung: Silahkan, melakukan perubahan atau simpanan mereka sebelum anda dapat bergabung.
Kami mencoba untuk mengeksekusi melakukan
dan kemudian menarik
, tetapi mereka tidak't bekerja dengan baik.
Solusi
Kami berada di kotor tahap sebenarnya, karena file yang di "Area Stage".k."Index Area" dan beberapa berada di "Kepala Daerah".k."lokal Git direktori". Dan kami ingin menarik perubahan dari server.
Cek link ini untuk informasi tentang berbagai tahap Git secara jelas: GIT Tahap
Kami mengikuti langkah-langkah berikut
simpanan
(ini membuat kami direktori kerja bersih. Perubahan anda disimpan pada stack dengan Git).git pull asal master
(Pull perubahan dari server)git simpanan menerapkan
(Diterapkan semua perubahan dari stack)git commit-m 'pesan'
(Melakukan perubahan)git push origin master
(Mendorong perubahan ke server)git simpanan drop
(Drop stack)Let's memahami kapan dan mengapa anda perlu menyembunyikannya
Jika anda berada di kotor negara, berarti anda membuat perubahan dalam file anda dan kemudian anda dipaksa, karena alasan apapun, untuk menarik atau ** beralih ke cabang lain untuk beberapa pekerjaan yang mendesak, sehingga pada titik ini anda dapat't tarik atau beralih sampai anda melakukan perubahan anda. The simpanan
perintah berikut sebagai uluran tangan.
Dari buku ProGIT, 2nd Edition:
Sering kali, ketika anda telah bekerja pada bagian dari proyek anda, hal-hal yang di berantakan negara dan anda ingin beralih cabang untuk bit untuk bekerja pada sesuatu yang lain. Masalahnya adalah, anda tidak ingin melakukan komitmen setengah-selesai bekerja hanya sehingga anda bisa mendapatkan kembali ke titik ini nanti. Yang jawaban untuk masalah ini adalah git menyimpan perintah. Menyembunyikan mengambil keadaan yang kotor dari direktori kerja anda – yaitu, anda diubah dilacak file dan mengadakan perubahan – dan menyimpannya pada tumpukan yang belum selesai perubahan yang anda dapat mengajukan permohonan kembali setiap saat.
Jika anda ingin menimpa perubahan tertentu, anda perlu beberapa cara untuk mengatakan hal yang ingin kau lupakan.
Anda bisa mencoba selektif menyimpan perubahan yang anda ingin meninggalkan menggunakan git stash-patchdan kemudian menjatuhkan tumpukan dengan
git simpanan drop`. Anda kemudian dapat menarik jauh perubahan dan menggabungkan mereka seperti biasa.
Jika anda ingin menyimpan perubahan produksi pada server, hanya dengan bergabung menjadi new item konfigurasi. Metode pengolahan adalah sebagai berikut:
git stash
git pull
git stash pop
Mungkin anda don't melaksanakan semua operasi. Anda dapat mengetahui apa yang dapat anda lakukan berikutnya.
Kesalahan "perubahan lokal Anda ke file-file berikut akan ditimpa oleh merge" datang karena anda memiliki beberapa perubahan di repo lokal yang BELUM berkomitmen belum, jadi sebelum menarik dari remote repo hanya melakukan perubahan di repo lokal.
Katakanlah anda remote repo memiliki beberapa cabang xyz dan anda ingin bahwa remote repo xyz cabang yang akan digabungkan ke (disalin ke) repo lokal xyz cabang kemudian,
{
git checkout xyz //check out to the respective branch in local repo
git commit -m "commiting message" //commit changes if any, in local repo branch xyz
git pull //it pulls remote xyz branch into local xyz branch
}