The following is the command I use to checkout a specific commit.
git clone git:// git checkout <commitID> I want to do the above in one step - using a git clone command only.
The reason why I want to do this is, repo123 is very huge. So checking out the commit I want will save me a lot of time.
I am aware of --depth option. But in this case, it is of no use. Can anyone tell me how to do it?
4 Answers
git clone u://r/l --branch x still clones everything but sets the local HEAD to that branch so it's the one checked out.
1--branch <name>
-b <name>
Instead of pointing the newly created HEAD to the branch pointed to by the cloned repository’s HEAD, point to<name>branch instead. In a non-bare repository, this is the branch that will be checked out.--branchcan also take tags and detaches the HEAD at that commit in the resulting repository.
Is your problem the checkout being to large or the repository itself? As git clone, well, clones a repository you usually get the whole repository in its full size. (unless you are doing a shallow clone as you already suggested.)
If it's really about the checkout of the wrong branch git help clone says:
--no-checkout, -n No checkout of HEAD is performed after the clone is complete. After cloning with -n you can manually check out
I was running into a same situation and it worked well with the Git Clone Command with --depth. And specify the branch-name/commit/Tag-Name at the end of the command with -b parameter.
Syntax:
git clone --depth 1 github.com:ORG-NAME/Repo.git -b <Branch-Name/Commit-Number/TAG> 1I think you just want to be able to "walk away" and return when both steps have completed. I use this line for two long-running commands on a single line -- and I like to "time" the overall action.
The trick is the semi-colon between each command.
$ time (git clone git:// ; git checkout <commitID>)