Skip to main content

Command Palette

Search for a command to run...

Git Guide: Understanding Essential Commands and Concepts

Published
5 min read
Git Guide: Understanding Essential Commands and Concepts
M

Hey there! I'm currently working as an Associate DevOps Engineer, and I'm diving into popular DevOps tools like Azure Devops,Linux, Docker, Kubernetes,Terraform and Ansible. I'm also on the learning track with AWS certifications to amp up my cloud game. If you're into tech collaborations and exploring new horizons, let's connect!

Git is a powerful version control system that helps developers manage their code efficiently. Below is a guide that walks through the most important Git commands, along with examples to clarify their usage.


1. git add: Adding Changes to Staging Area

The git add command adds your file changes to the staging area in Git. It prepares files for the next commit.

  • Example:

      git add <file-name>  # Add specific file
      git add .            # Add all changes
    

    After modifying index.html, you can run git add index.html to stage the changes for the next commit.


2. git commit: Saving Changes to the Repository

git commit saves your staged changes to the local repository. Each commit represents a snapshot of your code at a particular point in time.

  • Example:

      git commit -m "Added a new feature"
    

    This commits your staged changes with the message "Added a new feature". It's best practice to use clear, concise commit messages.


3. git branch: Managing Branches

Branches allow you to work on different features or fixes independently without affecting the main codebase.

  • Example:

      git branch feature-1  # Create a new branch
      git checkout feature-1  # Switch to the new branch
    

    The command git branch feature-1 creates a new branch called feature-1.


4. git push: Pushing Changes to Remote Repository

Once your changes are committed locally, you can push them to a remote repository with git push.

  • Example:

      git push origin feature-1
    

    This pushes the changes from your local feature-1 branch to the origin remote repository.


5. git pull: Fetching and Merging Changes from Remote

git pull is used to fetch and merge changes from a remote repository into your current branch.

  • Example:

      git pull origin main
    

    This command fetches and merges the latest changes from the main branch of the origin repository into your local branch.


6. git remote: Managing Remote Repositories

Remote repositories allow multiple developers to collaborate. You can add, view, or remove remotes with git remote.

  • Example:

      git remote add origin https://github.com/user/repo.git
      git remote -v  # View remote URLs
    

    The git remote add origin command sets a remote repository URL that you can push and pull changes to.


7. git config: Configuring Git Settings

git config allows you to set configuration options, such as your name and email, which are used in commits.

  • Example:

      git config --global user.name "John Doe"
      git config --global user.email "john@example.com"
    

    This sets your username and email globally for all repositories.


8. Pull Request (PR): Collaboration with Code Review

A Pull Request (PR) is a GitHub feature that allows for collaboration by requesting that someone reviews and approves your changes before merging them into the main branch.

  • Example: In GitHub:

    1. Push your branch to the remote repository.

    2. Go to GitHub and create a new pull request from feature-1 to main.

    3. Reviewers will provide feedback before the code is merged.


9. git merge: Merging Branches

git merge integrates changes from one branch into another. It preserves both branches' histories and creates a merge commit.

  • Example:

      git checkout main
      git merge feature-1
    

    This merges the changes from the feature-1 branch into the main branch.


10. git rebase: Rewriting Commit History

git rebase re-applies commits from your current branch on top of another branch, resulting in a linear history.

  • Example:

      git checkout feature-1
      git rebase main
    

    This reapplies all commits from feature-1 on top of main, making the commit history linear and avoiding a merge commit.


11. Merge Conflict: Resolving Conflicts Between Branches

Merge conflicts happen when Git cannot automatically merge changes. You will need to manually resolve the conflicts.

  • Example: After attempting to merge:

      git merge feature-1
    

    If a conflict occurs, Git will notify you. You can resolve the conflicts in your code and then run:

      git add .
      git commit -m "Resolved merge conflict"
    

12. git reset: Undoing Commits

git reset moves the HEAD of the branch back to a previous state. It can modify the commit history and working directory.

  • Example:

      git reset --soft HEAD~1  # Undo last commit, keep changes staged
    

    This undoes the last commit but keeps your changes in the staging area.


13. git revert: Undoing a Commit without Rewriting History

git revert creates a new commit that undoes the changes of a previous commit, without changing the commit history.

  • Example:

      git revert <commit-hash>
    

    This creates a new commit that reverses the changes of the specified commit.


14. git cherry-pick: Applying Specific Commits from Another Branch

git cherry-pick allows you to pick a specific commit from another branch and apply it to your current branch.

  • Example:

      git cherry-pick <commit-hash>
    

    This applies the changes from a specific commit in one branch to your current branch.


15. git log: Viewing Commit History

The git log command displays the commit history of your repository. It helps you see the order of commits and their details.

  • Example:

      git log
      git log --oneline  # Compact view
    

    This shows the commit history. The --oneline option provides a summarized view, showing only the commit hash and message.


16. git stash: Temporarily Saving Changes

git stash allows you to temporarily save your changes without committing them, so you can work on something else without losing your progress.

  • Example:

      git stash  # Save changes to stash
      git stash apply  # Reapply the changes from stash
      git stash drop  # Remove stash after applying
    

    After running git stash, your changes will be removed from the working directory but saved in a "stash". You can later reapply those changes with git stash apply.

More from this blog

DevOps Journey with M Hassan

174 posts

I am writing these blogs because I recently completed a comprehensive DevOps course where I gained in-depth knowledge of the topics mentioned. As I progressed through the course, I realized the importance of having a concise and accessible resource to revise and reinforce my understanding of each topic. Therefore, I decided to create cheat sheets in the form of blog posts. These cheat sheets will not only serve as a handy reference for myself but also benefit others who are also interested in mastering DevOps concepts. By documenting each topic and providing concise explanations, I aim to create a valuable resource that simplifies complex concepts and facilitates hands-on practice. This way, I can solidify my own understanding while helping others on their DevOps journey.