-
- #!/usr/bin/env bash
-
-
- YELLOW='\033[43;30m'
- NORMAL='\033[0m'
-
-
- status() {
- echo -e "$YELLOW$@$NORMAL"
- }
-
-
- cd /tmp
-
- status 'init git repo'
- git init tmp_repo
- cd tmp_repo
-
- status 'add commit to original repo'
- touch foo bar
- git add foo bar
- git commit -m add_foo_bar_files
- cd ..
-
- status 'clone repo'
- git clone tmp_repo tmp_repo_clone
- cd tmp_repo_clone
-
- status 'checkout and make left branch'
- git checkout origin/master -b left
- echo 'left' > left_only_file
- git add left_only_file
- echo 'left' > conflict_file
- git add conflict_file
- git commit -m conflict_left
-
- status 'checkout and make right branch'
- git checkout origin/master -b right
- echo 'right' > right_only_file
- git add right_only_file
- echo 'right' > conflict_file
- git add conflict_file
- git commit -m conflict_right
-
- status 'merge left, preserve index file'
- git merge left
- cp .git/index .git/preserved-index
- status 'resolve conflicts'
- echo 'resolved' > conflict_file
- git add conflict_file
- echo 'gratuitous edit' >bar
- git add bar
- echo 'new' > commit_introduced_file
- git add commit_introduced_file
-
- status 'try and make diff'
- GIT_INDEX_FILE=.git/preserved-index git ls-files --unmerged
- GIT_INDEX_FILE=.git/preserved-index git diff-files --name-only
-
- status 'done'
-