Bagaimana cara mengabaikan kesalahan "git pull" tentang perubahan lokal saya yang akan ditimpa oleh gabungan?

Bagaimana cara mengabaikan pesan kesalahan Git pull berikut?

Perubahan lokal Anda ke file berikut ini akan ditimpa oleh gabungan.

Bagaimana jika saya ingin menulis u>

Saya mencoba hal-hal seperti git pull -f , tetapi tidak ada yang berhasil.

Agar jelas, saya hanya ingin menulis u>

383
14 янв. atur mae 14 Jan 2013-01-14 15:14 '13 pada 15:14 2013-01-14 15:14
@ 25 jawaban

Nah, dengan bantuan dua jawaban lain, saya datang dengan solusi >

 git checkout HEAD^ file/to/overwrite git pull 
237
14 янв. jawabannya diberikan mae 14 januari. 2013-01-14 17:04 '13 pada 17:04 2013-01-14 17:04

Jika Anda ingin menghapus semua perubahan lokal dari copy pekerjaan Anda, simpan saja:

 git stash save --keep-index 

Jika Anda tidak lagi membutuhkannya, Anda sekarang dapat menghapus cache ini:

 git stash drop 

Jika Anda ingin menulis u>

  • Rekam semua yang tidak ingin Anda timpa, dan gunakan metode di atas untuk yang lainnya.
  • Gunakan git checkout path/to/file/to/revert untuk perubahan yang ingin Anda timpa. Pastikan file tersebut tidak sesuai dengan git reset HEAD path/to/file/to/revert .
312
14 янв. Balas diberikan oleh Daniel Hilgarth pada 14 Jan 2013-01-14 15:17 '13 pada 15:17 2013-01-14 15:17

Ini memungkinkan saya untuk menimpa semua perubahan lokal dan tidak memerlukan pengenal:

 git reset --hard git pull 
125
01 окт. jawabannya diberikan kravits88 01 Oktober. 2015-10-01 04:07 '15 pada 4:07 2015-10-01 04:07

Berikut adalah solusi yang membuang perubahan bertahap:

 git reset file/to/overwrite git checkout file/to/overwrite 
66
31 окт. Balas diberikan oleh Aftershock 31 Okt 2013-10-31 16:45 '13 pada 16:45 2013-10-31 16:45

Anda dapat melakukan perubahan sebelum bergabung, atau menambahkannya:

  1. git stash save
  2. git merge origin/master
  3. git stash pop
46
18 марта '14 в 15:14 2014-03-18 15:14 jawabannya diberikan oleh Suneel Kumar 18 Maret '14 pukul 15:14 2014-03-18 15:14

Solusi saya untuk mengatasi masalah ini adalah:

 git checkout -- <file> 

Lalu saya bisa menimpa file menggunakan:

 git pull 
30
04 авг. jawabannya diberikan pabloasc 04 Agustus. 2015-08-04 15:38 '15 pada 15:38 2015-08-04 15:38

Jika repositori Anda berisi beberapa file yang dihapus dari master :

  1. git checkout master
  2. git fetch origin
  3. git reset --hard origin/master
  4. git checkout -b newbranch
11
05 февр. jawabannya diberikan Nikhil KR 05 Feb. 2014-02-05 09:24 '14 jam 9:24 2014-02-05 09:24

Dalam Git baru-baru ini, Anda dapat menambahkan -r / --rebase ke perintah pull untuk mengatur u>


Atau, Anda dapat menguji cabang lain dengan paksa dan kemudian kembali untuk master lagi, misalnya:

 git checkout origin/master -f git checkout master -f 

Kemudian tarik seperti biasa:

 git pull origin master 

Dengan menggunakan metode ini, Anda dapat menghemat waktu agar tidak tinggal ( git stash ) dan kemungkinan masalah resolusi, menimpa file ( git reset HEAD --hard ), menghapus file ( git clean -fd ), dll. Juga lebih tinggi lebih mudah diingat.

8
16 марта '16 в 15:41 2016-03-16 15:41 jawabannya diberikan kenorb 16 Maret 16 di 15:41 2016-03-16 15:41

Masalah ini terjadi karena Anda membuat perubahan secara lokal ke file / s, dan file / s yang sama ada dengan perubahan dalam repositori Git, jadi sebelum Anda menarik / mendorong Anda akan memerlukan perubahan simpanan lokal:

Untuk menimpa perubahan lokal ke satu file:

 git reset file/to/overwrite git checkout file/to/overwrite 

Untuk menimpa semua perubahan lokal (perubahan dalam semua file):

 git stash git pull git stash pop 

Juga, masalah ini mungkin disebabkan oleh fakta bahwa Anda berada di cabang yang tidak digabungkan dengan cabang utama.

7
14 янв. Jawabannya diberikan BSB 14 Januari. 2018-01-14 16:19 '18 jam 16:19 2018-01-14 16:19

Terkadang tidak ada yang berhasil. Mengganggu, karena LF, apa yang saya pikir akan berhasil adalah menghapus file, dan kemudian tarik. Bukannya saya merekomendasikan solusi ini, tetapi jika file tidak ada, git tidak akan sia-sia untuk memberi tahu Anda bahwa perubahan Anda (yang bahkan mungkin bukan perubahan) akan ditimpa dan memungkinkan Anda untuk melanjutkan.

Gunakan dengan risiko Anda sendiri.

6
20 авг. balasan yang diberikan oleh Jeremy Holovacs 20 Agustus 2015-08-20 21:37 '15 jam 9:37 sore 2015-08-20 21:37

Anda dapat menggunakan ini untuk menimpa file.

 git checkout file_to_overwrite 
4
27 июня '15 в 13:06 2015-06-27 13:06 jawabannya diberikan oleh Deepika Patel pada 27 Juni '15 pada 1:06 PM 2015-06-27 13:06

Jika Anda ingin menulis u>

Anda dapat mencoba menyalin perubahan yang ingin Anda buang menggunakan git stash --patch secara selektif, dan kemudian mengatur u>git stash drop . Anda kemudian dapat menghapus perubahan yang dihapus dan menggabungkannya seperti biasa.

3
14 янв. Jawabannya diberikan oleh Will Vousden pada 14 Januari. 2013-01-14 15:21 '13 pada 15:21 2013-01-14 15:21

Cara terbaik untuk mengatasi masalah ini adalah:

 git checkout -- <path/file_name> 

Setelah itu Anda dapat menimpa file:

 git pull origin master 
3
12 апр. Balas AHM Forhadul Islam 12 Apr 2017-04-12 12:19 '17 pada 12:19 2017-04-12 12:19

Ini berhasil bagi saya untuk membatalkan perubahan pada server jauh jarak jauh dan menariknya keluar dari sumber kontrol GitHub:

 git reset --hard git pull origin master 
2
20 апр. Balas diberikan oleh Gajen Sunthara pada 20 April 2016-04-20 15:31 '16 jam 3:31 sore 2016-04-20 15:31

Jika Anda ingin menyimpan perubahan produksi di server, cukup gabungkan menjadi item konfigurasi baru. Metode pemrosesan adalah sebagai berikut:

 git stash git pull git stash pop 

Anda mungkin tidak melakukan semua operasi. Anda bisa tahu apa yang bisa Anda lakukan selanjutnya.

2
19 апр. Balas diberikan oleh YanQing pada 19 April 2017-04-19 14:49 '17 pukul 14:49 2017-04-19 14:49

Saya punya kasus khusus: Saya punya file dengan - tidak ada perubahan. Sulit ditemukan karena perintah git status tidak menunjukkan perubahan.

2
23 июня '16 в 23:36 2016-06-23 23:36 jawabannya diberikan Arkadiy 23 Juni '16 pukul 11:36 malam 2016-06-23 23:36

Saya mengalami ini ketika saya menjangkau dari master.

Metode pemrosesan menggunakan Visual Studio;

  1. Pertama, saya menjalankan perintah "Batalkan" dalam keputusan saya.
  2. Lalu saya melakukan proses git pull.

Semoga ini bisa membantu!

1
19 сент. Jawabannya diberikan oleh AJ Macapaz pada 19 September . 2017-09-19 22:53 '17 pada jam 10:53 2017-09-19 22:53

git stash save --keep-index tidak bekerja untuk saya.

perintah di bawah ini berfungsi seperti yang diharapkan.

 git reset --hard git pull 

Itu membatalkan semua perubahan lokal jika Anda tidak membutuhkannya.

1
20 мая '18 в 10:03 2018-05-20 10:03 jawabannya diberikan oleh Khemraj 20 Mei 18 'di 10:03 2018-05-20 10:03

Inilah strategi saya untuk menyelesaikan masalah.

Pernyataan masalah

Kami perlu melakukan perubahan pada lebih dari 10 file. Kami mencoba PULL (git pull origin master) , tetapi Hitt berteriak:

Galat: perubahan lokal Anda pada file berikut akan ditimpa oleh penggabungan: silakan lakukan perubahan Anda atau tuliskan sebelum Anda dapat menggabungkan.

Kami mencoba commit dan kemudian pull , tetapi mereka juga tidak berhasil.

Solusi

Faktanya, kami berada di lokasi yang kotor, karena file-file itu berada di "area perantara", juga dikenal sebagai "Area Indeks", dan beberapa di antaranya berada di "Area Kepala" serta "direktori Git lokal". Dan kami ingin membawa perubahan dari server.

Lihatlah tautan ini untuk informasi tentang berbagai tahapan Git dalam bentuk yang jelas: Tahapan GIT

Kami telah menyelesaikan >

  • git stash (ini membuat direktori kerja kami bersih. Perubahan Anda disimpan pada Git stack).
  • git pull origin master (tarik perubahan dari server)
  • git stash apply (terapkan semua perubahan dari tumpukan)
  • git commit -m 'message' ( git commit -m 'message' ubah)
  • git push origin master ( git push origin master berubah ke server)
  • git stash drop (Jatuhkan tumpukan)

Biarkan kami mengerti kapan dan mengapa Anda membutuhkannya

Jika Anda dalam keadaan kotor, itu berarti Anda membuat perubahan pada file Anda, dan kemudian karena suatu alasan Anda harus menarik atau beralih ke cabang lain untuk pekerjaan yang sangat mendesak, jadi saat ini Anda tidak dapat menarik atau beralih ke file-file itu. selama Anda tidak melakukan perubahan. Tim stash ada di sini sebagai uluran tangan.

Dari buku ProGIT, edisi ke-2:

Seringkali, ketika Anda mengerjakan bagian dari proyek Anda, semuanya dalam keadaan kotor, dan Anda ingin sedikit berganti cabang untuk mengerjakan sesuatu yang lain. Masalahnya adalah Anda tidak ingin melakukan setengah kerja sehingga Anda dapat kembali ke masalah ini nanti. Jawaban untuk pertanyaan ini adalah perintah git stash. Stashing mengambil kondisi kotor dari direktori kerja Anda - yaitu, file yang dimonitor yang dimodifikasi dan perubahan bertahap - dan menyimpannya dalam tumpukan perubahan yang tertunda yang dapat Anda aplikasikan kembali kapan saja.

1
16 апр. Balas STK 16 apr. 2017-04-16 16:54 '17 jam 16.54 2017-04-16 16:54

Saya mengabaikan file di repo saya, dan ketika saya melakukan git pull upstream master , saya menerima kesalahan berikut:

