https://github.com/deradon/octo-merge
octo-merge is a simple command line tool to merge GitHub pull requests using different strategies
https://github.com/deradon/octo-merge
git github ruby ruby-gem rubygem
Last synced: 9 months ago
JSON representation
octo-merge is a simple command line tool to merge GitHub pull requests using different strategies
- Host: GitHub
- URL: https://github.com/deradon/octo-merge
- Owner: Deradon
- License: mit
- Created: 2016-02-29T22:56:55.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2019-03-12T16:32:29.000Z (almost 7 years ago)
- Last Synced: 2025-04-06T00:03:14.676Z (10 months ago)
- Topics: git, github, ruby, ruby-gem, rubygem
- Language: Ruby
- Homepage:
- Size: 77.1 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[](https://travis-ci.org/Deradon/octo-merge)
**WARNING**
This is still **WIP**. Using this tool will change your local master branch
and under certain circumstances some of your feature branches too!
Use at your own risk!
# OctoMerge
`octo-merge` is a simple command line tool to merge GitHub pull requests using different strategies.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'octo-merge'
```
And then execute:
$ bundle
Or install it yourself as:
$ gem install octo-merge
## Setup / Configure
If you do not want to provide your GitHub login credentials every time you
call `octo-merge` you can easily set these in your `~/.octo-merge.yml`.
Feel free to use the included setup task:
```
octo-merge --setup
```
## Examples
```
# Within your shell
octo-merge \
--repo=rails/rails \
--dir=~/Dev/Rails/rails \
--pull_requests=23,42 \
--login=Deradon \
--password= \
--strategy=MergeWithRebase
```
* You can find your API token [here](https://github.com/settings/tokens)
## Available Strategies
* NOTE: All strategies are using read-only branches for a specific pull requests.
This way we avoid adding lot of remotes.
* Read more: [Checking out pull requests locally](https://help.github.com/articles/checking-out-pull-requests-locally/)
### MergeWithoutRebase
```
# Reset master
git checkout master
git fetch upstream
git reset --hard upstream/master
# For each pull request
git fetch upstream pull/23/head:pull/23 --force"
git merge --no-ff pull/23
git branch -D pull/23
```
### MergeWithRebase
```
# Reset master
git checkout master
git fetch upstream
git reset --hard upstream/master
# For each pull request
git fetch upstream pull/23/head:pull/23 --force"
git checkout pull/23
git rebase master
git checkout master
git merge --no-ff pull/23
git branch -D pull/23
```
### Rebase
```
# Reset master
git checkout master
git fetch upstream
git reset --hard upstream/master
# For each pull request
git fetch upstream pull/23/head:pull/23 --force"
git checkout pull/23
git rebase master
git checkout master
git rebase pull/23
git branch -D pull/23
```
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/Deradon/octo-merge. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
## License
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).