是否可以从命令行在纯Git中创建合并请求?

bul*_*ley 35 git gitorious pull-request

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

我可以进入Web应用程序并从克隆创建拉取请求并定位克隆它的主仓库.

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

由于我没有使用Github,我不能使用Github特定的工具或库.这可能吗?

eck*_*kes 74

通过svick给出的答案是不正确的.这可能的.

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

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

git push origin fix:fix
Run Code Online (Sandbox Code Playgroud)

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

git request-pull master origin
Run Code Online (Sandbox Code Playgroud)

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

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>
Run Code Online (Sandbox Code Playgroud)

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

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

git format-patch master..
Run Code Online (Sandbox Code Playgroud)

这将为您在fix分支后执行的每个提交创建一个补丁文件master.您可以使用生成的.patch文件捆绑

tar czf fix.tgz *.patch
Run Code Online (Sandbox Code Playgroud)

然后通过电子邮件发送给某人进行审核和申请.

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

  • @Idan:OP要求**命令行**方式来打开合并请求.而这正是我所描述的. (9认同)
  • 这并没有改变git本身没有"合并请求"概念的事实. (7认同)
  • 你好像错过了实际的问题,只回答了标题......它清楚地说明拉取请求需要继续使用Gitorious,它有自己的*拉取请求机制. (3认同)
  • @eckes这不会在Web界面下创建合并请求.相反,它会为电子邮件拉取请求生成补丁和说明,例如LKML.这不是一个有价值的合并请求. (3认同)

Ali*_*ade 18

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

git push -o merge_request.create
Run Code Online (Sandbox Code Playgroud)

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


bra*_*obo 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'
Run Code Online (Sandbox Code Playgroud)


svi*_*ick 3

git 本身没有 \xe2\x80\x9cmerge request\xe2\x80\x9d 这样的东西。因此,如果这是可能的,则需要特定于您的 git 主机的东西。

\n