Common git commands
Configure author and email address to be used with your commits
git config --global user.name "John Doe" git config --global user.email [email protected]
Create a new local repository
Create a new directory, go into it and run
git init
Connect to a remote repository
git remote add origin <server>
Checkout a repository
Create a working copy of a local repository:
git clone /path/to/repository
For a remote server, use:
git clone username@host:/path/to/repository
Get Status:
List the files you modified and need to be added
git status
Add files
Add one or more files to staging (index):
git add <filename> git add *
Commit
Commit changes to HEAD (but not yet to the remote repository):
git commit -m "Commit message"
Push Changes to remote repository
Send changes to remote repository master branch. Replace master with any branch you want.
git push origin master
Branching
Make sure to create your own feature branch from your base branch so that your base branch is always clean. And don’t forget to rebase it with your base branch regularly 🙂
Create a new branch and switch to it
git checkout -b <branchname>
Switch from one branch to another
git checkout <branchname>
List all the branches in your repo, and also tell you what branch you’re currently in
git branch
Push the branch to your remote repository
Your branch is not available to others unless you push the branch to your remote repository.
git push origin <branchname>
Delete the feature branch
git branch -d <branchname> //Delete the branch if it has already been fully merged in its upstream branch git branch -D <branchname> //Delete branch irrespective of its merged status. git push origin :<branchname> //Delete a branch on your remote repository
Fetch latest commit from remote server to your local directory
git pull
Merge another branch into your active branch
git merge <branchname> // Merging might be painful sometimes. Though Git tries to auto-merge the changes, there is always a chance of getting conflicts while merging. In this case we manually resolve conflicts. git diff //View all the merge conflicts git diff --base <filename> //View the conflicts against the base file git diff <sourcebranch> <targetbranch> //Preview changes, before merging //After conflicts are resolved we need to mark them as merged by git add <filename>
Tagging
Create tags for software releases.
git tag 1.0.0 <commitID> //<commitID> is the leading characters of the changeset ID, up to 10, but must be unique. Get the ID using "git log" git push origin <tag_name> //Push tag_name to remote repository git push --tags origin //Push all tags to remote repository
Drop all your local changes
git fetch origin git reset --hard origin/master