git - 如何在 git 中 merge 其他人项目的 pull 请求?

标签 git github pull-request

我在我的电脑上克隆了这个仓库:https://github.com/derobins/wmd.git

虽然它有几个错误,但看起来另一个用户已经修复了它们并发出了“pull 请求”(我假设这些是提交他们的更改的请求?)

是否可以将这些更改 merge 到我的本地版本中?

编辑:需要说明的是,这不是我的存储库。我正在使用 derobins 的 WMD 编辑器,但它有几个 bug,这些 pull requests 声称要修复这些 bug。我已经在 Ubuntu 上(不是在 github 上)克隆了 repo,并希望尽可能 merge 这些更改。

最佳答案

(GitHub 有关于如何处理 pull 请求的 very thorough documentation。)

本质上,您需要为提出 pull 请求的人的存储库添加一个远程,例如:

git remote add helpful git://github.com/helpful-person/whatever.git

...然后将他们的更改获取到远程跟踪分支:

git fetch helpful

... 所以现在您在上游存储库的克隆中拥有来自那个人的 GitHub 存储库的所有提交。如果您查看该 pull 请求中的其他提交,您可以:

  1. merge 最新的一个,例如git merge 75708aeab5
  2. cherry-pick 每一个变化,例如git cherry-pick 2142db89, git cherry-pick 75708aeab5
  3. 创建一个本地分支以进一步处理它们,例如git checkout -b fix-for-issue3 75708aeab5
  4. 等等

另一种方法是只克隆发出 pull 请求的贡献者的存储库,如果除了那些修复是一样的话。

关于git - 如何在 git 中 merge 其他人项目的 pull 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5553156/

相关文章:

GitHub git 标签而不创建 zip 文件?

git - 如何在github上做pull request?

git - 如何在 git 提交消息中引用之前的提交

git - 用本地仓库替换远程仓库,但保留远程仓库的提交历史

git - 如何在 SourceTree 本地 checkout fork 的 pull 请求?

git - 已经打开的新 pull 请求

命令行上 pull 请求的 Git 语法

linux - 内核构建 : how are the "torvalds" and "stable" repos related?

ruby-on-rails - 不小心创建了一个 git 子模块

git - 恢复 cherry-pick --abort?