Mastering Git with Key Commands

Mastering Git with Key Commands

Blog: Mastering Git with Key Commands

Git is a powerful, free, and open-source distributed version control system that simplifies collaboration and version management. Here’s a concise guide to mastering Git with the most essential commands and features.

1. Setup and Configuration

Start by configuring Git for seamless operation:

  • git config --global user.name "[Firstname Lastname]": Set your name for commit history.

  • git config --global user.email "[valid-email]": Associate an email with your commits.

  • git config --global color.ui auto: Enable automatic command line coloring for clarity.

2. Repository Initialization and Cloning

  • git init: Turn an existing directory into a Git repository.

  • git clone [url]: Copy a repository from a URL to your local machine.

3. Staging and Committing Changes

  • git status: View modified files in the working directory.

  • git add [file]: Stage changes for the next commit.

  • git commit -m "[descriptive message]": Save your staged changes as a new commit.

4. Branching and Merging

  • git branch: List all branches, marking the current one.

  • git branch [branch-name]: Create a new branch.

  • git checkout [branch-name]: Switch to another branch.

  • git merge [branch]: Integrate changes from another branch into the current one.

5. Sharing and Updating

  • git remote add [alias] [url]: Add a remote repository.

  • git fetch [alias]: Download all branches from the remote repository.

  • git merge [alias]/[branch]: Merge a remote branch into your local branch.

  • git push [alias] [branch]: Upload local commits to the remote repository.

  • git pull: Fetch and merge changes from the remote repository.

6. Tracking Path Changes

  • git rm [file]: Delete a file and stage the removal.

  • git mv [existing-path] [new-path]: Move or rename a file.

  • git log --stat -M: Show commit logs with moved file paths.

7. Temporary Commit Management

  • git stash: Temporarily save modifications without committing.

  • git stash list: Display a list of stashed changes.

  • git stash pop: Apply and remove stashed changes.

  • git stash drop: Delete a stash entry.

8. Rewriting History

  • git rebase [branch]: Apply commits of the current branch on top of another.

  • git reset --hard [commit]: Discard changes and reset to a specific commit.

9. Inspecting and Comparing

  • git log: View the commit history of the current branch.

  • git log branchB..branchA: See commits in BranchA but not in BranchB.

  • git diff branchB...branchA: Show differences between two branches.

  • git show [SHA]: Display any Git object in a readable format.

10. Ignoring Files

Prevent accidental staging of files with patterns in a .gitignore file:

  • Use direct string matches or wildcard globs.

  • Example:

      logs/
      *.notes
      pattern*/
    

GUI and Installation

Git also offers graphical user interfaces for streamlined usage:

Conclusion

Mastering Git commands can significantly improve your productivity and collaboration in software projects. Start small, practice regularly, and watch your proficiency grow!