pembaruan brew: File pohon yang tidak terlacak berikut ini akan ditimpa oleh gabungan:

369

Saya mencoba menjalankan brew updatedan saya mendapatkan kesalahan tentang perubahan lokal saya akan hilang jika saya bergabung. Saya mencoba melakukan perubahan lokal saya (tidak ingat membuat, tapi sudah beberapa saat), dan itu membuat segalanya menjadi lebih buruk.

Inilah hasilnya:

MBP:Library User$ sudo brew update
error: The following untracked working tree files would be overwritten by merge:
    Library/Aliases/fastcgi
    Library/Aliases/htop
    Library/Aliases/nodejs
    Library/Aliases/ocio
    Library/Aliases/oiio
    Library/Aliases/pgrep
    Library/Aliases/pkill
    Library/Contributions/cmds/brew-beer.rb
    Library/Contributions/cmds/brew-dirty.rb
    Library/Contributions/cmds/brew-graph
    Library/Contributions/cmds/brew-grep
    Library/Contributions/cmds/brew-leaves.rb
    Library/Contributions/cmds/brew-linkapps.rb
    Library/Contributions/cmds/brew-man
    Library/Contributions/cmds/brew-mirror-check.rb
    Library/Contributions/cmds/brew-missing.rb
    Library/Contributions/cmds/brew-pull.rb
    Library/Contributions/cmds/brew-readall.rb
    Library/Contributions/cmds/brew-server
    Library/Contributions/cmds/brew-services.rb
    Library/Contributions/cmds/brew-switch.rb
    Library/Contributions/cmds/brew-test-bot.commit.html.erb
    Library/Contributions/cmds/brew-test-bot.css
    Library/Contributions/cmds/brew-test-bot.index.html.erb
    Library/Contributions/cmds/brew-test-bot.rb
    Library/Contributions/cmds/brew-tests.rb
    Library/Contributions/cmds/brew-unpack.rb
    Library/Contributions/cmds/brew-which.rb
    Library/Contributions/install_homebrew.rb
    Library/Formula/abcl.rb
    Library/Formula/abyss.rb
    Library/Formula/akka.rb
    Library/Formula/apollo.rb
    Library/Formula/appledoc.rb
    Library/Formula/arangodb.rb
    Library/Formula/autoconf.rb
    Library/Formula/automake.rb
    Library/Formula/avidemux.rb
    Library/Formula/bind.rb
    Library/Formula/bsdconv.rb
    Library/Formula/bsdmake.rb
    Library/Formula/camellia.rb
    Library/Formula/cbmbasic.rb
    Library/Formula/cdo.rb
    Library/Formula/checkstyle.rb
    Library/Formula/cifer.rb
    Library/Formula/clhep.rb
    Library/Formula/collada-dom.rb
    Library/Formula/crash.rb
    Library/Formula/crossroads.rb
    Library/Formula/css-crush.rb
    Library/Formula/curlftpfs.rb
    Library/Formula/dart.rb
    Library/Formula/dasm.rb
    Library/Formula/dfc.rb
    Library/Formula/di.rb
    Library/Formula/dsniff.rb
    Library/Formula/dupx.rb
    Library/Formula/dwatch.rb
    Library/Formula/eprover.rb
    Library/Formula/ext2fuse.rb
    Library/Formula/ezlupdate.rb
    Library/Formula/f3.rb
    Library/Formula/fastx_toolkit.rb
    Library/Formula/fceux.rb
    Library/Formula/findbugs.rb
    Library/Formula/freerdp.rb
    Library/Formula/funcoeszz.rb
    Library/Formula/fwknop.rb
    Library/Formula/gabedit.rb
    Library/Formula/gbdfed.rb
    Library/Formula/gconf.rb
    Library/Formula/git-encrypt.rb
    Library/Formula/glm.rb
    Library/Formula/gmap-gsnap.rb
    Library/Formula/gnu-arch.rb
    Library/Formula/gnunet.rb
    Library/Formula/gobby.rb
    Library/Formula/gptfdisk.rb
    Library/Formula/griffon.rb
    Library/Formula/grok.rb
    Library/Formula/gtk-chtheme.rb
    Library/Formula/gtkglextmm.rb
    Library/Formula/gtmess.rb
    Library/Formula/hg-flow.rb
    Library/Formula/hqx.rb
    Library/Formula/htop-osx.rb
    Library/Formula/htpdate.rb
    Library/Formula/imap-uw.rb
    Library/Formula/iozone.rb
    Library/Formula/ipbt.rb
    Library/Formula/ipe.rb
    Library/Formula/ispc.rb
    Library/Formula/ispell.rb
    Library/Formula/jigdo.rb
    Library/Formula/jing.rb
    Library/Formula/jless.rb
    Library/Formula/jpeginfo.rb
    Library/Formula/konoha.rb
    Library/Formula/legit.rb
    Library/Formula/libcouchbase.rb
    Library/Formula/libcuefile.rb
    Library/Formula/libextractor.rb
    Library/Formula/libglademm.rb
    Library/Formula/libgtextutils.rb
    Library/Formula/libinfinity.rb
    Library/Formula/libkate.rb
    Library/Formula/libqalculate.rb
    Library/Formula/libqglviewer.rb
    Library/Formula/libreplaygain.rb
    Library/Formula/libtool.rb
    Library/Formula/libvbucket.rb
    Library/Formula/libvo-aacenc.rb
    Library/Formula/libxmi.rb
    Library/Formula/lifelines.rb
    Library/Formula/makeicns.rb
    Library/Formula/mathgl.rb
    Library/Formula/meld.rb
    Library/Formula/mesalib-glw.rb
    Library/Formula/minisat.rb
    Library/Formula/minuit2.rb
    Library/Formula/mobile-shell.rb
    Library/Formula/movgrab.rb
    Library/Formula/mp3cat.rb
    Library/Formula/mpich2.rb
    Library/Formula/mrfast.rb
    Library/Formula/musepack.rb
    Library/Formula/ndiff.rb
    Library/Formula/net6.rb
    Library/Formula/nrpe.rb
    Library/Formula/nuttcp.rb
    Library/Formula/oath-toolkit.
