Chapters ▾ 2nd Edition

A3.2 Appendix C: Git Commands - Getting and Creating Projects

Getting and Creating Projects

There are two ways to get a Git repository. One is to copy it from an existing repository on the network or elsewhere and the other is to create a new one in an existing directory.

git init

To take a directory and turn it into a new Git repository so you can start version controlling it, you can simply run git init.

We first introduce this in Getting a Git Repository, where we show creating a brand new repository to start working with.

We talk briefly about how you can change the default branch name from “master” in Remote Branches.

We use this command to create an empty bare repository for a server in Putting the Bare Repository on a Server.

Finally, we go through some of the details of what it actually does behind the scenes in Plumbing and Porcelain.

git clone

The git clone command is actually something of a wrapper around several other commands. It creates a new directory, goes into it and runs git init to make it an empty Git repository, adds a remote (git remote add) to the URL that you pass it (by default named origin), runs a git fetch from that remote repository and then checks out the latest commit into your working directory with git checkout.

The git clone command is used in dozens of places throughout the book, but we’ll just list a few interesting places.

It’s basically introduced and explained in Cloning an Existing Repository, where we go through a few examples.

In Getting Git on a Server we look at using the --bare option to create a copy of a Git repository with no working directory.

In Bundling we use it to unbundle a bundled Git repository.

Finally, in Cloning a Project with Submodules we learn the --recurse-submodules option to make cloning a repository with submodules a little simpler.

Though it’s used in many other places through the book, these are the ones that are somewhat unique or where it is used in ways that are a little different.