As a recent cross-over user of Subversion to Git, I occasionally need a refresher of some command-line git operations … and I find myself searching the web. So, I created this list in a single, easy to locate post. Here is a list of Git operations I find most useful. Listed in order of a typical workflow. Hence more interesting (and more easily forgotten) operations are listed at the end.
Initial setup
sudo apt-get install git |
Initial configuration
git config --global user.name "Iam me"git config --global user.email me@here.comgit config --global core.editor nanogit config --global credential.helper "cache --timeout=900" |
Configure ignored files (using .gitignore file)
nano .gitignore*.onohup.outdoc/*.txt.vscode.idea |
Help
git help <command> |
Initialize a repository
git initORgit clone git://your.git.url.goes.here |
View status
git statusgit diff |
Add/commit files
git add <filename>git commitORgit commit -am "commit message goes here" (add all tracked files and commit them in a single command) |
Remove files
git rm <filename |
Move files
git mv <filename> <newfilename> |
Updating a commit (before push)
git commit -am 'initial commit'git add <somefile>git commit --amend |
View commits
git status |
Reverting a modified file (not yet staged)
git checkout -- <file |
Reverting a staged file (e.g. via git add)
git reset HEAD <file |
Reverting a commit
git revert <commit-id>git push |
Reverting all local changes
git reset --hard origin/master |
Create a new branch
git checkout -b <name_of_your_new_branch>git push origin <name_of_your_new_branch |
Save/restore work temporarily
git stash***change branches or whatevergit stash pop |
Delete a remote branch
git push origin --delete <branchName>git fetch -p "to refresh local repro" |
Delete a local branch
git branch -d <branch_name>git fetch -p #"to refresh local repro" |
Tag a commit (for release or tracking)
git tag -a <tagname> <commitid>git push origin <tagname> |
Checkout at a tag
git checkout <tagname> |
Merge a branch back into master branch
git checkout mastergit pullgit checkout <branch>git merge master# if you have conflicts ... edit the conflicts and then run "git add <files_edited>" "git commit"git push |