#!/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 git add foo git commit -m add_foo_file 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' git merge left echo 'resolved' > conflict_file git add conflict_file echo 'new' > commit_introduced_file git add commit_introduced_file status 'try and make diff' cp .git/index .git/preserved-index GIT_INDEX_FILE=.git/preserved-index git ls-files --unmerged GIT_INDEX_FILE=.git/preserved-index git diff-files --name-only status 'done'