我正在使用Gitorious的防火墙后安装。
我可以进入Web应用程序并从克隆创建拉取请求并定位克隆它的主仓库。
我希望能够在命令行上执行此操作。更具体地说,我希望能够从命令行从一个分支到另一个分支(而不是从克隆到种子仓库)打开合并请求。
由于我没有使用Github,我无法使用Github specific tools or libraries。这可能吗?
答案 0 :(得分:72)
answer given by 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
来完成修补程序。
答案 1 :(得分: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'
答案 2 :(得分:4)
git本身没有“合并请求”这样的东西。因此,如果可能的话,那将需要Gitorious特定的工具。纯粹的git是不可能的。
答案 3 :(得分:0)
Gitlab从v11.10开始添加此功能。提交最终更改后,只需使用以下命令即可代替push
:
git push -o merge_request.create
创建合并请求。在doc中有更多详细信息。