Cập nhật bia: Các tệp cây làm việc không được theo dõi sau đây sẽ được ghi đè bằng cách hợp nhất:


369

Tôi đã cố chạy brew updatevà tôi gặp lỗi về những thay đổi cục bộ của tôi sẽ bị mất nếu tôi hợp nhất. Tôi đã cố gắng thực hiện các thay đổi cục bộ của mình (đừng nhớ thực hiện bất kỳ thay đổi nào, nhưng nó đã được một lúc) và điều đó làm mọi thứ tồi tệ hơn.

Đây là đầu ra:

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

Câu trả lời:


738

Đừng quên lấy nguồn gốc !!!

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

Giải thích, cho những người quan tâm:

Điều gì xảy ra là bạn đang cố cập nhật brew, nhưng bản thân brew không cập nhật (có khả năng), có một sự thay đổi quyền thông qua một số cập nhật hệ điều hành (cũng có khả năng), hoặc brew hơi bị hỏng (không chắc). Vì bản thân brew là một repo git, bạn phải cập nhật hoặc thiết lập lại brew thành phiên bản nhánh chính. brew [theo mặc định] nằm trong /usr/localthư mục, vì vậy bạn

  1. Chuyển đến thư mục đó [lệnh đầu tiên] cũng sẽ cập nhật quyền (nếu không thấy bên dưới)
  2. Tìm nạp nguồn gốc [lệnh thứ hai] có nghĩa là cập nhật phiên bản ĐỊA PHƯƠNG của chi nhánh bia từ xa
  3. Đặt lại cứng [lệnh thứ 3] dựa trên nhánh chính XÓA (cũng sử dụng các quyền hiện tại của bạn).

Bạn cũng có thể là chownlệnh đầu tiên nếu bạn ở trong hồ sơ không phải sudo hoặc quản trị viên
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$git reset --hard origin/master

Để hiểu thiết lập lại git, hãy xem bài viết này .


3
Tôi đã phải git fetch origintrước khi thiết lập lại làm việc. Cảm ơn. Thật buồn cười khi câu trả lời này đã được thêm vào trong ngày qua, thật may mắn cho tôi!
ghoppe

2
/usr/local git fetch origin fatal: 'origin' does not appear to be a git repository fatal: The remote end hung up unexpectedly
Bradshaw giàu có

2
Hãy xem github.com/mxcl/homebrew/wiki/Common-Issues Lỗi này được mô tả và cách sửa lỗi.
Pa-ri Stephane

11
Nó đã hoạt động, nhưng tôi phải thực hiện bước cuối cùng vớisudo
altumano

3
điều này vẫn xảy ra với tôi thường xuyên, vì tôi cần phải lặp lại các bước này 3 lần trong vài tháng qua. Khá khó chịu, thật tiện lợi khi SO có một tính năng yêu thích (nói rằng việc xử lý lỗi sẽ đưa bài đăng này lên như kết quả đầu tiên thường)
hoàn toàn không phải là

107

Tôi đã có một vấn đề tương tự một vài tuần trước khi cố gắng cập nhật cài đặt homebrew cũ. Làm điều này:

git reset --hard origin/master

trong /usr/localcố định nó cho tôi.

Có vẻ như những người khác cũng có vấn đề này. Bạn đã xem qua bất kỳ giải pháp đề xuất nào ở đây chưa?


Làm việc như một nhà vô địch. Cảm ơn các liên kết quá!
Tyler DeWitt

Lưu ý cho người khác: hãy thử chạy 'git fetch origin' như được đề xuất trong câu trả lời khác - chỉ làm điều đó khắc phục đúng vấn đề này cho tôi (không có vấn đề rõ ràng nào nếu không có 'git fetch origin' ngoài việc không thấy bất kỳ cập nhật nào;) ).
Gilead

Tôi vừa chạy qua lỗi bia sáng nay. Một chút googling dẫn tôi đến đây. Câu trả lời này hoàn toàn giải quyết vấn đề của tôi. Cảm ơn!
ghi nhớ

2
đầu tiên bạn có thể phải xem cd usr/localgit remote add origin https://github.com/mxcl/homebrew.gitxem stackoverflow.com/questions/6024671/ cấp
s2t2

11

Tôi đang thêm trải nghiệm cá nhân của mình, vì nó có vẻ an toàn hơn một chút so với những gì được đề xuất vào năm 2012:

  1. Chạy đi brew doctor.
  2. Nếu bạn nhận được cảnh báo sau:

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

    chạy:

    sudo chown -R `whoami` /usr/local
    

    để khắc phục các sự cố về quyền (theo đề xuất của Chris Frisina). Cuối cùng chạy brew doctorlại để đảm bảo rằng cảnh báo đã biến mất.

  3. Bây giờ, bạn nên có một

    Warning: You have uncommitted modifications to Homebrew
    

    điều đó có thể được giải quyết bởi

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

    theo đề nghị của chính Dr.Brew. Lệnh ngăn chặn các sửa đổi không được cam kết để bạn có thể quay lại và khôi phục chúng nếu cần. Nó dường như an toàn hơn git reset --hard origin/mastervới tôi.

  4. Nếu bạn muốn, hãy kiểm tra hướng dẫn khắc phục sự cố chính thức nếu các bước được đề xuất ở đây và bởi những người dùng SO khác không giải quyết được vấn đề của bạn.


cd / usr / local / Library && git stash && git clean -d -f và sau đó cập nhật brew đã sửa nó cho tôi
at0mzk

0

Câu trả lời tương tự nhưng nếu bạn có các tệp không còn được theo dõi, bạn cần thêm bước để /usr/localchạy

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

0

Cách tiếp cận này có thể đơn giản hơn một số. Nó bao gồm:

  • sửa lỗi git để bạn có thể ủy quyền quản lý các thay đổi cho nó một lần nữa.
  • không di chuyển thủ công các tập tin hoặc thư mục.
  • không điều chỉnh thủ công các quyền của tập tin hoặc thư mục.

Các bước (có ghi chú cho những người muốn giải thích):

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 

Tổng quan:
Từ những gì tôi có thể nói, nguyên nhân thực sự của vấn đề này là do thay đổi url repo. Bây giờ brewvà đã brew.git. (Url đầy đủ cập nhật: https://github.com/Homebrew/brew )

Lưu ý 1: Lệnh đầu tiên này sẽ đưa bạn từ bất kỳ đâu trong cấu trúc tệp của bạn đến thư mục chính xác. Cấu trúc thư mục đối với tôi khác với những gì người khác trình bày ở trên (Mac OS 10.11.16), nhưng với lệnh này, những khác biệt đó không thành vấn đề.

Lưu ý 2: Lệnh thứ hai này thêm url từ xa chính xác vào bí danh mới; Tôi đã làm như vậy chỉ trong trường hợp phương pháp này không đạt được những gì tôi muốn và tôi cần địa chỉ trước đó một lần nữa. Vì điều khiển từ xa mới hoạt động, tôi sẽ mời người khác nhận xét về việc thay đổi url được đặt bí danh theo nguồn gốc. Tôi sẽ vui vẻ cập nhật câu trả lời để phản ánh những gì làm việc cho bạn.

Lưu ý 3: Lệnh này có chính xác kết quả mong muốn: nó báo cáo một số lượng lớn các bản cập nhật, bao gồm cả báo cáo đặc biệt hay về "==> Đã di chuyển HOMEBREW_REPOSITORY tới / usr / local / Homebrew!" (nhấn mạnh của họ).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.