
Whether youโre a seasoned automation tester / developer or just dipping your toes into version control, Git is an essential tool in your coding toolkit. Itโs the magic that keeps track of your changes, allows you to collaborate seamlessly, and ensures that you can always go back in time to a working version of your code. But letโs face it: Git commands can seem a little intimidating at first.
Fear not! Let’s walk through the only Git commands youโll ever need. By the end of this article, youโll feel like a Git wizardโwithout all the cryptic spells. Letโs get started!
Why should you care about Git?
Imagine youโre writing a book with a team of authors. Everyoneโs adding new chapters, tweaking existing ones, and trying to maintain consistency. Git is like the editor-in-chief who tracks every single change made, saves versions of each draft, and allows you to revert back to previous versions if needed. It’s like a time machine and collaboration tool, all rolled into one!
Now, letโs dive into the Git commands thatโll help you manage your code with ease.
Hereโs a comprehensive list of Git commands, especially focused on the ones frequently used by automation testers:
Configuring Git
Command | Description |
---|---|
git init | Initialize a new Git repository. |
git config --global user.name "Your Name" | Set your username globally for Git. |
git config --global user.email "your.email@example.com" | Set your email globally for Git. |
Creating and Cloning Repositories
Command | Description |
---|---|
git clone <repository_url> | Clone a repository from a remote server. |
git clone --branch <branch_name> <repository_url> | Clone a specific branch from a repository. |
git branch <branch_name> | Create a new branch. |
git checkout <branch_name> | Switch to an existing branch. |
git checkout -b <new_branch_name> | Create and switch to a new branch. |
Staging and Committing Changes
Command | Description |
---|---|
git add <file_name> | Add changes to the staging area. |
git add . | Add all changes to the staging area. |
git commit -m "Your commit message" | Commit changes with a descriptive message. |
git commit --amend | Amend the last commit with new changes. |
git reset HEAD <file_name> | Unstage changes from the staging area. |
git restore --source=HEAD --staged --worktree <file_name> | Unstage changes and discard local changes. |
git restore --source=HEAD --worktree <file_name> | Discard local changes without unstaging. |
git revert <commit_hash> | Create a new commit that undoes a previous commit. |
Fetching and Pulling Changes
Command | Description |
---|---|
git fetch | Fetch changes from the remote repository. |
git pull origin <branch_name> | Pull changes from a remote branch. |
Pushing Changes
Command | Description |
---|---|
git push origin <branch_name> | Push changes to a remote branch. |
git push -f origin <branch_name> | Force push changes to a remote branch (use caution). |
Merging and Rebasing
Command | Description |
---|---|
git merge <other_branch> | Merge changes from another branch. |
git rebase <base_branch> | Rebase changes onto another branch. |
git rebase -i HEAD~<number_of_commits> | Interactive rebase for squashing commits. |
Branch Management
Command | Description |
---|---|
git branch | List all branches. |
git branch -d <branch_name> | Delete a branch (merged). |
git branch -D <branch_name> | Force delete a branch (use caution). |
git branch -m <new_branch_name> | Rename the current branch. |
git branch -a | List all branches, including remote branches. |
Checking Repository Status
Command | Description |
---|---|
git status | Check the status of your repository. |
git log | View commit history. |
git log --oneline --graph --all | View a compact log with graphical representation. |
git diff | Show changes between working directory and staging. |
git diff --staged | Show changes between staging and the last commit. |
git show <commit_hash> | Show details of a specific commit. |
Remote Repository Management
Command | Description |
---|---|
git remote | List remote repositories. |
git remote add <remote_name> <repository_url> | Add a new remote repository. |
git remote -v | List remote repositories with URLs. |
git remote show <remote_name> | Show information about a remote repository. |
git remote remove <remote_name> | Remove a remote repository. |
Git Tagging
Command | Description |
---|---|
git tag | List all tags. |
git tag <tag_name> | Create a new tag. |
git tag -a <tag_name> -m "Your tag message" | Create an annotated tag with a message. |
git tag -d <tag_name> | Delete a tag. |
git push origin <tag_name> | Push a tag to a remote repository. |
git push origin --tags | Push all tags to a remote repository. |
Miscellaneous Commands
Command | Description |
---|---|
git clean -n | Preview untracked files to be deleted. |
git clean -f | Delete untracked files. |
git stash | Temporarily save changes for later use. |
git stash apply | Apply stashed changes back to the working directory. |
git cherry-pick <commit_hash> | Apply changes from a specific commit. |
git blame <file_name> | Show who changed each line in a file. |
git grep "search_term" | Search for a term in your codebase. |
Conclusion
Git might seem intimidating at first glance, but with the right commands and understanding, itโs an incredibly powerful tool that can streamline your workflow and give you control over your projects. By mastering the essential Git commandsโlike git init
, git add
, git commit
, and git push
โyouโll be able to manage your projects like a pro.
Whether you’re working solo or as part of a team, these commands will be your best friends. The more you practice, the more natural theyโll become, and soon, you’ll be navigating Git with ease.
Now, go ahead and start Git-ing!
QABash NexusโSubscribe before Itโs too late!
Monthly Drop- Unreleased resources, pro career moves, and community exclusives.