Master Git Commands with This Handy Cheat Sheet 📜
Tags: git, programming, codenewbie, tutorial
Published: 2023-06-30 15:39:34

Git, the widely used distributed version control system, has revolutionized the way developers collaborate and manage their codebases. Whether you're a seasoned developer or just starting your coding journey, having a solid understanding of essential Git commands is crucial for maintaining an efficient workflow and ensuring the integrity of your projects.

As said by Ben Collins-Sussman, _Co-founder of Google Code_ 👇🏾
 
> Git is a powerful tool for distributed version control. It is a way to ensure that your project evolves gracefully over time, no matter how many people are working on it.


_Now steal this git cheat sheet I prepared for you 😀_

🔗**Configurations**
- Configure your name. This would serve as the author of the commit : `git config --global user.name "[fistname lastname]"`
- Configure your email. This would serve as the email of the author : `git config --global user.email "[your_email]"`

🌱**Initialization**
- Initialize a new Git repository : `git init`
- Create a local copy of a remote repository : `git clone <repository_url>`
- Add a remote repository : `git remote add <remote_name> <remote_url>`

📝**Basic Workflow**
- Add a file to the staging area : `git add <filename>`
- Add **all** files to the staging area : `git add .`
- Commit changes to the repository : `git commit -m "[commit_message]"`

🔁**Updating and Publishing**
- Publish all local commits to a remote branch : `git push <remote_name> <branch_name>`
- Publish all local commits to a new branch : `git push -u <remote_name> <branch_name>`
- Update the local repository : `git pull`
- Download remote changes without merging : `git fetch`

🌿**Branches**
- Create a new branch : `git branch <branch_name>`
- Switch to a branch : `git checkout <branch_name>`
- Create a new branch and switch to it : `git checkout -b <branch_name>`
- List all the branches : `git branch -a`
- Determine your current branch : `git branch`

🔀**Merging**
- Combine changes of one branch to your current branch : `git merge <branch_name>`
- Reapply commits on top of another base commit : `git rebase <branch_name>`

🔃**Resets**
- Discard all local changes : `git reset --hard HEAD`

🔍**Status and History**
- View the status of the working directory : `git status`
- Show difference between commits or the working directory : `git diff`
- Show commit history : `git log`
- Display who last modified each line of a file : `git blame`

💼**Additional commands**
- Remove untracked files : `git clean -f`

### Useful tips ✍🏾
- Don’t EVER commit private keys / Api keys / certificates.
- Use descriptive commit messages and branch names.
- Create a branch for every new feature, and delete the branch once the feature is merged into main.
- Ignore some files using a `.gitignore` file.
- Regularly update and sync with remote repositories
- Use [git alias](https://www.atlassian.com/git/tutorials/git-alias) for frequently used commands.

_Visit [Atlassian](https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet) or [GitHub Education](https://education.github.com/git-cheat-sheet-education.pdf) to read more on other advanced git commands_🔥

In conclusion, mastering Git commands is crucial for efficient version control and collaboration in software development, enabling developers to effectively manage projects and streamline workflows.

Did you learn anything new ❓ Share it in the comments. 

Let's get interactive on [Twitter](https://www.twitter.com/_angelotheman) and [LinkedIn](https://www.linkedin.com/in/angelotheman)

Follow my projects on [GitHub](https://www.github.com/angelotheman)

Happy coding 👨🏾‍💻