SYNOPSIS
--------
-'git-clone' [-l [-s]] [-q] [-n] [-u <upload-pack>] <repository> [<directory>]
+'git-clone' [-l [-s]] [-q] [-n] [-o <name>] [-u <upload-pack>] <repository> [<directory>]
DESCRIPTION
-----------
-n::
No checkout of HEAD is performed after the clone is complete.
+-o <name>::
+ Instead of using the branch name 'origin' to keep track
+ of the upstream repository, use <name> instead. Note
+ that the shorthand name stored in `remotes/origin` is
+ not affected, but the local branch name to pull the
+ remote `master` branch into is.
+
--upload-pack <upload-pack>::
-u <upload-pack>::
When given, and the repository to clone from is handled
unset CDPATH
usage() {
- echo >&2 "Usage: $0 [-l [-s]] [-q] [-u <upload-pack>] [-n] <repo> [<dir>]"
+ echo >&2 "Usage: $0 [-l [-s]] [-q] [-u <upload-pack>] [-o <name>] [-n] <repo> [<dir>]"
exit 1
}
local_shared=no
no_checkout=
upload_pack=
+origin=origin
while
case "$#,$1" in
0,*) break ;;
*,-s|*,--s|*,--sh|*,--sha|*,--shar|*,--share|*,--shared)
local_shared=yes; use_local=yes ;;
*,-q|*,--quiet) quiet=-q ;;
+ 1,-o) usage;;
+ *,-o)
+ git-check-ref-format "$2" || {
+ echo >&2 "'$2' is not suitable for a branch name"
+ exit 1
+ }
+ origin="$2"; shift
+ ;;
1,-u|1,--upload-pack) usage ;;
*,-u|*,--upload-pack)
shift
mkdir -p .git/remotes &&
echo >.git/remotes/origin \
"URL: $repo
-Pull: $head_points_at:origin" &&
- cp ".git/refs/heads/$head_points_at" .git/refs/heads/origin &&
+Pull: $head_points_at:$origin" &&
+ git-update-ref "refs/heads/$origin" $(git-rev-parse HEAD) &&
find .git/refs/heads -type f -print |
while read ref
do
head=`expr "$ref" : '.git/refs/heads/\(.*\)'` &&
test "$head_points_at" = "$head" ||
- test "origin" = "$head" ||
+ test "$origin" = "$head" ||
echo "Pull: ${head}:${head}"
done >>.git/remotes/origin
esac