Skip to content

Specific use cases

vgheo edited this page Apr 24, 2016 · 8 revisions

External links

Git detached work tree

$ GIT_WORK_TREE=/var/www/www.example.org git checkout -f

References:

Partial Clone / remove old commits

reference

git clone --depth <n> <url>
git clone  --single-branch

different remotes for pull and push

git remote set-url --push

Merge customization

Merge is controlled by

  • strategy
  • drivers

Automatic merge is performed by external programs called 'merge drivers'.

Built-in drivers

  • text -- show ancestor version : config variable merge.conflictstyle=diff3
  • binary - keep the version on the current branch in worktree, but leave path in conflict (for manual merge)
  • union

Configure a custom merge driver

  • On PATH: git-merge-mydriver
  • .git/config:
merge.mydriver.driver=git-merge-mydriver %O %A %B
  • .gitattributes:
filename merge=mydriver

refs

Diff customization

  • diff driver
  • text diff on binary files (pre-diff filter)

refs: