Created
May 8, 2026 19:42
-
-
Save gsusmonzon/13f1137c9435664a958e47c2a3a0a36d to your computer and use it in GitHub Desktop.
Mergiraf for macOS and Ruby + JS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| brew install mergiraf | |
| git config --global rerere.enabled true | |
| # zdiff3 can confuse Mergiraf in some cases. Use diff3 if it behaves badly | |
| git config --global merge.conflictstyle zdiff3 | |
| git config --global merge.mergiraf.name mergiraf | |
| git config --global merge.mergiraf.driver 'mergiraf merge --git %O %A %B -s %S -x %X -y %Y -p %P -l %L' | |
| git config --global merge.mergiraf.recursive binary | |
| mkdir -p ~/.config/git | |
| touch ~/.config/git/attributes | |
| set start '# BEGIN mergiraf' | |
| set end '# END mergiraf' | |
| set tmp (mktemp) | |
| awk -v start="$start" -v end="$end" ' | |
| $0 == start { skip=1; next } | |
| $0 == end { skip=0; next } | |
| !skip { print } | |
| ' ~/.config/git/attributes > $tmp | |
| begin | |
| cat $tmp | |
| echo $start | |
| echo '*.js merge=mergiraf' | |
| echo '*.jsx merge=mergiraf' | |
| echo '*.ts merge=mergiraf' | |
| echo '*.tsx merge=mergiraf' | |
| echo '*.json merge=mergiraf' | |
| echo '*.rb merge=mergiraf' | |
| echo 'Gemfile merge=mergiraf' | |
| echo 'Gemfile.lock merge=mergiraf' | |
| echo 'package-lock.json merge=mergiraf' | |
| echo 'yarn.lock merge=mergiraf' | |
| echo 'pnpm-lock.yaml merge=mergiraf' | |
| echo $end | |
| end > ~/.config/git/attributes | |
| rm $tmp | |
| git config --global core.attributesfile ~/.config/git/attributes | |
| mergiraf --version | |
| git config --global --get-regexp 'merge\.mergiraf|rerere|merge\.conflictstyle|core\.attributesfile' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment