Take diffs between local and a github repository files.
Add this line to your application's Gemfile:
gem 'gh-diff'
And then execute:
$ bundle
Or install it yourself as:
$ gem install gh-diff
Gh-Diff have gh-diff
terminal command.
% gh-diff
Commands:
gh-diff diff LOCAL_FILE [REMOTE_FILE] # Compare FILE(s) between local and remote repository. LOCAL_FILE can be DIRECTORY.
gh-diff dir_diff DIRECTORY # Print added and removed files in remote repository
gh-diff get FILE # Get FILE content from github repository
gh-diff help [COMMAND] # Describe available commands or one specific command
Options:
-g, [--repo=REPO] # target repository
-r, [--revision=REVISION] # target revision
# Default: master
-p, [--dir=DIR] # target file directory
[--username=USERNAME] # github username
[--password=PASSWORD] # github password
[--token=TOKEN] # github API access token
To take diff of README.md
for 'melborne/tildoc' repo, do this;
% gh-diff diff README.md --repo=melborne/tildoc
Diff found on README.md <-> README.md [6147df8:master]
By setting --name_only
option false, the diff will be print out.
% gh-diff diff README.md --repo=melborne/tildoc --no-name_only
Base revision: 6147df8378545a4807a2ed73c9e55f8d7204c14c[refs/heads/master]
--- README.md
+++ README.md
Add String#~ for removing leading margins of heredocs.
-Added this line to local.
-
## Installation
Add this line to your application's Gemfile:
To save the result of diff, put --save
option to diff command.
If you have translated files in which original text inserted with
html comment tags, and want to compare the original with the remote,
commentout
option helps you.
% gh-diff diff README.ja.md README.md --commentout
This extract commented text in README.ja.md
, then compare it with remote README.md
.
See gh-diff help diff
for more info.
These options can be preset as ENV variables with prefix GH_
% export GH_USERNAME=melborne
% export GH_PASSWORD=xxxxxxxx
% export GH_TOKEN=1234abcd5678efgh
Also, you can set them in .env
file in the root of your project.
#.env
REPO=jekyll/jekyll
DIR=site
ENVs in .env
overwrite global ENVs with prefix GH_
.
There is rate limit for accessing GitHub API. While you can make it up with Basic Authentication(username and password) or Personal API tokens, setting them are preferable.
Gh-Diff
is born through jekyllrb-ja project,
whose aim is to provide a Jekyll site in Japanese.
The basic idea of Gh-Diff
is from togglate task in Rakefile
of the project
which is created by gosyujin(kk_Ataka). I want to thank him.
- Fork it ( https://github.com/[my-github-username]/gh-diff/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request