git-pull
#!/usr/bin/env bash
echo "Start git pull!"
branch="$1"
branch_dir="$2"
git_dir="$3"
cd "$branch_dir"
git_status=$(git --git-dir="$git_dir" --work-tree="$branch_dir" status --porcelain)
if [[ -n "$git_status" ]];then
echo "Clean Repo\n"
echo "\n--\n"
git --git-dir="$git_dir" --work-tree="$branch_dir" clean -fd
git --git-dir="$git_dir" --work-tree="$branch_dir" reset --hard
fi
echo -n "\n--\n"
git --git-dir="$git_dir" --work-tree="$branch_dir" checkout "$branch"
git_status=$(git --git-dir="$git_dir" --work-tree="$branch_dir" status --porcelain)
echo -n "\nGit Status: $git_status\n"
if [[ -n "$git_status" ]];then
echo -n "Clean Repo\n"
echo -n "\n--\n"
git --git-dir="$git_dir" --work-tree="$branch_dir" clean -fd
git --git-dir="$git_dir" --work-tree="$branch_dir" reset --hard
fi
echo -n "\n--\n"
git --git-dir="$git_dir" --work-tree="$branch_dir" fetch --update-head-ok origin "$branch"
git_status=$(git --git-dir="$git_dir" --work-tree="$branch_dir" status --porcelain)
echo -n "\nGit Status: $git_status\n"
if [[ -n "$git_status" ]];then
echo -n "Clean Repo\n"
echo -n "\n--\n"
git --git-dir="$git_dir" --work-tree="$branch_dir" clean -fd
git --git-dir="$git_dir" --work-tree="$branch_dir" reset --hard
fi
echo -n "\n--\n"
commit_hash=$(git --git-dir="$git_dir" --work-tree="$branch_dir" log --pretty=format:"%H" -n 1 "$branch")
git --git-dir="$git_dir" --work-tree="$branch_dir" checkout "$commit_hash"