我正在使用 Gitorious 的防火墙后安装。
我可以进入 Web 应用程序并从克隆创建一个拉取请求,并定位到从中克隆它的主存储库。
我希望能够在命令行上执行此操作。更具体地说,我希望能够从命令行打开从一个分支到另一个分支的合并请求(而不是从克隆到种子仓库)。
由于我没有使用 Github,因此我无法使用Github 特定工具或库。这可能吗?
我正在使用 Gitorious 的防火墙后安装。
我可以进入 Web 应用程序并从克隆创建一个拉取请求,并定位到从中克隆它的主存储库。
我希望能够在命令行上执行此操作。更具体地说,我希望能够从命令行打开从一个分支到另一个分支的合并请求(而不是从克隆到种子仓库)。
由于我没有使用 Github,因此我无法使用Github 特定工具或库。这可能吗?
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
.
你可以使用这个命令行工具: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'
git 本身没有“合并请求”之类的东西。所以,如果这是可能的,它需要一些特定于你的 git 主机的东西。