#!/bin/bashset -eu -o pipefail git init -qgit config core.autocrlf false git checkout -q -b main if [ -n "${1:-}" ]; then mkdir "$1" cd "$1"fi touch fgit add fgit commit -qm 'f added' echo m > fgit commit -qam 'f modified' rm fgit commit -qam 'f deleted' echo m > fgit add fgit commit -qam 'f re-added same content' mv f f.tmpmkdir fmv f.tmp f/fgit add f/git commit -qam 'f mode modified to dir f/' echo m >> f/fgit commit -qam 'f/f modified' touch agit add agit commit -qam 'a added' touch f/a f/bgit add f/git commit -qam 'f/a f/b added' rm f/fln -s a f/fgit commit -qam 'f/f mode changed to link' git mv a bgit commit -qam 'a renamed to b' git rm -r ftouch fgit add fgit commit -qam 'f/ changed into file f' mkdir dtouch d/fgit add dgit commit -qam 'add d/f' rm -r d/git commit -qam 'delete d/' touch c d egit add .git commit -qam 'add /c /d /e' mkdir gtouch g/agit add ggit commit -qam 'add g/a' git rm c d egit commit -qam 'remove /c /d /e' git rm ftouch ffgit add ffgit commit -qam 'rm /f, add /ff' touch g/aagit rm g/agit add g/aagit commit -qam 'rm g/a, add g/aa' git rm fftouch fgit add fgit commit -qam 'rm /ff, add /f' rm g/aatouch g/agit add g/agit commit -qam 'rm g/aa, add g/a'
#!/bin/bash
set -eu -o pipefail
git init -q
git config core.autocrlf false
git checkout -q -b main
if [ -n "${1:-}" ]; then
mkdir "$1"
cd "$1"
fi
touch f
git add f
git commit -qm 'f added'
echo m > f
git commit -qam 'f modified'
rm f
git commit -qam 'f deleted'
echo m > f
git add f
git commit -qam 'f re-added same content'
mv f f.tmp
mkdir f
mv f.tmp f/f
git add f/
git commit -qam 'f mode modified to dir f/'
echo m >> f/f
git commit -qam 'f/f modified'
touch a
git add a
git commit -qam 'a added'
touch f/a f/b
git add f/
git commit -qam 'f/a f/b added'
rm f/f
ln -s a f/f
git commit -qam 'f/f mode changed to link'
git mv a b
git commit -qam 'a renamed to b'
git rm -r f
touch f
git add f
git commit -qam 'f/ changed into file f'
mkdir d
touch d/f
git add d
git commit -qam 'add d/f'
rm -r d/
git commit -qam 'delete d/'
touch c d e
git add .
git commit -qam 'add /c /d /e'
mkdir g
touch g/a
git add g
git commit -qam 'add g/a'
git rm c d e
git commit -qam 'remove /c /d /e'
git rm f
touch ff
git add ff
git commit -qam 'rm /f, add /ff'
touch g/aa
git rm g/a
git add g/aa
git commit -qam 'rm g/a, add g/aa'
git rm ff
touch f
git add f
git commit -qam 'rm /ff, add /f'
rm g/aa
touch g/a
git add g/a
git commit -qam 'rm g/aa, add g/a'