Git is a distributed version control system to track changes in source code. Git was created by Linus Torvalds in 2005 for Linux kernel development. Git is the most widely used version control system. You could use git on a command line or using a graphical UI. You can use Git to travel back in time with respect to your source code and make changes.
This competency includes an understanding of git-flow workflow, git rebasing, git tagging, working with tags, git reset, and git submodules.
- Gitflow - An understanding of the git-flow workflow and knowledge of how to use it effectively.
- Rebase - Knowledge of the git rebase, how to do basic git rebase, and the difference between git merge and git rebase
- git checkout <branch_name>
- git rebase master
- Tags - Working with git tags, creating tags, listing, checkout, deleting tags.
- git tag
- git tag v0
- git tag -a v1.1 -m “tag description”
- Stash - Understanding git stash and git clean
- Searching - Understanding git searching and git log searching
- git grep -n <search_string>
- git grep --count <searchh_string>
- git log -S <search_string>
- Reset - Knowledge of git reset - Understanding soft-hard, mixed, when to use it, how to use it
- Configs - Git configs - know the various git configs and how to use them
- Hooks - Configuring various git hooks -
- Client-Side - pre-commit, post-commit, pre-rebase, post-merge, etc.
- Server-side - pre-receive, post-receive, etc.
- Submodules - Working with git submodules.
- Blame - Usage of git blame to be able to display the author of any changes made.
- Projects & Organization - Knowledge of how to create and maintain an organization and projects in a popular git host like Github.