Getting and Creating Projects
git init
Description
It is used to create a new Git repository. It sets up all the necessary files and directories that Git needs to track changes to a project.
Usage
git init [<directory>]If
<directory>is specified, Git will create a new repository in the specified directory.If no directory is specified, it initializes the repository in the current directory.
What It Does
Creates a
.gitDirectory: This directory contains all the repository metadata and configuration files necessary for Git to function, including subdirectories for objects, refs, and template files.Initializes a New Repository: If you run
git initin an existing directory, it will convert that directory into a Git repository without altering any existing files.Sets Up Initial Branch: It sets up the default branch (commonly named
mainormaster)
Running
git initis a safe operation; if run in an existing repository, it will not overwrite things that are already there.We can reinitialize an existing repository using
git initif necessary; it won’t affect the existing configuration or repository contents.The
.gitdirectory is what makes a directory a Git repository. If we delete this directory, we lose all version history.
Common Scenarios
Starting a New Project
This creates a new directory called new-project, changes into that directory, and initializes an empty Git repository.
Initializing an Existing Directory
This initializes a Git repository in the existing existing-project directory without changing any existing files.
Specifying a Directory
This creates a new directory called my-repo and initializes an empty Git repository inside it.
Post-Initialization Steps
After initializing a Git repository with git init, we typically perform the following steps:
Adding Files:
This stages all the files in the current directory, preparing them to be committed.
Making the First Commit:
This creates the first commit, which includes all the files added in the previous step.
Setting Up a Remote Repository (Optional):
If we want to link local repository to a remote repository (e.g., on GitHub, GitLab, or Bitbucket), we would add a remote repository URL.
Then push the local commits to the remote repository. Replace main with master if that is the default branch name in the setup.
git clone
Description
The git clone command is used to create a copy of an existing Git repository. This is one of the most commonly used commands in Git, allowing to obtain a working copy of a repository that is hosted remotely or locally.
Usage
<repository>: The URL or path of the repository to be cloned. This can be a remote repository URL or a local directory path.[<directory>]: The name of the new directory to be created for the cloned repository. If omitted, Git will create a new directory named after the repository.
Options
-lor--local: When the repository to clone is on the local machine, this flag will perform a local clone by making hard links, not actual file copies, when possible.--no-hardlinks: Clone without using hard links (default behavior when cloning from a local repository).--sharedor-s: Set up a shared clone with theobjectsdirectory being shared with the source repository.-qor--quiet: Suppress output during cloning.-vor--verbose: Show detailed output during cloning.--depth <depth>: Create a shallow clone with a history truncated to the specified number of commits.--branch <name>or-b <name>: Clone a specific branch.--single-branch: Clone only the history leading to the tip of a single branch, rather than all branches.--recurse-submodules: Initialize all submodules within the clone.--mirror: Clone a repository as a mirror, including all refs.
Remote URL Types: The repository URL can be an HTTPS URL, an SSH URL, a Git protocol URL, or a local file path.
HTTPS:
https://github.com/username/repository.gitSSH:
[email protected]:username/repository.gitGit:
git://github.com/username/repository.gitLocal:
/path/to/local/repository
Authentication: When cloning from a private repository, we may need to provide authentication details (username and password for HTTPS, SSH keys for SSH).
Mirroring: Using --mirror is different from a regular clone. It creates a bare repository that is a mirror of the remote repository, including all refs
Basic Examples
Clone a Remote Repository:
This creates a directory named repository and clones the repository into that directory.
Clone to a Specific Directory:
This clones the repository into a directory named myproject
Clone a Specific Branch:
This clones only the develop branch of the repository.
Create a Shallow Clone:
This creates a shallow clone with only the latest commit history.
Clone with Submodules:
This clones the repository and initializes and clones any submodules within it.
Last updated