45

我正在使用 Gitorious 的防火墙后安装。

我可以进入 Web 应用程序并从克隆创建一个拉取请求,并定位到从中克隆它的主存储库。

我希望能够在命令行上执行此操作。更具体地说,我希望能够从命令行打开从一个分支到另一个分支的合并请求(而不是从克隆到种子仓库)。

由于我没有使用 Github,因此我无法使用Github 特定工具或库。这可能吗?

4

4 回答 4

88

svick 给出的答案是不正确的。这可能的。

git request-pull是 Git 套件的一部分。使用该命令行工具,您可以创建可以通过电子邮件发送的拉取请求。

示例:
origin拥有一个分支master。现在您创建一个本地错误修复分支fix,实施错误修复并将该fix分支推送到origin

git push origin fix:fix

fix然后,您希望有人将分支中所做的更改合并到master. 创建拉取请求

git request-pull master origin

这将创建一个格式如下的文本:

The following changes since commit <SHA of master>:

  <commit message of SHA of mster>

are available in the git repository at:
  <repo location> fix

<User Name> (<Number of Commits>):
      <messages of the commits>
      ...

 <changed files>
 ...
 <file statistics>

如果合并请求将发送给无法访问您推送更改的仓库的人,那么总是有机会使用git format-patch.

将您的fix分支推送到origin(您甚至不需要这样做)之后,在fix分支上使用创建补丁

git format-patch master..

fix这将为您在分支后所做的每个提交创建一个补丁文件master。您可以将生成的.patch文件与

tar czf fix.tgz *.patch

然后发送给某人,例如通过电子邮件进行审查和申请。

为了完整起见:应用补丁可以使用git am.

于 2011-09-02T11:43:17.847 回答
18

Gitlab 从 v11.10 开始添加此功能。提交最终更改后,而不是push简单地使用:

git push -o merge_request.create

创建合并请求。推送文档合并请求文档中的更多详细信息。

于 2019-06-24T09:20:29.080 回答
5

你可以使用这个命令行工具:https ://github.com/brauliobo/gitorious-merge-request

./gitorious-merge-request -e brauliobo@gmail.com -s 'test' -r '~brauliobo/noosfero/brauliobos-noosfero' -a easysafeinstall -b master -t 'noosfero/noosfero'
于 2012-10-30T20:40:32.580 回答
3

git 本身没有“合并请求”之类的东西。所以,如果这是可能的,它需要一些特定于你的 git 主机的东西。

于 2011-09-01T17:13:01.453 回答