ปรับปรุง Brew: ไฟล์แผนผังการทำงานที่ไม่ได้ติดตามจะถูกเขียนทับโดยการรวม:


369

ฉันพยายามเรียกใช้brew updateและได้รับข้อผิดพลาดเกี่ยวกับการเปลี่ยนแปลงในท้องถิ่นของฉันจะหายไปหากฉันรวมเข้าด้วยกัน ฉันพยายามกระทำการเปลี่ยนแปลงในท้องถิ่นของฉัน (จำไม่ได้ว่าทำอะไรเลย แต่มันก็ไม่นาน) และนั่นทำให้สิ่งต่าง ๆ แย่ลง

นี่คือผลลัพธ์:

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

คำตอบ:


738

อย่าลืมดึงต้นกำเนิด !!!

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

คำอธิบายสำหรับผู้ที่สนใจ:

สิ่งที่เกิดขึ้นคือคุณกำลังพยายามอัปเดตการชง แต่การชงนั้นไม่ทันสมัย ​​(อาจเป็นไปได้) มีการเปลี่ยนแปลงการอนุญาตผ่านการอัปเดตระบบปฏิบัติการ (อาจเป็นไปได้) หรือก่อให้เกิดความเสียหายเล็กน้อย เนื่องจากการสร้างตัวเองเป็น repo คอมไพล์คุณต้องอัปเดตหรือตั้งค่าการชงเพื่อรุ่นสาขาหลัก ชง [โดยค่าเริ่มต้น] ตั้งอยู่ใน/usr/localโฟลเดอร์ดังนั้นคุณ

  1. ไปที่โฟลเดอร์ [คำสั่งแรก] ซึ่งควรอัปเดตการอนุญาตด้วย (หากไม่เห็นด้านล่าง)
  2. เรียกค่าเริ่มต้น [คำสั่งที่สอง] ซึ่งหมายถึงการอัปเดต LOCAL เวอร์ชันของสาขาระยะไกลของการชงของคุณ
  3. ฮาร์ดรีเซ็ต [คำสั่งที่ 3] อ้างอิงตามสาขาหลัก REMOTE (ซึ่งใช้สิทธิ์ปัจจุบันของคุณด้วย)

คุณยังสามารถchownใช้คำสั่งแรกถ้าคุณอยู่ในไม่ใช่ sudo หรือโปรไฟล์ผู้ดูแลระบบ
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$git reset --hard origin/master

เพื่อให้เข้าใจถึงการตั้งค่าคอมไพล์จะดูที่บทความนี้


3
ฉันต้องgit fetch originก่อนที่การรีเซ็ตจะทำงาน ขอบคุณ ขำขันว่าคำตอบนี้เพิ่มเข้ามาในวันที่ผ่านมาได้อย่างไร
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
ดูที่github.com/mxcl/homebrew/wiki/Common-Issuesนี้มีการอธิบายข้อผิดพลาดและวิธีการแก้ไข
Stephane Paquet

11
มันใช้งานได้ แต่ฉันต้องทำขั้นตอนสุดท้ายด้วยsudo
altumano

3
สิ่งนี้ยังคงเกิดขึ้นกับฉันเป็นประจำ infact ฉันต้องทำซ้ำขั้นตอนเหล่านี้ 3 ครั้งในช่วงสองสามเดือนที่ผ่านมา ค่อนข้างน่ารำคาญมันมีประโยชน์มากที่ SO มีฟีเจอร์ที่ชอบ (ที่กล่าวว่า googling ข้อผิดพลาดทำให้โพสต์นี้เกิดขึ้นเป็นผลครั้งแรก)
totalNotLizards

107

ฉันมีปัญหาที่คล้ายกันเมื่อสองสามสัปดาห์ก่อนพยายามอัปเดตการติดตั้งโฮมบรูว์เก่า ทำสิ่งนี้:

git reset --hard origin/master

ในการ/usr/localแก้ไขมันสำหรับฉัน

ดูเหมือนว่าคนอื่นมีปัญหานี้เช่นกัน คุณได้ดูวิธีแก้ไขปัญหาที่เสนอที่นี่หรือไม่?


ทำงานเหมือนแชมป์ ขอบคุณสำหรับลิงค์ด้วย!
Tyler DeWitt

หมายเหตุถึงผู้อื่น: อย่าลองใช้ 'git fetch origin' ตามที่แนะนำในคำตอบอื่น ๆ - ทำอย่างนั้นอย่างถูกต้องแก้ไขปัญหานี้ให้ฉัน (ไม่มีปัญหาที่เห็นได้ชัดโดยไม่ต้อง 'git fetch กำเนิด' อื่น ๆ กว่าชงไม่เห็นการปรับปรุงใด ๆ ;) )
Gilead

