Git cheat sheet
Git is distributed version control system It is very powerful tool and has a lot of features. Also there’re a lot GUI tools for working with git. But in this post I’ll show how to work with git from terminal (console) in Linux or using git-bash in Windows.
The list of commands will be updated periodically.
Identifying yourself
To add user name and email globally:
git config --global user.name "John Doe"
git config --global user.email [email protected]
To specify text editor:
git config --global core.editor vim
To add specific user or/and email for the project (global config will be overridden). From the project folder run the specified
above commands without --global:
git config user.name "Holms Doe"
git config --global user.email [email protected]
Rename a branch
Let’s assume we have a branch named Issue-1 and we want to rename it to Issue1. To do so just use the following command:
git branch -m Issue1
Delete branch
To delete branch which has already been merged:
git branch -d Issue1
Currently checked out branch could not be deleted.
To delete branch which has NOT been merged yet:
git branch -D Issue1
To delete remote branch:
git push origin --delete Issue5
Undo last commit
In case when we need to modify the last commit, e.g. to add missed file(-s) or to change the commit message we can use the following command:
git commit --amend
If we haven’t made any changes since last commit this command will change only the commit message. To add missed files to the last commit:
- add missed files to the staging
git add missed_file_name.txt - use
git commit --amendcommand
After modifying the last local commit into such way, we won’t be able to push these changes to the remote branch. Changes will be rejected with the error like:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:oneils/git-demo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Force push to the remote branch
One of the approaches to push rejected commits to remote is to force push to the remote branch into the following way:
git push origin Issue2 --force
This will push the local branch to remote and will override all changes into the remote branch. This command should be used very carefully.