Updating aa07533..3f070ef
Aborting
Error: Failed while executing git pull  origin refs/heads/master:refs/remotes/origin/master
Tyler DeWitt
sumber

Jawaban:

738

Jangan lupa untuk mengambil asal !!!

$ cd /usr/local
$ git fetch origin
$git reset --hard origin/master

Penjelasan, untuk mereka yang tertarik:

Apa yang terjadi adalah Anda mencoba memperbarui minuman, tetapi minuman itu sendiri tidak up to date (kemungkinan), ada perubahan izin melalui beberapa pembaruan OS (juga kemungkinan), atau minuman sedikit rusak (tidak mungkin). Karena brew itu sendiri adalah repo git, Anda harus memperbarui atau mereset brew ke versi cabang utama. minuman [secara default] terletak di /usr/localfolder, jadi Anda

  1. Pergi ke folder itu [perintah pertama] yang juga harus memperbarui izin (jika tidak lihat di bawah)
  2. Ambil asal [perintah kedua] yang artinya memperbarui versi LOCAL Anda dari cabang pembuatan bir jarak jauh
  3. Reset keras [perintah ke-3] berdasarkan pada cabang master REMOTE (yang juga menggunakan izin Anda saat ini).

Anda juga dapat chownperintah pertama jika Anda berada di profil non sudo atau admin
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$git reset --hard origin/master

Untuk memahami reset git, lihat artikel ini .

chris Frisina
sumber
3
Saya harus git fetch originsebelum reset bekerja. Terima kasih. Lucu bagaimana jawaban ini ditambahkan pada hari yang lalu, beruntunglah aku!
ghoppe
2
/usr/local git fetch origin fatal: 'origin' does not appear to be a git repository fatal: The remote end hung up unexpectedly
Rich Bradshaw
2
Lihat ini github.com/mxcl/homebrew/wiki/Common-Issues Kesalahan ini dijelaskan dan bagaimana cara memperbaikinya juga.
Stephane Paquet
11
Itu berhasil, tetapi saya harus melakukan langkah terakhir dengansudo
altumano
3
ini masih terjadi pada saya secara teratur, bahkan saya harus mengulangi langkah-langkah ini 3 kali dalam beberapa bulan terakhir. Cukup menjengkelkan, ini berguna bahwa SO memiliki fitur favorit (yang mengatakan bahwa googling kesalahan membawa postingan ini sebagai hasil pertama biasanya)
totallyNotLizards
107

Saya memiliki masalah serupa beberapa minggu yang lalu ketika mencoba memperbarui instalasi homebrew lama. Melakukan ini:

git reset --hard origin/master

di /usr/localmemperbaikinya untuk saya.

Sepertinya orang lain juga mengalami masalah ini. Sudahkah Anda melihat salah satu dari solusi yang diusulkan di sini ?