ฉันเพิ่งพบข้อผิดพลาดชงนี้เมื่อเช้านี้ googling เล็กน้อยพาฉันไปที่นี่ คำตอบนี้แก้ปัญหาของฉันได้อย่างสมบูรณ์ ขอบคุณ!
memoht

2
ก่อนอื่นคุณอาจต้องดูcd usr/localและgit remote add origin https://github.com/mxcl/homebrew.gitยังstackoverflow.com/questions/6024671/…
s2t2

11

ฉันกำลังเพิ่มประสบการณ์ส่วนตัวของฉันเนื่องจากดูเหมือนว่าจะปลอดภัยกว่าที่เสนอในปี 2012 เล็กน้อย:

  1. brew doctorวิ่ง
  2. หากคุณได้รับคำเตือนต่อไปนี้:

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

    วิ่ง:

    sudo chown -R `whoami` /usr/local
    

    เพื่อแก้ไขปัญหาการอนุญาต (ตามที่ Chris Frisina แนะนำ) ในที่สุดทำงานbrew doctorอีกครั้งเพื่อให้แน่ใจว่าตัวเองหายไปเตือน

  3. ตอนนี้คุณควรมี

    Warning: You have uncommitted modifications to Homebrew
    

    ที่อาจเบย์แก้ไขโดย

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

    ตามที่ Dr.Brew แนะนำ คำสั่งหยุดการแก้ไขที่ไม่มีข้อผูกมัดดังนั้นคุณสามารถย้อนกลับและกู้คืนได้หากจำเป็น ดูเหมือนปลอดภัยกว่าgit reset --hard origin/masterสำหรับฉัน

  4. หากคุณต้องการให้ตรวจสอบคู่มือการแก้ไขปัญหาอย่างเป็นทางการหากขั้นตอนที่แนะนำที่นี่และผู้ใช้ SO อื่นไม่สามารถแก้ปัญหาของคุณได้


cd / usr / local / Library && git stash && git clean -d -f จากนั้นชงการปรับปรุงแก้ไขให้ฉัน
at0mzk

0

คำตอบที่คล้ายกัน แต่ถ้าคุณมีไฟล์ที่ไม่มีการติดตามอีกต่อไปคุณต้องมีขั้นตอนเพิ่มเติมเพื่อให้/usr/localทำงานได้

git fetch origin
git clean -f
git reset --hard origin/master

0

วิธีนี้อาจง่ายกว่าบางวิธี มันเกี่ยวข้องกับ:

  • แก้ไขปัญหา git เพื่อให้คุณสามารถมอบหมายการจัดการการเปลี่ยนแปลงได้อีกครั้ง
  • ไม่มีการย้ายไฟล์หรือไดเรกทอรีด้วยตนเอง
  • ไม่มีการปรับสิทธิ์ไฟล์หรือไดเรกทอรีด้วยตนเอง

ขั้นตอน (พร้อมหมายเหตุสำหรับผู้ที่ต้องการคำอธิบาย):

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 

ภาพรวม:
จากสิ่งที่ฉันสามารถบอกได้สาเหตุที่แท้จริงของปัญหานี้คือการเปลี่ยนแปลงใน URL ซื้อคืน ก็ตอนนี้และเป็นbrew brew.git(URL ที่อัปเดตเต็มรูปแบบ: https://github.com/Homebrew/brew )

หมายเหตุ 1: คำสั่งแรกนี้นำคุณจากที่ใดก็ได้ในโครงสร้างไฟล์ของคุณไปยังไดเรกทอรีที่ถูกต้อง โครงสร้างไดเรกทอรีแตกต่างจากฉันมากกว่าที่ผู้อื่นแสดงไว้ข้างต้น (Mac OS 10.11.16) แต่ด้วยคำสั่งนี้ความแตกต่างเหล่านั้นไม่สำคัญ

หมายเหตุ 2: คำสั่งที่สองนี้เพิ่ม URL ระยะไกลที่ถูกต้องให้กับนามแฝงใหม่ ฉันทำเช่นนั้นในกรณีที่วิธีการนี้ไม่สำเร็จตามที่ฉันต้องการและฉันต้องการที่อยู่ก่อนหน้าอีกครั้ง ตั้งแต่รีโมตใหม่ทำงานฉันจะเชิญคนอื่นให้แสดงความคิดเห็นเพียงแค่เปลี่ยน URL ที่ชื่อแทนโดยกำเนิด ฉันจะอัปเดตคำตอบอย่างมีความสุขเพื่อสะท้อนสิ่งที่คุณต้องการ

หมายเหตุ 3: คำสั่งที่ออกมานี้มีผลลัพธ์ที่ต้องการ: รายงานการอัปเดตจำนวนมากรวมถึงรายงานที่ดีโดยเฉพาะอย่างยิ่งของ "==> โยกย้าย HOMEBREW_REPOSITORY ไปยัง / usr / localbrew / Homebrew!" (เน้นพวกเขา)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.