32

我是 GIT 和 GitHub(以及 Homebrew)的新手;主存储库中的 emacs 公式在 OS X Lion 中被破坏,但有一个“拉请求”(https://github.com/mxcl/homebrew/pull/6518)可以解决问题(但不是合并到主存储库中)。

如何更新 Homebrew 存储库的本地副本以修复该公式?如果我做到了,如果主存储库包含该修复程序,该公式是否仍会更新?

如果术语不正确,请纠正我。

4

3 回答 3

58

您可以使用 直接从拉取请求中安装 Homebrew 公式brew install $raw_pull_requst_url,例如:

brew install https://raw.github.com/ColinHebert/homebrew/538a99cc06a8f40b6ebcf2f4f8fd44d563c672cd/Library/Formula/emacs.rb

为了找到拉取请求 URL,可能有更好的方法,但我去了您链接的拉取请求 URL,点击Files Changed,然后点击View File @ 9b22d42,最后点击Raw

于 2012-10-22T15:45:47.093 回答
16

Github上的文档描述的非常冗长(Merging a Pull Request部分):

在您的回购中:

git checkout master
git remote add colin https://github.com/ColinHebert/homebrew.git
git fetch colin

现在,您拥有了 repo 的全部内容colin(包括该 repo 中使用的提交哈希的知识)。接下来是应用更改。文档说你应该做 a git merge,但在我们的例子中这不是很好,因为 colin 将更改添加到他的master. 如果他继续工作master(并且做了更多的提交),你也会得到这些改变。

幸运的是,组成补丁的四个提交在 Pull-request 中命名:ae28b29e, df10b69a, e8915488, 87f2d1e5. 您可以通过以下方式应用它们git cherry-pick

git cherry-pick ae28b29e
git cherry-pick df10b69a
git cherry-pick e8915488
git cherry-pick 87f2d1e5

就是这样。您现在可以删除遥控colin

git remote rm colin

另一种可能性是下载补丁并应用它:

git checkout master
curl https://github.com/mxcl/homebrew/pull/6518.patch | git am

拉取请求的补丁始终可以通过

https://github.com/<user>/<repo>/pull/<request_number>.patch
于 2011-08-31T11:15:17.093 回答
16

我发现以下内容更适合临时自制软件用户。

如果您正在寻找修复程序,将会有一个拉号:

| => brew search vmdktool
No formula found for "vmdktool".
==> Searching pull requests...
Open pull requests:
vmdktool 1.4 (new formula) (https://github.com/Homebrew/homebrew-core/pull/9109)

只需执行拉号brew pull ####在哪里:####

| => brew pull 9109
fatal: ref HEAD is not a symbolic ref
Warning: Current branch is : do you need to pull inside master?
==> Fetching patch
Patch: https://github.com/Homebrew/homebrew-core/pull/9109.patch
==> Applying patch
Applying: vmdktool 1.4 (new formula)
==> Patch closes issue #9109
==> Patch changed:
 Formula/vmdktool.rb | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

然后进行安装/升级:

| => brew install vmdktool
Updating Homebrew...
==> Auto-updated Homebrew!
Updated Homebrew from 11cf7b9 to 1f97e31.
No changes to formulae.

==> Using the sandbox
==> Downloading https://people.freebsd.org/~brian/vmdktool/vmdktool-1.4.tar.gz
######################################################################## 100.0%
==> make CFLAGS='-D_GNU_SOURCE -g -O -pipe'
==> make install PREFIX=/usr/local/Cellar/vmdktool/1.4
  /usr/local/Cellar/vmdktool/1.4: 4 files, 34.4K, built in 2 seconds
于 2017-01-26T16:38:48.413 回答