About
git clone creates a clone known as local repository from a remote repository.
cloning in git means:
- downloading the remote repository into a newly created directory
- setting for each downloaded branch (ie remote branch) their remote-tracking branches
- set the current branch (active) to the remote current branch.
The command is “clone” and not “checkout” ( instead of getting just a working copy, Git receives a full copy of nearly all data that the server has.)
After a first clone of a repository, all files will be tracked, and unmodified because they are just checked out and haven’t been edited.
If you just want to download, see the download page
Example
How to clone basic
- Creates a directory named “directoryWhereIwantMyCheckoutData” (The default name is the name of the git file in the URL)
- Get the clone URL from the Web
git clone https://github.com/gerardnico/the-name-of-my-repository.git directoryWhereIwantMyCheckoutData
Cloning into 'directoryWhereIwantMyCheckoutData'...
remote: Counting objects: 77, done.
remote: Total 77 (delta 0), reused 0 (delta 0), pack-reused 77
Unpacking objects: 100% (77/77), done.
Checking connectivity... done.
It will:
How to clone with only the last commit state?
git clone --depth=1 https://.....git .
How to clone if the directory is not empty
git init
git pull https://.....git "branch"
How to clone and checkout a branch
git clone --branch=stable https://.....git .
How to clone locally?
How to clone a local repository to another local repository path.
git -C targetRepoPath clone localRepoPath
- example on windows
git -C C:/Users/userName/AppData/Local/Temp/kamal-clones/postgres-b8bf8c33aa7c4 clone C:/code/infra
Command
Clone an existing Git repository from another server.
git clone [option] [url] [directory]
We can also use the following protocol in place of https:
- git://
- ssh with user@server:path/to/repo.git
- –depth 1 grabs the current file state and no history (handy for a build)
More? See docs/git-clone.html
Functionality
Git’s clone command automatically:
- create the origin name,
- creates a pointer to where its master branch is,
- names it origin/master locally.
- create a local master branch starting at the same place as origin’s master branch (where you will work to)