Using Git may be intimidating at times. There are so many commands and details to learn. The documentation, however, while being immense, is still greatly accessible. Once you overcome the initial feeling of being overwhelmed, the things will start to fall into place.
Here is a list of 15 Git commands that you may not know yet, but hopefully they will help you out on a journey to master this tool.
git commit --amend
—-amend allows to append staged changes (e.g. to add a forgotten file) to the previous commit. Adding
—-no-edit on top of that will amend the last commit without changing its commit message. If there are no changes,
-—amend will allow you to reword the last commit message.
git help commit
git add -p
—patch) allows to interactively select parts of each tracked file to commit. This way each commit contains only related changes.
git help add
git stash -p
git-add , you can use
--patch option to interactively select parts of each tracked file to stash.
git help stash
git stash -u
By default, when stashing, the untracked files are not included. In order to change that bevahiour and include those files as well you need to use
-u parameter. There is also
—all) which stashes both untracked and ignored files altogether, which is probably something you usually won’t need.
git checkout -p
--patch can be also used to selectively discard parts of each tracked file. I aliased this command as
git help checkout
git checkout -
This command allows you to quickly switch to the previously checked out branch. On a general note
- is an alias for the previous branch. It can be used with other commands as well. I aliased
co so, it becomes just
git co -
git checkout .
If you are sure that all of your local changes can be discarded, you can use
. to do it at once. It is, however, a good practice to always use
git diff --staged
This command shows all staged changes (those added to the index) in contrast to just
git diff which only shows changes in the working directory (without those in the index).
git help diff
git branch -m old-name new-name
If you want to rename the currently checked out branch, you can shorten this command to the following form:
git branch -m new-name
git help branch
In order to rename a branch remotely, once you renamed your branch locally, you need to first remove that branch remotely and then push the renamed branch again.
git push origin :old-name git push origin new-name
Rebasing may lead to conflicts, the following command will open all files which need your help to resolve these conflicts.
git diff --name-only --diff-filter=U | uniq | xargs $EDITOR
git whatchanged —-since=‘2 weeks ago’
This command will show a log with changes introduced by each commit from the last two weeks.
Let's say you committed a file by mistake. You can quickly remove that file from the last commit by combining
commit --amend commands:
git rm —-cached <file-to-remove> git commit —-amend
git branch --contains <commit>
This command will show all branches that contain a particular commit.
git gc --prune=now --aggressive
git help gc
Although I like CLI a lot, I highly recommend checking Magit to further step up your Git game. It is one of best pieces of software I used.
There is, also, a fantastic overview of recommended Git workflows available via
help command. Be sure to read it thoroughly!
git help workflows