Joe Holloway
sumber
Bekerja seperti jagoan. Terima kasih untuk tautannya juga!
Tyler DeWitt
Catatan untuk orang lain: coba jalankan 'git fetch origin' seperti yang disarankan dalam jawaban lain - hanya melakukan itu dengan benar memperbaiki masalah ini untuk saya (tidak ada masalah yang jelas tanpa 'git fetch origin' selain pembuatan bir yang tidak melihat pembaruan;) ).
Gilead
Saya baru saja menemukan kesalahan pembuatan pagi ini. Googling kecil membawa saya ke sini. Jawaban ini benar-benar menyelesaikan masalah saya. Terima kasih!
Memoht
2
pertama, Anda mungkin harus cd usr/localdan git remote add origin https://github.com/mxcl/homebrew.gitlihat juga stackoverflow.com/questions/6024671/…
s2t2
11

Saya menambahkan pengalaman pribadi saya, karena tampaknya sedikit lebih aman daripada yang diusulkan pada 2012:

  1. Lari brew doctor.
  2. Jika Anda mendapatkan peringatan berikut:

    Warning: The /usr/local directory is not writable.
    

    Lari:

    sudo chown -R `whoami` /usr/local
    

    untuk memperbaiki masalah izin (seperti yang disarankan juga oleh Chris Frisina). Akhirnya jalankan brew doctorlagi untuk memastikan diri Anda bahwa peringatan itu hilang.

  3. Sekarang, Anda harus memiliki

    Warning: You have uncommitted modifications to Homebrew
    

    yang mungkin bisa diselesaikan oleh

    cd /usr/local/Library && git stash && git clean -d -f
    

    seperti yang disarankan oleh Dr.Brew sendiri. Perintah menyimpan modifikasi yang tidak dikomit sehingga Anda dapat kembali dan memulihkannya jika diperlukan. Tampaknya lebih aman daripada git reset --hard origin/masterbagiku.

  4. Jika diinginkan, periksa panduan pemecahan masalah resmi jika langkah-langkah yang disarankan di sini dan oleh pengguna SO lainnya tidak menyelesaikan masalah Anda.

Furins
sumber
cd / usr / local / Library && git simpanan && git clean -d -f dan kemudian buat pembaruan memperbaikinya untuk saya
at0mzk
0

Jawaban serupa tetapi jika Anda memiliki file yang tidak lagi dilacak Anda perlu langkah tambahan sehingga dari /usr/localmenjalankan

git fetch origin
git clean -f
git reset --hard origin/master
Haris Krajina
sumber
0

Pendekatan ini mungkin lebih sederhana daripada beberapa. Ini melibatkan:

  • memperbaiki masalah git sehingga Anda dapat mendelegasikan pengelolaan perubahan itu lagi.
  • tidak ada perpindahan file atau direktori secara manual.
  • tidak ada penyesuaian manual dari izin file atau direktori.

Langkah-langkah (dengan catatan untuk mereka yang menginginkan penjelasan):

cd $(brew --repository)                              // see Note 1 below
git remote add brew https://github.com/Homebrew/brew // see Note 2 below
git pull brew master                                 // promising fast-forward report!
brew update                                          // see Note 3 below 

Gambaran Umum:
Dari apa yang dapat saya katakan, penyebab sebenarnya dari masalah ini adalah perubahan pada url repo. Sekarang brewdan dulu brew.git. (URL lengkap terkini: https://github.com/Homebrew/brew )

Catatan 1: Perintah pertama ini membawa Anda dari mana saja dalam struktur file Anda ke direktori yang benar. Struktur direktori berbeda untuk saya daripada yang ditunjukkan orang lain di atas (Mac OS 10.11.16), tetapi dengan perintah ini, perbedaan itu seharusnya tidak masalah.

Catatan 2: Perintah kedua ini menambahkan url jarak jauh yang benar ke alias baru; Saya melakukannya kalau-kalau pendekatan ini tidak mencapai apa yang saya inginkan dan saya membutuhkan alamat sebelumnya lagi. Karena remote baru berfungsi, saya akan mengundang orang lain untuk mengomentari cukup mengubah url alias oleh asalnya. Saya akan dengan senang hati memperbarui jawaban untuk mencerminkan apa yang berhasil untuk Anda.

Catatan 3: Perintah keempat ini memiliki hasil yang persis diinginkan: ini melaporkan sejumlah besar pembaruan, termasuk laporan yang sangat bagus dari "==> Migrasi HOMEBREW_REPOSITORY ke / usr / local / Homebrew!" (Penekanan mereka).

Kay V
sumber