mirror of https://github.com/zulip/zulip.git
4.3 KiB
4.3 KiB
Git cheat sheet
See also fixing commits
Common commands
- add
git add foo.py
- checkout
git checkout -b new-branch-name
git checkout main
git checkout old-branch-name
- commit
git commit -m "topic: Commit message title."
git commit --amend
: Modify the previous commit.
- 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
- log
git log
- pull
git pull --rebase
: Use this. Zulip uses a rebase oriented workflow.git pull
(with no options): Will either create a merge commit (which you don't want) or do the same thing asgit pull --rebase
, depending on whether you've configured Git properly
- push
git push origin +branch-name
- rebase
git rebase -i HEAD~3
git rebase -i main
git rebase upstream/main
- 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 main
- 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 areagit add -u
: Adds all tracked files to the staging area.
- checkout
git checkout -b new-branch-name
: create branchnew-branch-name
and switch to/check out that new branchgit checkout main
: switch to yourmain
branchgit checkout old-branch-name
: switch to an existing branchold-branch-name
- commit
git commit -m "commit message"
: It is recommended to type a multiline commit message, however.git commit
: Opens your default text editor to write a commit message.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 static/js
: Search our JS for references to update_unread_counts.
- log
git log
: show commit logsgit log --oneline | head
: To quickly see the latest ten commits on a branch.
- pull
git pull --rebase
: rebase your changes on top ofmain
.git pull
(with no options): Will either create a merge commit (which you don't want) or do the same thing asgit pull --rebase
, depending on whether you've configured Git properly
- push
git push origin branch-name
: push you commits to the origin repository only if there are no conflicts. Use this when collaborating with others to prevent overwriting their work.git push origin +branch-name
: force 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 main
: interactive rebasing current branch withmain
branchgit rebase upstream/main
: rebasing current branch withmain
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 main
: display most recent commit onmain
- status
git status
: show the working tree status, unstaged and staged files