Skip to content
Greg Swindle edited this page Feb 16, 2019 · 1 revision

Terminal git-tips

Terminal A collection of quick Git CLI/Terminal commands, tested on git version 2.7.4 (Apple Git-66).

Table of contents

  1. Everyday Git in twenty commands or so
  2. Show helpful guides that come with Git
  3. Search change by content
  4. Remove sensitive data from history, after a push
  5. Sync with remote, overwrite local changes
  6. List of all files till a commit
  7. Git reset first commit
  8. List all the conflicted files
  9. List of all files changed in a commit
  10. Unstaged changes since last commit
  11. Changes staged for commit
  12. Show both staged and unstaged changes
  13. List all branches that are already merged into master
  14. Quickly switch to the previous branch
  15. Remove branches that have already been merged with master
  16. List all branches and their upstreams, as well as last commit on branch
  17. Track upstream branch
  18. Delete local branch
  19. Delete remote branch
  20. Delete local tag
  21. Delete remote tag
  22. Undo local changes with the last content in head
  23. Revert: Undo a commit by creating a new commit
  24. Reset: Discard commits, advised for private branch
  25. Reword the previous commit message
  26. See commit history for just the current branch
  27. Amend author.
  28. Reset author, after author has been changed in the global config.
  29. Changing a remote's URL
  30. Get list of all remote references
  31. Get list of all local and remote branches
  32. Get only remote branches
  33. Stage parts of a changed file, instead of the entire file
  34. Get git bash completion
  35. What changed since two weeks?
  36. See all commits made since forking from master
  37. Pick commits across branches using cherry-pick
  38. Find out branches containing commit-hash
  39. Git Aliases
  40. Saving current state of tracked files without commiting
  41. Saving current state of unstaged changes to tracked files
  42. Saving current state including untracked files
  43. Saving current state with message
  44. Saving current state of all files (ignored, untracked, and tracked)
  45. Show list of all saved stashes
  46. Apply any stash without deleting from the stashed list
  47. Apply last stashed state and delete it from stashed list
  48. Delete all stored stashes
  49. Grab a single file from a stash
  50. Show all tracked files
  51. Show all untracked files
  52. Show all ignored files
  53. Create new working tree from a repository (git 2.5)
  54. Create new working tree from HEAD state
  55. Untrack files without deleting
  56. Before deleting untracked files/directory, do a dry run to get the list of these files/directories
  57. Forcefully remove untracked files
  58. Forcefully remove untracked directory
  59. Update all the submodules
  60. Show all commits in the current branch yet to be merged to master
  61. Rename a branch
  62. Rebases 'feature' to 'master' and merges it in to master
  63. Archive the master branch
  64. Modify previous commit without modifying the commit message
  65. Prunes references to remote branches that have been deleted in the remote.
  66. Retrieve the commit hash of the initial revision.
  67. Visualize the version tree.
  68. Visualize the tree including commits that are only referenced from reflogs
  69. Deploying git tracked subfolder to gh-pages
  70. Adding a project to repo using subtree
  71. Get latest changes in your repo for a linked project using subtree
  72. Export a branch with history to a file.
  73. Import from a bundle
  74. Get the name of current branch.
  75. Ignore one file on commit (e.g. Changelog).
  76. Stash changes before rebasing
  77. Fetch pull request by ID to a local branch
  78. Show the most recent tag on the current branch.
  79. Show inline word diff.
  80. Show changes using common diff tools.
  81. Don’t consider changes for tracked file.
  82. Undo assume-unchanged.
  83. Clean the files from .gitignore.
  84. Restore deleted file.
  85. Restore file to a specific commit-hash
  86. Always rebase instead of merge on pull.
  87. List all the alias and configs.
  88. Make git case sensitive.
  89. Add custom editors.
  90. Auto correct typos.
  91. Check if the change was a part of a release.
  92. Dry run. (any command that supports dry-run flag should do.)
  93. Marks your commit as a fix of a previous commit.
  94. Squash fixup commits normal commits.
  95. Skip staging area during commit.
  96. Interactive staging.
  97. List ignored files.
  98. Status of ignored files.
  99. Commits in Branch1 that are not in Branch2
  100. List n last commits
  101. Reuse recorded resolution, record and reuse previous conflicts resolutions.
  102. Open all conflicted files in an editor.
  103. Count unpacked number of objects and their disk consumption.
  104. Prune all unreachable objects from the object database.
  105. Instantly browse your working repository in gitweb.
  106. View the GPG signatures in the commit log
  107. Remove entry in the global config.
  108. Checkout a new branch without any history
  109. Extract file from another branch.
  110. List only the root and merge commits.
  111. Change previous two commits with an interactive rebase.
  112. List all branch is WIP
  113. Find guilty with binary search
  114. Bypass pre-commit and commit-msg githooks
  115. List commits and changes to a specific file (even through renaming)
  116. Clone a single branch
  117. Create and switch new branch
  118. Ignore file mode changes on commits
  119. Turn off git colored terminal output
  120. Specific color settings
  121. Show all local branches ordered by recent commits
  122. Find lines matching the pattern (regex or string) in tracked files
  123. Clone a shallow copy of a repository
  124. Search Commit log across all branches for given text
  125. Get first commit in a branch (from master)
  126. Unstaging Staged file
  127. Force push to Remote Repository
  128. Adding Remote name
  129. Show the author, time and last revision made to each line of a given file
  130. Group commits by authors and title
  131. Forced push but still ensure you don't overwrite other's work
  132. Show how many lines does an author contribute
  133. Revert: Reverting an entire merge
  134. Number of commits in a branch
  135. Alias: git undo
  136. Add object notes
  137. Show all the git-notes
  138. Apply commit from another repository
  139. Specific fetch reference
  140. Find common ancestor of two branches
  141. List unpushed git commits
  142. Add everything, but whitespace changes
  143. Edit [local/global] git config
  144. blame on certain range
  145. Show a Git logical variable.
  146. Preformatted patch file.
  147. Get the repo name.
  148. logs between date range
  149. Exclude author from logs
  150. Generates a summary of pending changes
  151. List references in a remote repository
  152. Backup untracked files.
  153. List all git aliases
  154. Show git status short
  155. Checkout a commit prior to a day ago
  156. Push a new local branch to remote repository and track
  157. Change a branch base
  158. Use SSH instead of HTTPs for remotes

