Git commands that every software tester should know
Since git is vastly used among version control systems, every software tester should know or become familiar with using it.
What git does?
It manages and keeps track of changes on different branches. Compares changes between each one. It’s purpose is to manage source code.
The way git works is three-tree architecture. 1. Repository, 2. Staging index, 3. Local branch (working branch)
User clones repository to his local disk -> Creates new working branch and starts working -> After certain changes have been made user adds those new changes into staging index -> Commit/Push changes into repository.
Clone GitHub repository
git clone git@github.com:someRepositoryName.git
=> This will clone repository to your local disk.
Create new local branch
git branch <NAME_OF_YOUR_NEW_BRANCH>
=> Create new branch locally
Delete branch
git branch -d <NAME_OF_THE_BRANCH>
=> Delete local branch
git push origin --delete <NAME_OF_THE_BRANCH>
=> Delete remote branch
Push change to a branch
git status
=> Check the status of your branch to see if any files have been changed
git add .
=> Add all files to a staging index
git add YOUR_FILE
=> Add just that one file to staging index
git commit -m ”YOUR_MESSAGE”
=> Commit your code change
git push
=> Push changes to a remote branch
git push -u origin <NAME_OF_YOUR_LOCAL_BRANCH>
=> Push changes from the local branch to the remote branch
Where Am I?
git branch
=> See on which branch you are
Switch to another branch
git checkout <NAME_OF_OTHER_BRANCH>
=> Switch to other branch
Pull latest
git pull
=> Pull all the latest stuff from remote branch into your local branch
Merge branch
Let’s say you were writing new automated test for certain feature, and that took some time. You would like to merge all the latest from branch master into your working branch XY. You can git checkout master
to a master branch, do a git pull
, and then git checkout XY
. After that you can do a git merge master
, and this will merge all the new stuff from master branch into the branch XY.
Additional
Log
git log
=> See changes someone has committed
git log --since=2017-01-14
=> Displayed commits from that date to today
git log --until=2017-01-14
=> Display commits up to that date
git log --author="SOME_USER"
=> Display commits from SOME_USER
.gitIgnore
In .gitignore
file you can make a list of all the files you don’t want to be seen by git. Git will pretend they are not there.
For example, if you don’t want to log files to be tracked you can add a line in gitignore file *.log
, this will ignore all files with .log extension.
More examples:
.vagrant
=> Ignores .vagrant file
tests/output
=> Ignores everything inside the output directory
.idea
=> This will ignore JetBrains idea file
/tmp
=> This will ignore temp files
That’s it, enjoy testing and #ApplyQuality
Sharing is caring! Please hit that ❤ and share this article with anyone who might benefit from it.