Cloning

20.1 What Cloning Does

When you clone a repository, Git:
• Downloads the entire commit history
• Creates a local working directory
• Automatically sets up the origin remote
• Links local branches to remote-tracking branches
Cloning is one-time setup per machine.

20.2 Basic Clone Command

1git clone <repository-url>

Example:
1git clone https://github.com/username/project.git
This creates a new folder named after the repository.

20.3 Cloning with SSH vs HTTPS

HTTPS
1git clone https://github.com/username/project.git
• Easy to start
• Requires authentication on push

SSH
1git clone git@github.com:username/project.git
• Requires SSH key setup
• No repeated authentication
• Preferred for long-term work

20.4 Cloning into a Custom Directory

1git clone <repo-url> <folder-name>

Example:
1git clone https://github.com/username/project.git my-project

20.5 Shallow Cloning (Partial History)

To download only recent commits:
1git clone --depth 1 <repo-url>

Useful when:
• Repo is very large
• You only need the latest state
• History is not required

20.6 Cloning a Specific Branch

1git clone -b develop <repo-url>

This checks out the specified branch instead of the default one.

20.7 Fork vs Clone (Quick Clarification)

• Clone → local copy of a repository
• Fork → server-side copy under your GitHub account
Typical open-source flow:
1. Fork repository
2. Clone your fork
3. Push changes to your fork
4. Create a Pull Request

20.8 Key Takeaways

• git clone creates a full local copy of a remote repository.
• Cloning automatically sets up origin and branch tracking.
• SSH cloning is preferred for frequent contributors.
• Shallow clones save time and space for large repositories.
• Forking and cloning serve different purposes.