mirror of https://github.com/zulip/zulip.git
3.4 KiB
3.4 KiB
Git Cheat Sheet
See also fixing commits
Common Commands
- add
git add foo.py
- checkout
git checkout -b new-branch-name
git checkout master
git checkout old-branch-name
- commit
git commit --amend
- config
git config --global core.editor nano
git config --global core.symlinks true
- diff
git diff
git diff --cached
git diff HEAD~2..
- fetch
git fetch origin
git fetch upstream
- grep
git grep update_unread_counts -- '*.js'
- log
git log
- pull
- do not use for Zulip
- push
git push origin +branch-name
- rebase
git rebase -i HEAD~3
git rebase -i master
git rebase upstream/master
- reflog
git reflog | head -10
- remote
git remote -v
- reset
git reset HEAD~2
- rm
git rm oops.txt
- show
git show HEAD
git show HEAD~~~
git show master
- status
git status
Detailed Cheat Sheet
- add
git add foo.py
: addfoo.py
to the staging areagit add foo.py bar.py
: addfoo.py
ANDbar.py
to the staging area
- checkout
git checkout -b new-branch-name
: create branchnew-branch-name
and switch/checkout to that new branchgit checkout master
: switch to yourmaster
branchgit checkout old-branch-name
: switch to an existing branchold-branch-name
- commit
git commit --amend
: changing the last commit message. Read more here
- config
git config --global core.editor nano
: set core editor tonano
(you can set this tovim
or others)git config --global core.symlinks true
: allow symbolic links
- diff
git diff
: display the changes you have made to all filesgit diff --cached
: display the changes you have made to staged filesgit diff HEAD~2..
: display the 2 most recent changes you have made to files
- fetch
git fetch origin
: fetch origin repositorygit fetch upstream
: fetch upstream repository
- grep
git grep update_unread_counts -- '*.js'
: search all files (ending in.js
) forupdate_unread_counts
- log
git log
: show commit logs
- pull
git pull --rebase
: rebase your changes on top of master.git pull
(with no options): Will either create a merge commit (which you don't want) or do the asme asgit pull --rebase
, depending on [whether you're configured Git properly][git-clone-config]
- push
git push origin +branch-name
: push your commits to your origin repository
- rebase
git rebase -i HEAD~3
: interactive rebasing current branch with first three items on HEADgit rebase -i master
: interactive rebasing current branch with master branchgit rebase upstream/master
: rebasing current branch with master branch from upstream repository
- reflog
git reflog | head -10
: manage reference logs for the past 10 commits
- remote
git remote -v
: display your origin and upstream repositories
- reset
git reset HEAD~2
: reset two most recent commits
- rm
git rm oops.txt
: removeoops.txt
- show
git show HEAD
: display most recent commitgit show HEAD~~~
: display third most recent commitgit show master
: display most recent commit onmaster
- status
git status
: show the working tree status, unstaged and staged files