Git task | Notes | Git commands |
---|---|---|
Tell Git who you are | Configure the author name and email address to be used with your commits | git config --global user.name "Sam Smith" |
Create a new local repository |
After executing the command the current folder will be git repository | git init |
Clone a repository |
Clone command will copy the source repository to the current folder. The original repository is typically located on remote machine, but it can be located also ont the local filesystem | git clone <source repository> |
Stage files |
Add one or more files to staging .(dot) means all files in current directory |
git add <filename> git add . |
Commit |
Commit changes to head (but not yet to the remote repository): | git commit -m "Commit message" |
Push |
Send changes to the master branch of your remote repository: | git push origin master |
Force Push |
Sometimes git does not allow you to push to remote branch. (Example if the local branch is behind the remote branch). If you still want to push, you can use force push: | git push origin master --force |
Status | List the files you've changed and those you still need to add or commit: | git status |
Connect to a remote repository |
If you haven't connected your local repository to a remote server, add the server to be able to push to it: |
git remote add origin <server> |
List all currently configured remote repositories: | git remote -v |
|
Branches |
Create a new branch and switch to it: | git checkout -b <branchname> |
Switch from one branch to another (existing branch): | git checkout <branchname> |
|
List all the branches in your repo, and also tell you what branch you're currently in: | git branch |
|
Delete a branch: | git branch -d <branchname> |
|
Push the branch to your remote repository, so others can use it: | git push origin <branchname> |
|
Push all branches to your remote repository (named origin): | git push --all origin |
|
Update your current local working branch |
Fetch and merge changes from the remote server to your working directory: | git pull |
To merge a different branch into your active branch: | git merge <branchname> |
|
View all the merge conflicts: View the conflicts against the base file: Preview changes, before merging: |
git diff git diff --base <filename> git diff <sourcebranch> <targetbranch> |
|
After you have manually resolved any conflicts, you mark the changed file: | git add <filename> |
|
CommitId |
CommitId is the leading characters of the changeset ID. You can get a list of the CommitId's |
git log |
If you want to see also commits after reset: | git log -g |
|
Tags |
You can use tagging to mark a significant changeset, such as a release: | git tag 1.0.0 <commitID> |
Push all tags to remote repository: | git push --tags origin |
|
Reset |
You can reset your repo to the stage of tag | git reset --hard 1.0.0 |
And you can also reset your repo to the stage of some commit | git reset --hard commitID |