1. Everyday Git in twenty commands or so

git help everyday

Back to table of contents toc

2. Show helpful guides that come with Git

git help -g

Back to table of contents toc

3. Search change by content

git log -S'<a term in the source>'

Back to table of contents toc

4. Remove sensitive data from history, after a push

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <path-to-your-file>' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all

Back to table of contents toc

5. Sync with remote, overwrite local changes

git fetch origin && git reset --hard origin/master && git clean -f -d

Back to table of contents toc

6. List of all files till a commit

git ls-tree --name-only -r <commit-ish>

Back to table of contents toc

7. Git reset first commit

git update-ref -d HEAD

Back to table of contents toc

8. List all the conflicted files

git diff --name-only --diff-filter=U

Back to table of contents toc

9. List of all files changed in a commit

git diff-tree --no-commit-id --name-only -r <commit-ish>

Back to table of contents toc

10. Unstaged changes since last commit

git diff

Back to table of contents toc

11. Changes staged for commit

git diff --cached

Back to table of contents toc

Alternatives:

git diff --staged

12. Show both staged and unstaged changes

git diff HEAD

Back to table of contents toc

13. List all branches that are already merged into master

git branch --merged master

Back to table of contents toc

14. Quickly switch to the previous branch

git checkout -

Back to table of contents toc

Alternatives:

git checkout @{-1}

15. Remove branches that have already been merged with master

git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d

Back to table of contents toc

Alternatives:

git branch --merged master | grep -v '^\*\|  master' | xargs -n 1 git branch -d # will not delete master if master is not checked out

16. List all branches and their upstreams, as well as last commit on branch

git branch -vv

Back to table of contents toc

17. Track upstream branch

git branch -u origin/mybranch

Back to table of contents toc

18. Delete local branch

git branch -d <local_branchname>

Back to table of contents toc

19. Delete remote branch

git push origin --delete <remote_branchname>

Back to table of contents toc

Alternatives:

git push origin :<remote_branchname>

20. Delete local tag

git tag -d <tag-name>

Back to table of contents toc

21. Delete remote tag

git push origin :refs/tags/<tag-name>

Back to table of contents toc

22. Undo local changes with the last content in head

git checkout -- <file_name>

Back to table of contents toc

23. Revert: Undo a commit by creating a new commit

