On 2/1/07, Josef Weidendorfer <Josef.Weidendorfer@xxxxxx> wrote:
On Wednesday 31 January 2007, Carl Worth wrote: > > It would be nice if: > > > > git clone -b ${branch} git://... Nice indeed. Additionally, it would be nice for clone to directly checkout tags. Why not an option "--checkout <ref>" to directly checkout <ref> after cloning?
Maybe, I'm not sure.
> In addition, it would be great to have a command that did the same > setup within an existing repository. Why not use "git clone" for this? Currently, the man page says about the directory it will clone into: "Cloning into an existing directory is not allowed." But we could relax this: if the specified directory is the root of a checkout (ie. with a .git subdir), we would clone a remote repository into the same local repository.
You can do it with git-remote. I think it is sensible to have a command to get a new repository and a command to have a new remote. For the "work on the non-HEAD branch" I think we could have: # clone a remote repository and start working with branch ${branch} $ git clone -b ${branch} ${url} # add a new branch based on a remote branch, # and configure to pull from there. $ git branch ${branch} ${remote_branch} $ git checkout -b ${branch} ${remote_branch} as you see it is the current syntax, so I suggest to automatically setup the branch.${branch}.{remote,merge} configs to follow the ${remote_branch} if this is sensible. So for example $ git clone ${url_of_git.git} $ cd git $ git checkout -b maint origin/maint $ git-config -l | grep ^branch.maint branch.master.remote=origin branch.master.merge=refs/heads/maint ( or branch.master.merge=refs/remotes/origin/maint ) This changes the current behaviour, but I think it make sense. If this is not possible another way would be to have another option (-r for remote, or -f for follow, or -p for pull, or -m for merge, ...) as: $ git branch ${branch} -r ${remote_branch} $ git checkout -b ${branch} -r ${remote_branch} And if you want to add/change the remote/merge config for an existing branch, in addition to doing this with git-config, git-remote could do it as it currently shows the tracking branches. Santi - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html