Diff and Merge tools
Araxis has been kind enough to give us free licenses for Araxis Merge if you work on open source, just submit a request at http://www.araxis.com/buy/open-source
Download from http://www.araxis.com/url/merge/download.uri
You will be prompted for your serial number when you run the application for the first time. To enter a new serial number into an existing installation, click the Re-Register... button in the About window.
Integrating Araxis to Git as your Diff and Merge tool
After installing Araxis Merge,
On Mac OS X,
Drag Araxis across to your
~/Applications
folder as normalCopy the contents of the Utilities folder to (e.g.)
/usr/local/araxis/bin
Add the path to your startup script:
export PATH="$PATH:/usr/local/araxis/bin"
In your .gitconfig file (tested on Mac OS X),
[diff] tool = araxis [difftool] prompt = false [merge] tool = araxis_merge [mergetool "araxis_merge"] cmd = araxisgitmerge "$PWD/$REMOTE" "$PWD/$BASE" "$PWD/$LOCAL" "$PWD/$MERGED"
Git Best Practices
This is just a personal preference, but it may be easier to create one Git branch per Jira/feature. E.g.,
git checkout trunk git checkout -b AMBARI12345 # create the branch and switch to it git branch --set-upstream-to=origin/trunk AMBARI12345 # set the upstream so that git pull --rebase will get the HEAD from trunk # Do work, git commit -m "AMBARI-12345. Foo (username)" # Do more work git commit --amend # edit the last commit git pull --rebase # If conflicts are detected, then run git mergetool # should be easy if you have Araxis Merge setup to do a 3-way merge git rebase --continue git push origin HEAD:trunk
Useful Git Commands
In your .gitconfig file,
[alias] st = status ci = commit br = branch co = checkout dc = diff --cached dtc = difftool --cached lg = log -p lsd = log --graph --decorate --pretty=oneline --abbrev-commit --all slast = show --stat --oneline HEAD pshow = show --no-prefix --format=format:%H --full-index pconfig = config --list
Also, in your ~/.bashrc or ~/.profile file,
alias branchshow='for k in `git branch|perl -pe s/^..//`;do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k|head -n 1`\\t$k;done|sort'
This command will show all of your branches sorted by the last commit times, which is useful if you develop one feature per branch.