git revert <commit-ish>

Back to table of contents toc

24. Reset: Discard commits, advised for private branch

git reset <commit-ish>

Back to table of contents toc

25. Reword the previous commit message

git commit -v --amend

Back to table of contents toc

26. See commit history for just the current branch

git cherry -v master

Back to table of contents toc

27. Amend author.

git commit --amend --author='Author Name <email@address.com>'

Back to table of contents toc

28. Reset author, after author has been changed in the global config.

git commit --amend --reset-author --no-edit

Back to table of contents toc

29. Changing a remote's URL

git remote set-url origin <URL>

Back to table of contents toc

30. Get list of all remote references

git remote

Back to table of contents toc

Alternatives:

git remote show

31. Get list of all local and remote branches

git branch -a

Back to table of contents toc

32. Get only remote branches

git branch -r

Back to table of contents toc

33. Stage parts of a changed file, instead of the entire file

git add -p

Back to table of contents toc

34. Get git bash completion

curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc

Back to table of contents toc

35. What changed since two weeks?

git log --no-merges --raw --since='2 weeks ago'

Back to table of contents toc

Alternatives:

git whatchanged --since='2 weeks ago'

36. See all commits made since forking from master

git log --no-merges --stat --reverse master..

Back to table of contents toc

37. Pick commits across branches using cherry-pick

git checkout <branch-name> && git cherry-pick <commit-ish>

Back to table of contents toc

38. Find out branches containing commit-hash

git branch -a --contains <commit-ish>

Back to table of contents toc

Alternatives:

git branch --contains <commit-ish>

39. Git Aliases

git config --global alias.<handle> <command> 
git config --global alias.st status

Back to table of contents toc

40. Saving current state of tracked files without commiting

git stash

Back to table of contents toc

Alternatives:

git stash save

41. Saving current state of unstaged changes to tracked files

git stash -k

Back to table of contents toc

Alternatives:

git stash --keep-index
git stash save --keep-index

42. Saving current state including untracked files

git stash -u

Back to table of contents toc

Alternatives:

git stash save -u
git stash save --include-untracked

43. Saving current state with message

git stash save <message>

Back to table of contents toc

44. Saving current state of all files (ignored, untracked, and tracked)

git stash -a

Back to table of contents toc

Alternatives:

git stash --all
git stash save --all

45. Show list of all saved stashes

git stash list

Back to table of contents toc

46. Apply any stash without deleting from the stashed list

git stash apply <stash@{n}>

Back to table of contents toc

47. Apply last stashed state and delete it from stashed list

git stash pop

Back to table of contents toc

Alternatives:

git stash apply stash@{0} && git stash drop stash@{0}

48. Delete all stored stashes

git stash clear

Back to table of contents toc

Alternatives:

git stash drop <stash@{n}>

49. Grab a single file from a stash

git checkout <stash@{n}> -- <file_path>

Back to table of contents toc

Alternatives:

git checkout stash@{0} -- <file_path>

50. Show all tracked files

git ls-files -t

Back to table of contents toc

51. Show all untracked files

git ls-files --others

Back to table of contents toc

52. Show all ignored files

git ls-files --others -i --exclude-standard

Back to table of contents toc

53. Create new working tree from a repository (git 2.5)

git worktree add -b <branch-name> <path> <start-point>

Back to table of contents toc

54. Create new working tree from HEAD state

git worktree add --detach <path> HEAD

Back to table of contents toc

55. Untrack files without deleting

git rm --cached <file_path>

Back to table of contents toc

Alternatives:

git rm --cached -r <directory_path>

56. Before deleting untracked files/directory, do a dry run to get the list of these files/directories

git clean -n

Back to table of contents toc

57. Forcefully remove untracked files

git clean -f

Back to table of contents toc

58. Forcefully remove untracked directory

git clean -f -d

Back to table of contents toc

59. Update all the submodules

git submodule foreach git pull

Back to table of contents toc

Alternatives:

git submodule update --init --recursive
git submodule update --remote

60. Show all commits in the current branch yet to be merged to master

git cherry -v master

Back to table of contents toc

Alternatives:

git cherry -v master <branch-to-be-merged>

61. Rename a branch

git branch -m <new-branch-name>

Back to table of contents toc

Alternatives:

git branch -m [<old-branch-name>] <new-branch-name>

62. Rebases 'feature' to 'master' and merges it in to master