Galat: perubahan lokal Anda pada file berikut akan ditimpa menggunakan gabungan: myfile.js Harap buat perubahan Anda sendiri atau tulis sebelum Anda dapat bergabung. Batalkan

Untuk mengatasi masalah ini, saya melakukan hal berikut

 git update-index --no-assume-unchanged myfile.js 

Saya kemudian membuat git status dan menerima pesan ini.

Di cabang penyihir, cabang Anda tertinggal di belakang "asal / master" dengan 4 fiksasi, dan dapat dengan cepat dialihkan. (gunakan "git pull" untuk memperbarui cabang lokal)

Perubahan tidak dilakukan untuk melakukan: (gunakan "git add ..." untuk memperbarui apa yang akan dilakukan) (gunakan "git checkout -..." untuk membuang perubahan dalam direktori kerja)

diubah: myfile.js

tidak ada perubahan yang ditambahkan ke komit (gunakan "git add" dan / atau "git commit -a")

Kemudian saya melakukan git checkout myfile.js , dan kemudian git pull upstream master . Kali ini operasi git pull berhasil.

1
14 марта '17 в 17:43 2017-03-14 17:43 Jawabannya diberikan oleh Dmitry pada 14 Maret '17 pada 17:43 2017-03-14 17:43

Jika kesalahan ini disebabkan oleh jeda baris,

 git add git checkout mybranch 

akan bekerja. Saya tidak yakin mengapa itu berhasil.

0
08 мая '17 в 17:38 2017-05-08 17:38 jawabannya diberikan oleh user60561 08 Mei '17 pada 17:38 2017-05-08 17:38

Saya mencoba, dan dia berhasil, sebelum menarik, untuk mengizinkan melakukan seluruh file, yang tidak Anda lakukan, maka Anda tidak akan menerima pesan-pesan ini dari AS.

0
21 мая '18 в 9:02 2018-05-21 09:02 jawabannya diberikan Ta Quang Tu 21 Mei '18 pukul 9:02 malam 2018-05-21 09:02

git reset --hard git clean -df

Ini akan mengatur u>

0
13 июня '18 в 12:49 2018-06-13 12:49 Jawaban diberikan oleh Yamen Ashraf pada 13 Juni '18 jam 12:49 2018-06-13 12:49

Untuk Pycharm Anda dapat melakukan git -> revert dan kemudian tarik.

0
24 янв. Balas diberikan oleh Munichong 24 Jan 2018-01-24 00:53 '18 pada 0:53 2018-01-24 00:53

Pesan ini juga dapat terjadi jika git-lfs dan penunjuk file telah ditimpa oleh file nyata.

maka Anda menggunakan:

 git stash git lfs migrate import git pull 

menyelesaikan penarikan dari kasus saya

 λ git stash Saved working directory and index state WIP on master: 5d4ad47 Merge branch 'feature/...' into 'master' Encountered 1 file(s) that should have been pointers, but weren't: public/apple-touch-icon.png λ git pull Updating 5a4ad44..b25f79d error: Your local changes to the following files would be overwritten by merge: public/apple-touch-icon.png Please commit your changes or stash them before you merge. Aborting λ git lfs migrate import migrate: Fetching remote refs: ..., done migrate: Sorting commits: ..., done migrate: Rewriting commits: 100% (0/0), done migrate: Updating refs: ..., done migrate: checkout: ..., done λ git pull Updating 5d4ad47..a25c79a Fast-forward public/apple-touch-icon.png | Bin 2092 -> 130 bytes public/favicon.ico | Bin 6518 -> 1150 bytes 2 files changed, 0 insertions(+), 0 deletions(-) 

lihat https://github.com/git-lfs/git-lfs/issues/2839

0
17 мая '18 в 0:30 2018-05-17 00:30 jawabannya diberikan c33s 17 Mei '18 pukul 0:30 2018-05-17 00:30

Pertanyaan lain tentang tag atau Ajukan Pertanyaan