Git is the most popular version control management tool/system today. Being distributed in nature, it facilitates lower risk of losing the whole repo out-of-the-blue. Because, user always has a copy of the repo. And there are a lot of vendors, offering hosted git server. And most the offerings are free with a reasonable limit.
I’ve been using Git for quite a long time. Though I’m not that much familiar with advanced concepts or complex scenarios regarding Git. To do day-to-day normal tasks, mostly I use only six commands(
pull), with some flags some times. It’s true that I don’t do very complex things with it. But those four commands are enough for me. In this post, I’m iterating those commands one-by-one, possibly with some comments.
Okay, let’s start by creating a
git repo with
It’s as simple as that. After running this command, you can see, one folder with name
.git has been created. This folder is going to hold all the meta information for the repository. Git actually maintains
hash for a particular commit. Those information also reside in this folder. Now create some content.
Most of the Git host servers shows the content of
README.md as default face of a directory. It’s kind of
index.html in a website. The extension
.md stands for
mark-down. It’s a pre-defined format to write documents, that can be converted into HTML/PDF or any other type, by some tool. There are a lot of implementation of this converter. Though there is a standard for the syntax for
mark-down but it mostly depend on the converter in use. GitHub, GitLab, Bitbucket all have implemented their own version of
HTML converter. Though their most of the syntaxes are same, there are some extras also. But for now, we don’t have to bother with the
mark-down syntax compatibility of various providers. We are gonna just add one
echo "# New Git Repo" > README.md
# will tell the converter to make the title as
h1 element in
HTML. Git has two very important concepts.
Add the user info to the local repo.
git config user.name "Arnab Das"
Add user info for the work environment.
git config --global user.name "Arnab Das"
git commit -m "Adding README.md"
Add the remote. It’s possible to mention the name of the remote other than
origin. It’s just the most common one.
git add remote origin <origin-url>
Create new branch and
checkout to the branch.
git checkout -b new_branch
Clone a git repo.
git clone <git-repo-url> [optional-folder-name]
Checkout to a branch. Both the following commands does the same thing. Creates a local branch named
new_branch from the remote branch
new_branch. Only difference is that, it’s possible to mention a different branch name in the first command.
git checkout -b new_branch origin/new_branch
See the branch names.
# lists only the local branches
Delete a branch locally.
git branch -d <branch-name>
Delete the branch in remote.
git push <remote-name> :<branch-to-delete>