aboutsummaryrefslogtreecommitdiff
path: root/git-pull.sh
diff options
context:
space:
mode:
Diffstat (limited to 'git-pull.sh')
-rwxr-xr-xgit-pull.sh9
1 files changed, 8 insertions, 1 deletions
diff --git a/git-pull.sh b/git-pull.sh
index f323f56bc..2c502171f 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -260,9 +260,16 @@ case "$merge_head" in
;;
esac
+# Pulling into unborn branch: a shorthand for branching off
+# FETCH_HEAD, for lazy typers.
if test -z "$orig_head"
then
- git read-tree -m -u $merge_head &&
+ # Two-way merge: we claim the index is based on an empty tree,
+ # and try to fast-forward to HEAD. This ensures we will not
+ # lose index/worktree changes that the user already made on
+ # the unborn branch.
+ empty_tree=4b825dc642cb6eb9a060e54bf8d69288fbee4904
+ git read-tree -m -u $empty_tree $merge_head &&
git update-ref -m "initial pull" HEAD $merge_head "$curr_head"
exit
fi