-
Notifications
You must be signed in to change notification settings - Fork 2
Git Commands
John Holt edited this page Jan 30, 2018
·
12 revisions
Wiki > Project tools > Working with git and github > Useful Git commands
| Git command | What it does |
|---|---|
| git checkout [branch-name] | Checkout a branch that already exists (local or remote) |
| git checkout -b [branch-name] | Create and checkout a branch locally |
| git checkout master | Checkout the master branch |
| git clone [url] [dir] | Clone a repo from url to a directory |
| git fetch origin | Update and pull from origin |
| git pull | Get the latest copy of the repo |
| git pull origin master | Get the latest master from the origin |
| git checkout -- [file-name] | Revert file-name to the version in the repo |
| git remote update | update the information from the origin |
| - | - |
| git branch -a | List all branches locally and origin |
| git branch -d [branch] | Delete a branch |
| git remote prune origin | Remove listings of closed branches |
| - | - |
| git add [file-name] | Add a file to the staging area for committing |
| git add *.[type] | Add all files of type to the staging area for committing |
| git add -u | Add all modified files to the staging area for committing |
| - | - |
| git mv [file-name] [folder] | Move a file to a new folder |
| - | - |
| git commit -m "[descriptive-message]" | Commit the staged area with a descriptive message |
| git commit -m "Jenkins retest this please" --allow-empty | Asks Jenkins to retest a pull request. allow-empty flag allows you to do it without any associated changes |
| - | - |
| git merge [branch-name] | Merge the changes from [branch] to the one you have currently checked out, typically master to your dev branch |
| git submodule update --merge | Update all submodules and merge them |
| git submodule update --remote | Update the submodule references on the remote system to the current commits |
| git submodule update | Update your local submodules to those referenced on the remote system |
| git rebase master | USE ONLY ON LOCAL BRANCHES - reapply your changes to the most recently pulled master |
| git submodule update --init | 'clear out' any submodules with new commits |
| git submodule status | status of the submodule(s) at this moment, e.g. what the current checkout commit of the submodule is |
| git submodule status --cached | status of the submodule(s) as they appear in the index, e.g. the expected commit associated with EPICS working copy |
| - | - |
| git push -u origin [branch-name] | Push a new branch to the origin |
| git push origin [branch-name] | Push a branch to the origin |
| - | - |
| git status | Get the status information |
| git status -s | Get a summarised status, note that M means Modified, ?? Mean untracked |
| - | - |
| git clean -f | Remove unstaged files |
| git clean -f -d | Remove unstaged files and directories |
| - | - |
| git ls-remote --get-url | Get the remote URL of a repository |
| - | - |
| git stash | Put all current modifications onto a stack |
| git stash apply | Apply the changes from the last stash |
| git stash drop stash@{0} | Drop the most recent stash from the stack |
| git stash pop | Apply and drop the most recent stash from the stack |
| git stash branch [branch-name] | Creates a new branch from the commit when the branch was stashed, applies the stash, and if successful drops the stash |
| git stash clear | Delete all stashes |
| - | - |
| git rm [file-name] | Remove a file from the staging area |
| - | - |
| git log | View the commit history |
| git log -[n] | Limit the number of entries shown by the log |
| git log -p | Show the diffs as well as the log |
| git log --stat | Abbreviated stats for each commit |
| - | - |
| git commit --amend | Allows you to amend you last commit (missing files, or alter message) |
| - | - |
| git reset HEAD [file-name] | Unstage a file |
| git reset --hard [sha] | Reset the branch to a specific checkout |
| git reset -- soft HEAD ~ | Reverse the commit to the previous one |
| git reset HEAD ~ | unstage all files |
| - | - |
| git log -1 HEAD | Get the commit info for the most recent commit |
| - | - |
| git config -l --global | grep http |
| git config -l | grep http |
| git config --global --unset-all http.proxy | Remove http proxies from global config |
| git config --global --unset-all https.proxy | Remove https proxies from global config |
| git config --unset-all http.proxy | Remove http proxies from local config |
| git config --unset-all https.proxy | Remove https proxies from local config |
-
git taglist tags -
git tag -d <tagname>remove the tag locally -
git push origin :refs/tags/<tagname>push the removed tag to remote -
git tag <tagname> <commitId>create the new tag pointing at the right place -
git push origin <tagname>push the new tag to the repo