DEV Community

0xkoji
0xkoji

Posted on

Essential 19 Git Commands Every Software Engineer Should Know

As a software engineer, mastering version control is crucial for efficient collaboration and project management. Git, being the most widely used version control system, offers a plethora of commands to help you navigate your development workflow. In this blog post, we'll explore the essential Git commands that every software engineer should have in their toolkit.

Basic Commands: Getting Started with Git

Let's begin with the fundamental commands you'll use to initialize and manage your Git repositories:

1 git init: This command initializes a new Git repository in your current directory.

   git init
Enter fullscreen mode Exit fullscreen mode

2 git clone: Use this to create a local copy of a remote repository.

   git clone https://github.com/user/repo.git
Enter fullscreen mode Exit fullscreen mode

3 git add: This stages your changes for commit.

   git add file.txt
   # or to stage all changes:
   git add .
Enter fullscreen mode Exit fullscreen mode

4 git commit: Record your staged changes to the repository.

   git commit -m "Add new feature"
Enter fullscreen mode Exit fullscreen mode

5 git push: Upload your local repository content to a remote repository.

   git push origin main
Enter fullscreen mode Exit fullscreen mode

6 git pull: Fetch and merge changes from the remote repository to your local one.

   git pull origin main
Enter fullscreen mode Exit fullscreen mode

Branching and Merging: Managing Project Workflows

Branching is a powerful feature in Git that allows you to work on different versions of your project simultaneously. Here are the essential commands for branching and merging:

7 git branch: List, create, or delete branches.

   git branch new-feature
Enter fullscreen mode Exit fullscreen mode

8 git checkout: Switch to a different branch or restore working tree files.

   git checkout feature-branch
Enter fullscreen mode Exit fullscreen mode

9 git merge: Combine changes from different branches.

   git merge feature-branch
Enter fullscreen mode Exit fullscreen mode

Inspecting and Comparing: Understanding Your Project's State

These commands help you understand the current state of your repository and compare different versions:

10 git status: Shows the status of changes as untracked, modified, or staged.

```
git status
```
Enter fullscreen mode Exit fullscreen mode

11 git log: Displays commit history.

```
git log
```
Enter fullscreen mode Exit fullscreen mode

12 git diff: Shows changes between commits, commit and working tree, etc.

```
git diff HEAD~1 HEAD
```
Enter fullscreen mode Exit fullscreen mode

Remote Repositories: Collaborating with Others

Working with remote repositories is essential for team collaboration. Here are two key commands:

13 git remote: Manages set of tracked repositories.

```
git remote add origin https://github.com/user/repo.git
```
Enter fullscreen mode Exit fullscreen mode

14 git fetch: Downloads objects and refs from another repository.

```
git fetch origin
```
Enter fullscreen mode Exit fullscreen mode

Undoing Changes: Fixing Mistakes

Everyone makes mistakes. These commands help you undo changes when needed:

15 git reset: Resets current HEAD to the specified state.

```
git reset --hard HEAD~1
```
Enter fullscreen mode Exit fullscreen mode

16 git revert: Creates a new commit that undoes the changes from a previous commit.

```
git revert HEAD
```
Enter fullscreen mode Exit fullscreen mode

Advanced Commands: Enhancing Your Git Skills

As you become more comfortable with Git, these advanced commands will help you manage complex scenarios:

17 git stash: Temporarily stores modified, tracked files.

```
git stash save "Work in progress"
```
Enter fullscreen mode Exit fullscreen mode

18 git cherry-pick: Applies the changes introduced by some existing commits.

```
git cherry-pick abc123
```
Enter fullscreen mode Exit fullscreen mode

19 git rebase: Reapplies commits on top of another base tip.

```
git rebase main
```
Enter fullscreen mode Exit fullscreen mode
  1. git tag: Creates, lists, deletes or verifies a tag object signed with GPG.

    git tag -a v1.0 -m "Version 1.0"
    

Conclusion

Mastering these Git commands will significantly enhance your ability to manage version control effectively in your projects. While this list covers a wide range of operations, remember that Git offers even more functionality. As you grow more comfortable with these commands, don't hesitate to explore Git's documentation to discover additional features that can further streamline your development workflow.

Happy coding, and may your commits always be meaningful!

Top comments (0)