diff options
Diffstat (limited to 'git-checkout.sh')
| -rwxr-xr-x | git-checkout.sh | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/git-checkout.sh b/git-checkout.sh index 99a81f509a..14835a4aa9 100755 --- a/git-checkout.sh +++ b/git-checkout.sh @@ -164,22 +164,9 @@ If you want to create a new branch from this checkout, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b <new_branch_name>" fi -elif test -z "$oldbranch" && test -n "$branch" +elif test -z "$oldbranch" && test -z "$quiet" then - # Coming back... - if test -z "$force" - then - git show-ref -d -s | grep "$old" >/dev/null || { - echo >&2 \ -"You are not on any branch and switching to branch '$new_name' -may lose your changes. At this point, you can do one of two things: - (1) Decide it is Ok and say 'git checkout -f $new_name'; - (2) Start a new branch from the current commit, by saying - 'git checkout -b <branch-name>'. -Leaving your HEAD detached; not switching to branch '$new_name'." - exit 1; - } - fi + echo >&2 "Previous HEAD position was $old" fi if [ "X$old" = X ] @@ -257,7 +244,7 @@ if [ "$?" -eq 0 ]; then fi if test -n "$branch" then - GIT_DIR="$GIT_DIR" git-symbolic-ref HEAD "refs/heads/$branch" + GIT_DIR="$GIT_DIR" git-symbolic-ref -m "checkout: moving to $branch" HEAD "refs/heads/$branch" if test -z "$quiet" then echo >&2 "Switched to${newbranch:+ a new} branch \"$branch\"" @@ -270,8 +257,9 @@ if [ "$?" -eq 0 ]; then # git update-ref --detach HEAD $new # or something like that... # - echo "$detached" >"$GIT_DIR/HEAD.new" && - mv "$GIT_DIR/HEAD.new" "$GIT_DIR/HEAD" || + git-rev-parse HEAD >"$GIT_DIR/HEAD.new" && + mv "$GIT_DIR/HEAD.new" "$GIT_DIR/HEAD" && + git-update-ref -m "checkout: moving to $arg" HEAD "$detached" || die "Cannot detach HEAD" if test -n "$detach_warn" then |
