如何使用EGit进行拉取请求?

4
我有一个本地主分支,想要向别人拥有的仓库创建pull请求。当我试图“推送分支”时,出现以下文本:“无法连接到任何URL:https://github.com/jleclanche/fireplace: git-receive-pack not permitted”。 我猜这实际上是在尝试合并而不是发起请求。我该如何操作?

拉取请求是GitHub的一个功能,而不是git本身的功能,因此我怀疑在egit中是否有这样的功能。 - 1615903
3个回答

10
以下是分叉存储库、进行更改并最终打开拉取请求以将更改合并回原始存储库所需的步骤。
  1. 在 GitHub 上,导航到存储库页面并单击页面右上角的 Fork 按钮。

  2. 复制分叉存储库的 URL,以 在 EGit 中创建本地克隆

  3. 我建议使用 你的名字/问题名称 的形式创建一个新分支。在独立的分支上工作可以更好地监督,并有助于同时处理多个拉取请求。

  4. 进行一项或多项提交,这些提交应该最终出现在拉取请求中。

  5. 将这些更改推送 到分叉存储库。

  6. 在 GitHub 上,导航到分叉页面。您应该会看到一个消息,指示已创建一个新分支和一个创建拉取请求的按钮。单击此按钮。在下一页上,您可以提供更多信息,并最终确认创建拉取请求。

为了使用源存储库所做的更改,您需要将其添加为本地克隆的远程。您甚至可以重命名远程存储库,使得被分叉的存储库(您正在推送到的存储库)命名为fork,而对于源存储库则使用默认名称origin
例如:
[remote "fork"]
  url = git@github.com:your-name/forked-repo.git
  fetch = +refs/heads/*:refs/remotes/fork/*
[remote "origin"]
  url = git@github.com:user/originating-repo.git
  fetch = +refs/heads/*:refs/remotes/origin/*

1
在这个答案中,我假设您在所讨论的项目上拥有提交权限,但仍想创建一个拉取请求。在这种情况下,不需要fork存储库。
  1. 在Eclipse中创建一个本地分支(Team -> Switch to -> New branch...,使用默认值)并在其上工作。最终,将该分支推送到GitHub存储库。
  2. 转到github.com上的存储库。
  3. GitHub通常会识别您已经推送了一个分支,并提供直接创建拉取请求的选项。或者,您应该能够从“拉取请求”选项卡中创建拉取请求。

0

如果您在Eclipse中提交了更改,但由于冲突而无法获取Pull Request,请执行以下步骤从git bash命令获取pull req:

  1. git status

  2. git checkout develop-robot

  3. git log [检查您的提交是否存在]

  4. git pull

  5. git checkout

  6. git rebase develop-robot

  7. git push -u -f origin


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接