Is it possible to create merge requests in pure Git from the command line?
Solution 1:
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
.
Solution 2:
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.