git rebase master feature && git checkout master && git merge -

Back to table of contents toc

63. Archive the master branch

git archive master --format=zip --output=master.zip

Back to table of contents toc

64. Modify previous commit without modifying the commit message

git add --all && git commit --amend --no-edit

Back to table of contents toc

65. Prunes references to remote branches that have been deleted in the remote.

git fetch -p

Back to table of contents toc

Alternatives:

git remote prune origin

66. Retrieve the commit hash of the initial revision.

 git rev-list --reverse HEAD | head -1

Back to table of contents toc

Alternatives:

git rev-list --max-parents=0 HEAD
git log --pretty=oneline | tail -1 | cut -c 1-40
git log --pretty=oneline --reverse | head -1 | cut -c 1-40

67. Visualize the version tree.

git log --pretty=oneline --graph --decorate --all

Back to table of contents toc

Alternatives:

gitk --all
git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d'

68. Visualize the tree including commits that are only referenced from reflogs

git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all)

Back to table of contents toc

69. Deploying git tracked subfolder to gh-pages

git subtree push --prefix subfolder_name origin gh-pages

Back to table of contents toc

70. Adding a project to repo using subtree

git subtree add --prefix=<directory_name>/<project_name> --squash git@github.com:<username>/<project_name>.git master

Back to table of contents toc

71. Get latest changes in your repo for a linked project using subtree

git subtree pull --prefix=<directory_name>/<project_name> --squash git@github.com:<username>/<project_name>.git master

Back to table of contents toc

72. Export a branch with history to a file.

git bundle create <file> <branch-name>

Back to table of contents toc

73. Import from a bundle

git clone repo.bundle <repo-dir> -b <branch-name>

Back to table of contents toc

74. Get the name of current branch.

git rev-parse --abbrev-ref HEAD

Back to table of contents toc

75. Ignore one file on commit (e.g. Changelog).

git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog

Back to table of contents toc

76. Stash changes before rebasing

git rebase --autostash

Back to table of contents toc

77. Fetch pull request by ID to a local branch

git fetch origin pull/<id>/head:<branch-name>

Back to table of contents toc

Alternatives:

git pull origin pull/<id>/head:<branch-name>

78. Show the most recent tag on the current branch.

git describe --tags --abbrev=0

Back to table of contents toc

79. Show inline word diff.

git diff --word-diff

Back to table of contents toc

80. Show changes using common diff tools.

git difftool [-t <tool>] <commit1> <commit2> <path>

Back to table of contents toc

81. Don’t consider changes for tracked file.

git update-index --assume-unchanged <file_name>

Back to table of contents toc

82. Undo assume-unchanged.

git update-index --no-assume-unchanged <file_name>

Back to table of contents toc

83. Clean the files from .gitignore.

git clean -X -f

Back to table of contents toc

84. Restore deleted file.

git checkout <deleting_commit>^ -- <file_path>

Back to table of contents toc

85. Restore file to a specific commit-hash

git checkout <commit-ish> -- <file_path>

Back to table of contents toc

86. Always rebase instead of merge on pull.

git config --global pull.rebase true

Back to table of contents toc

Alternatives:

#git < 1.7.9
git config --global branch.autosetuprebase always

87. List all the alias and configs.

git config --list

Back to table of contents toc

88. Make git case sensitive.

git config --global core.ignorecase false

Back to table of contents toc

89. Add custom editors.

git config --global core.editor '$EDITOR'

Back to table of contents toc

90. Auto correct typos.

git config --global help.autocorrect 1

Back to table of contents toc

91. Check if the change was a part of a release.

git name-rev --name-only <SHA-1>

Back to table of contents toc

92. Dry run. (any command that supports dry-run flag should do.)

git clean -fd --dry-run

Back to table of contents toc

93. Marks your commit as a fix of a previous commit.

git commit --fixup <SHA-1>

Back to table of contents toc

94. Squash fixup commits normal commits.

git rebase -i --autosquash

Back to table of contents toc

95. Skip staging area during commit.

git commit --only <file_path>

Back to table of contents toc

96. Interactive staging.

git add -i

Back to table of contents toc

97. List ignored files.

git check-ignore *

Back to table of contents toc

98. Status of ignored files.

git status --ignored

Back to table of contents toc

99. Commits in Branch1 that are not in Branch2

git log Branch1 ^Branch2

