A Git CLI cheat-sheet

A Git CLI cheat-sheet

ยท

4 min read

Hello, amazing people ๐Ÿ‘‹

I am finally back in ๐Ÿand after a 20 hour flight, I needed some time to relax and get back to my EST time zone schedule.

This week I had some fun with cleaning up my Github, while I was doing that I realized why not create a Git CLI cheat sheet to help other.

image.png

Now, let me get started with Git.

What is Git?

Git is a free, open-source version control software. It was made by Linus Torvalds in 2005. This tool is a version control system that was at first evolved to work with a few engineers on the Linux Kernel.

This basically means that Git is a content tracker. So Git can be used to store content โ€” and it is mostly used to store code because of the other features it provides.

Real life projects generally have multiple developers working in parallel. So they need a version control system like Git to ensure that there are no code clashes between them.

The branch system in Git permits developers to work independently on an undertaking (For instance: One branch - > One errand OR One branch - > One developer). Fundamentally consider Git a little programming application that controls your code base, in case you're a developer.

So to begin utilizing Git, we need to realize where to have our repositories.

A repository (or "Repo" for short) is a task that contains numerous documents. For our situation a repository will contain code-based records.

There are two different ways you can have your repositories. One is on the web (on the cloud) and the second is not on web (self-hosted).

There are three well known hosting services: GitHub, GitLab and BitBucket.

I would like to share this amazing article 'The Beginners Guide to Git' by Thanoshan MV.

Now let's get to the the cli commands.

Some Git CLI commands

Git : Configure

  • git config --global user.email "youremail@example.com " sets email address respectively to be used with your commits.

  • git config --global user.name "FirstName LastName" sets the author name.

  • git config --list command to list all the settings Git can find at that point.

  • git config --global color.ui true Git automatically colors of its output.

Git : commit to repository

  • git commit -m "Add three files" command records or snapshots the file permanently in the version history.

  • git commit --amend -m <enter your message> command allows you to change the commit message.

Git : branching

  • git branch command lists all the local branches in the current repository.

  • git branch <branch-name> command creates a new branch.

  • git checkout <branch-name> command is used to switch from one branch to another.

  • git merge <branch-name> command merges the specified branchโ€™s history into the current branch.

  • git checkout -b <branch-name> command creates a new branch and also switches to it.

Git : Initiating a repository

  • git init command is used to start a new repository.

  • git status command lists all the files that have to be committed.

Git : Pulling & pushing from and to repositories

  • git remote add origin <link-to-repo> ommand is used to connect your local repository to the remote server.

  • git push -u origin main command sends the committed changes of main branch to your remote repository.

  • git clone <link-to-clone-repo> command is used to obtain a repository from an existing URL.

  • git pull command fetches and merges changes on the remote server to your working directory.

Git : Staging

  • git add <file-name> command adds a file to the staging area.

  • git add <file-name> <second-file-name> <third-file-name> command adds one or more files to the staging area.

  • git add . command adds all files under the current directory to the staging area.

  • git add --all command finds all new and updated files everywhere throughout the project and add them to the staging area.

  • git add -A Same as --all

  • git rm --cached <file-name>

  • git reset <file-name> command unstages the file, but it preserves the file contents

The PDF version of the same is available here.

Hope this is helpful, and if you have any concerns or feedback feel free to reach out on Twitter, my dms are open ๐Ÿ™‚.