Is it possible to create merge requests in pure Git from the command line?
You may use this command line tool: https://github.com/brauliobo/gitorious-merge-request
./gitorious-merge-request -e [email protected] -s 'test' -r '~brauliobo/noosfero/brauliobos-noosfero' -a easysafeinstall -b master -t 'noosfero/noosfero'
The answer given by svick is not correct. It is possible.
There's git request-pull
which is part of the Git suite. Using that command line tool, you could create a pull request that could be sent per E-Mail.
Example:
your origin
holds a branch master
. Now you create a local bugfix branch fix
, implement the bug fix and push that fix
branch to origin
:
git push origin fix:fix
Then, you want someone to merge the changes made in the fix
branch into master
. Create the pull request with
git request-pull master origin
This will create a text formatted as follows:
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>
If the merge request shall go to somebody that cannot access your repo where you pushed your changes, there's always the opportunity of doing it with git format-patch
.
After pushing your fix
branch to origin
(you don't even need to do that), while being on the fix
branch create the patch using
git format-patch master..
This will create a patch file for each commit you did in fix
since branching off master
. You could bundle the generated .patch
files with
tar czf fix.tgz *.patch
and then send to someone e.g. via E-Mail to review and apply.
For the sake of completeness: applying the patches could be done with git am
.
There is no such thing as “merge request” in git itself. So, if this would be possible, it would require something specific to your git host.
Gitlab add this feature from v11.10. After committing your final changes, instead of push
simply use:
git push -o merge_request.create
to create a merge request. More details in push docs or merge request docs.