Back to table of contents toc

100. List n last commits

git log -<n>

Back to table of contents toc

Alternatives:

git log -n <n>

101. Reuse recorded resolution, record and reuse previous conflicts resolutions.

git config --global rerere.enabled 1

Back to table of contents toc

102. Open all conflicted files in an editor.

git diff --name-only | uniq | xargs $EDITOR

Back to table of contents toc

103. Count unpacked number of objects and their disk consumption.

git count-objects --human-readable

Back to table of contents toc

104. Prune all unreachable objects from the object database.

git gc --prune=now --aggressive

Back to table of contents toc

105. Instantly browse your working repository in gitweb.

git instaweb [--local] [--httpd=<httpd>] [--port=<port>] [--browser=<browser>]

Back to table of contents toc

106. View the GPG signatures in the commit log

git log --show-signature

Back to table of contents toc

107. Remove entry in the global config.

git config --global --unset <entry-name>

Back to table of contents toc

108. Checkout a new branch without any history

git checkout --orphan <branch_name>

Back to table of contents toc

109. Extract file from another branch.

git show <branch_name>:<file_name>

Back to table of contents toc

110. List only the root and merge commits.

git log --first-parent

Back to table of contents toc

111. Change previous two commits with an interactive rebase.

git rebase --interactive HEAD~2

Back to table of contents toc

112. List all branch is WIP

git checkout master && git branch --no-merged

Back to table of contents toc

113. Find guilty with binary search

git bisect start                    # Search start 
git bisect bad                      # Set point to bad commit 
git bisect good v2.6.13-rc2         # Set point to good commit|tag 
git bisect bad                      # Say current state is bad 
git bisect good                     # Say current state is good 
git bisect reset                    # Finish search 

Back to table of contents toc

114. Bypass pre-commit and commit-msg githooks

git commit --no-verify

Back to table of contents toc

115. List commits and changes to a specific file (even through renaming)

git log --follow -p -- <file_path>

Back to table of contents toc

116. Clone a single branch

git clone -b <branch-name> --single-branch https://github.com/user/repo.git

Back to table of contents toc

117. Create and switch new branch

git checkout -b <branch-name>

Back to table of contents toc

Alternatives:

git branch <branch-name> && git checkout <branch-name>

118. Ignore file mode changes on commits

git config core.fileMode false

Back to table of contents toc

119. Turn off git colored terminal output

git config --global color.ui false

Back to table of contents toc

120. Specific color settings

git config --global <specific command e.g branch, diff> <true, false or always>

Back to table of contents toc

121. Show all local branches ordered by recent commits

git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/

Back to table of contents toc

122. Find lines matching the pattern (regex or string) in tracked files

git grep --heading --line-number 'foo bar'

Back to table of contents toc

123. Clone a shallow copy of a repository

git clone https://github.com/user/repo.git --depth 1

Back to table of contents toc

124. Search Commit log across all branches for given text

git log --all --grep='<given-text>'

Back to table of contents toc

125. Get first commit in a branch (from master)

git log --oneline master..<branch-name> | tail -1

Back to table of contents toc

Alternatives:

git log --reverse master..<branch-name> | head -6

126. Unstaging Staged file

git reset HEAD <file-name>

Back to table of contents toc

127. Force push to Remote Repository

git push -f <remote-name> <branch-name>

Back to table of contents toc

128. Adding Remote name

git remote add <remote-nickname> <remote-url>

Back to table of contents toc

129. Show the author, time and last revision made to each line of a given file

git blame <file-name>

Back to table of contents toc

130. Group commits by authors and title

git shortlog

Back to table of contents toc

131. Forced push but still ensure you don't overwrite other's work

git push --force-with-lease <remote-name> <branch-name>

Back to table of contents toc

132. Show how many lines does an author contribute

git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += <!-- @doxie.inject start -->; subs += <!-- @doxie.inject end -->; loc += <!-- @doxie.inject start --> - <!-- @doxie.inject end --> } END { printf "added lines: %s removed lines: %s total lines: %s
", add, subs, loc }' -

Back to table of contents toc

Alternatives:

git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += <!-- @doxie.inject start -->; subs += <!-- @doxie.inject end -->; loc += <!-- @doxie.inject start --> - <!-- @doxie.inject end --> } END { printf "added lines: %s, removed lines: %s, total lines: %s
", add, subs, loc }' - # on Mac OSX

133. Revert: Reverting an entire merge

git revert -m 1 <commit-ish>

Back to table of contents toc

134. Number of commits in a branch

git rev-list --count <branch-name>

Back to table of contents toc

135. Alias: git undo

git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'

Back to table of contents toc

136. Add object notes

git notes add -m 'Note on the previous commit....'

Back to table of contents toc

137. Show all the git-notes

git log --show-notes='*'

Back to table of contents toc

138. Apply commit from another repository

git --git-dir=<source-dir>/.git format-patch -k -1 --stdout <SHA1> | git am -3 -k

Back to table of contents toc

139. Specific fetch reference

git fetch origin master:refs/remotes/origin/mymaster

Back to table of contents toc

140. Find common ancestor of two branches

git merge-base <branch-name> <other-branch-name>

Back to table of contents toc

141. List unpushed git commits

git log --branches --not --remotes

Back to table of contents toc

Alternatives:

git log @{u}..
git cherry -v

142. Add everything, but whitespace changes

git diff --ignore-all-space | git apply --cached

Back to table of contents toc

143. Edit [local/global] git config

git config [--global] --edit

Back to table of contents toc

144. blame on certain range

git blame -L <start>,<end>

Back to table of contents toc

145. Show a Git logical variable.

git var -l | <variable>

Back to table of contents toc

146. Preformatted patch file.

git format-patch -M upstream..topic

Back to table of contents toc

147. Get the repo name.

git rev-parse --show-toplevel

Back to table of contents toc

148. logs between date range

git log --since='FEB 1 2017' --until='FEB 14 2017'

Back to table of contents toc

149. Exclude author from logs

git log --perl-regexp --author='^((?!excluded-author-regex).*)

## Other languages

[English ![external site][octicon-link-external]](http://git.io/git-tips) | [中文 ![external site][octicon-link-external]](https://github.com/521xueweihan/git-tips) | [Русский ![external site][octicon-link-external]](https://github.com/Imangazaliev/git-tips) | [한국어 ![external site][octicon-link-external]](https://github.com/mingrammer/git-tips) | [Tiếng Việt ![external site][octicon-link-external]](https://github.com/hprobotic/git-tips) | [日本語 ![external site][octicon-link-external]](https://github.com/isotai/git-tips)

## Tools

[git-tip ![external site][octicon-link-external]](https://www.npmjs.com/package/git-tip) - A handy CLI to make optimum use of these tips. ([Here in Docker container ![external site][octicon-link-external]](https://github.com/djoudi5/docker-git-tip))

---

Want to add your tips? Checkout [contributing.md](./contributing.md)

---

[octicon-arrow-up]: https://cdnjs.cloudflare.com/ajax/libs/octicons/8.1.3/svg/arrow-up.svg
[octicon-link-external]: https://cdnjs.cloudflare.com/ajax/libs/octicons/8.1.3/svg/link-external.svg

[toc]: #table-of-contents

Back to table of contents toc

150. Generates a summary of pending changes

git request-pull v1.0 https://git.ko.xz/project master:for-linus

Back to table of contents toc

151. List references in a remote repository

git ls-remote git://git.kernel.org/pub/scm/git/git.git

Back to table of contents toc

152. Backup untracked files.

git ls-files --others -i --exclude-standard | xargs zip untracked.zip

Back to table of contents toc

153. List all git aliases

git config -l | grep alias | sed 's/^alias\.//g'

Back to table of contents toc

Alternatives:

git config -l | grep alias | cut -d '.' -f 2

154. Show git status short

git status --short --branch

Back to table of contents toc

155. Checkout a commit prior to a day ago

git checkout master@{yesterday}

Back to table of contents toc

156. Push a new local branch to remote repository and track

git push -u origin <branch_name>

Back to table of contents toc

157. Change a branch base

git rebase --onto <new_base> <old_base>

Back to table of contents toc

158. Use SSH instead of HTTPs for remotes

git config --global url.'git@github.com:'.insteadOf 'https://github.com/'

Back to table of contents toc

Other languages

English external site | 中文 external site | Русский external site | 한국어 external site | Tiếng Việt external site | 日本語 external site

Tools

git-tip external site - A handy CLI to make optimum use of these tips. (Here in Docker container external site)


Want to add your tips? Checkout contributing.md


Clone this wiki locally