git-tips
Collection of git-tips
, want to add your tips? Checkout
contributing.md
English |
中文 |
Русский |
한국어 |
Tiếng Việt |
日本語 |
नेपाली |
Polski |
فارسی
P.S: All these commands are tested on
git version 2.7.4 (Apple Git-66)
.
-
Everyday Git in twenty commands or so
-
Show helpful guides that come with Git
- Search change by content
-
Show changes over time for specific file
-
Remove sensitive data from history, after a push
-
Sync with remote, overwrite local changes
-
List of all files till a commit
- Git reset first commit
-
Reset: preserve uncommitted local changes
-
List all the conflicted files
-
List of all files changed in a commit
-
Unstaged changes since last commit
-
Changes staged for commit
-
Show both staged and unstaged changes
-
List all branches that are already merged into master
-
Quickly switch to the previous branch
-
Remove branches that have already been merged with master
-
List all branches and their upstreams, as well as last commit on
branch
- Track upstream branch
- Delete local branch
- Delete remote branch
- Create local tag
- Delete local tag
- Delete remote tag
-
Undo local changes with the last content in head
-
Revert: Undo a commit by creating a new commit
-
Reset: Discard commits, advised for private branch
-
Reword the previous commit message
-
See commit history for just the current branch
- Amend author.
-
Reset author, after author has been changed in the global config.
- Changing a remote’s URL
-
Get list of all remote references
-
Get list of all local and remote branches
- Get only remote branches
-
Stage parts of a changed file, instead of the entire file
- Get git bash completion
-
What changed since two weeks?
-
See all commits made since forking from master
-
Pick commits across branches using cherry-pick
-
Find out branches containing commit-hash
- Git Aliases
-
Saving current state of tracked files without commiting
-
Saving current state of unstaged changes to tracked files
-
Saving current state including untracked files
-
Saving current state with message
-
Saving current state of all files (ignored, untracked, and
tracked)
-
Show list of all saved stashes
-
Show the contents of any stash in patch form
-
Apply any stash without deleting from the stashed list
-
Apply last stashed state and delete it from stashed list
-
Delete all stored stashes
-
Grab a single file from a stash
- Show all tracked files
- Show all untracked files
- Show all ignored files
-
Create new working tree from a repository (git 2.5)
-
Create new working tree from HEAD state
-
Untrack files without deleting
-
Before deleting untracked files/directory, do a dry run to get the
list of these files/directories
-
Forcefully remove untracked files
-
Forcefully remove untracked directory
-
Update all the submodules
-
Show all commits in the current branch yet to be merged to master
- Rename a branch
-
Rebases ‘feature’ to ‘master’ and merges it in to master
-
Archive the
master
branch
-
Modify previous commit without modifying the commit message
-
Prunes references to remove branches that have been deleted in the
remote.
-
Delete local branches that has been squash and merged in the
remote.
-
Retrieve the commit hash of the initial revision.
-
Visualize the version tree.
-
Visualize the tree including commits that are only referenced from
reflogs
-
Deploying git tracked subfolder to gh-pages
-
Adding a project to repo using subtree
-
Get latest changes in your repo for a linked project using subtree
-
Export a branch with history to a file.
- Import from a bundle
-
Get the name of current branch.
-
Ignore one file on commit (e.g. Changelog).
-
Stash changes before rebasing
-
Fetch pull request by ID to a local branch
-
Show the most recent tag on the current branch.
- Show inline word diff.
-
Show changes using common diff tools.
-
Don’t consider changes for tracked file.
- Undo assume-unchanged.
-
Clean the files from
.gitignore
.
- Restore deleted file.
-
Restore file to a specific commit-hash
-
Always rebase instead of merge on pull.
-
List all the alias and configs.
- Make git case sensitive.
- Add custom editors.
- Auto correct typos.
-
Check if the change was a part of a release.
-
Dry run. (any command that supports dry-run flag should do.)
-
Marks your commit as a fix of a previous commit.
-
Squash fixup commits normal commits.
-
Skip staging area during commit.
- Interactive staging.
- List ignored files.
- Status of ignored files.
-
Commits in Branch1 that are not in Branch2
- List n last commits
-
Reuse recorded resolution, record and reuse previous conflicts
resolutions.
-
Open all conflicted files in an editor.
-
Count unpacked number of objects and their disk consumption.
-
Prune all unreachable objects from the object database.
-
Instantly browse your working repository in gitweb.
-
View the GPG signatures in the commit log
-
Remove entry in the global config.
-
Checkout a new branch without any history
-
Extract file from another branch.
-
List only the root and merge commits.
-
Change previous two commits with an interactive rebase.
- List all branch is WIP
-
Find guilty with binary search
-
Bypass pre-commit and commit-msg githooks
-
List commits and changes to a specific file (even through
renaming)
- Clone a single branch
-
Create and switch new branch
-
Ignore file mode changes on commits
-
Turn off git colored terminal output
- Specific color settings
-
Show all local branches ordered by recent commits
-
Find lines matching the pattern (regex or string) in tracked files
-
Clone a shallow copy of a repository
-
Search Commit log across all branches for given text
-
Get first commit in a branch (from master)
- Unstaging Staged file
-
Force push to Remote Repository
- Adding Remote name
-
List all currently configured remotes
-
Show the author, time and last revision made to each line of a given
file
-
Group commits by authors and title
-
Forced push but still ensure you don’t overwrite other’s work
-
Show how many lines does an author contribute
-
Revert: Reverting an entire merge
-
Number of commits in a branch
- Alias: git undo
- Add object notes
- Show all the git-notes
-
Apply commit from another repository
- Specific fetch reference
-
Find common ancestor of two branches
-
List unpushed git commits
-
Add everything, but whitespace changes
-
Edit [local/global] git config
- blame on certain range
-
Show a Git logical variable.
- Preformatted patch file.
- Get the repo name.
- logs between date range
- Exclude author from logs
-
Generates a summary of pending changes
-
List references in a remote repository
- Backup untracked files.
- List all git aliases
- Show git status short
-
Checkout a commit prior to a day ago
-
Push the current branch to the same name on the remote repository
-
Push a new local branch to remote repository and track
- Change a branch base
-
Use SSH instead of HTTPs for remotes
-
Update a submodule to the latest commit
-
Prevent auto replacing LF with CRLF
Everyday Git in twenty commands or so
Show helpful guides that come with Git
Search change by content
Show changes over time for specific file
Remove sensitive data from history, after a push
Sync with remote, overwrite local changes
List of all files till a commit
Git reset first commit
Reset: preserve uncommitted local changes
List all the conflicted files
List of all files changed in a commit
Unstaged changes since last commit
Changes staged for commit
Alternatives:
Show both staged and unstaged changes
List all branches that are already merged into master
Quickly switch to the previous branch
Alternatives:
Remove branches that have already been merged with master
Alternatives:
List all branches and their upstreams, as well as last commit on branch
Track upstream branch
Delete local branch
Delete remote branch
Alternatives:
Create local tag
Delete local tag
Delete remote tag
Undo local changes with the last content in head
Revert: Undo a commit by creating a new commit
Reset: Discard commits, advised for private branch
Reword the previous commit message
See commit history for just the current branch
Amend author.
Reset author, after author has been changed in the global config.
Changing a remote’s URL
Get list of all remote references
Alternatives:
Get list of all local and remote branches
Get only remote branches
Stage parts of a changed file, instead of the entire file
Get git bash completion
What changed since two weeks?
Alternatives:
See all commits made since forking from master
Pick commits across branches using cherry-pick
Find out branches containing commit-hash
Alternatives:
Git Aliases
Saving current state of tracked files without commiting
Alternatives:
Saving current state of unstaged changes to tracked files
Alternatives:
Saving current state including untracked files
Alternatives:
Saving current state with message
Alternatives:
Saving current state of all files (ignored, untracked, and tracked)
Alternatives:
Show list of all saved stashes
Show the contents of any stash in patch form
Apply any stash without deleting from the stashed list
Apply last stashed state and delete it from stashed list
Alternatives:
Delete all stored stashes
Alternatives:
Grab a single file from a stash
Alternatives:
Show all tracked files
Show all untracked files
Show all ignored files
Create new working tree from a repository (git 2.5)
Create new working tree from HEAD state
Untrack files without deleting
Alternatives:
Before deleting untracked files/directory, do a dry run to get the list of
these files/directories
Forcefully remove untracked files
Forcefully remove untracked directory
Update all the submodules
Alternatives:
Show all commits in the current branch yet to be merged to master
Alternatives:
Rename a branch
Alternatives:
Rebases ‘feature’ to ‘master’ and merges it in to master
Archive the master
branch
Modify previous commit without modifying the commit message
Prunes references to remove branches that have been deleted in the remote.
Alternatives:
Delete local branches that has been squash and merged in the remote.
Retrieve the commit hash of the initial revision.
Alternatives:
Visualize the version tree.
Alternatives:
Visualize the tree including commits that are only referenced from reflogs
Deploying git tracked subfolder to gh-pages
Adding a project to repo using subtree
Get latest changes in your repo for a linked project using subtree
Export a branch with history to a file.
Import from a bundle
Get the name of current branch.
Ignore one file on commit (e.g. Changelog).
Stash changes before rebasing
Fetch pull request by ID to a local branch
Alternatives:
Show the most recent tag on the current branch.
Show inline word diff.
Don’t consider changes for tracked file.
Undo assume-unchanged.
Clean the files from .gitignore
.
Restore deleted file.
Restore file to a specific commit-hash
Always rebase instead of merge on pull.
Alternatives:
List all the alias and configs.
Make git case sensitive.
Add custom editors.
Auto correct typos.
Check if the change was a part of a release.
Dry run. (any command that supports dry-run flag should do.)
Marks your commit as a fix of a previous commit.
Squash fixup commits normal commits.
Skip staging area during commit.
Interactive staging.
List ignored files.
Status of ignored files.
Commits in Branch1 that are not in Branch2
List n last commits
Alternatives:
Reuse recorded resolution, record and reuse previous conflicts
resolutions.
Open all conflicted files in an editor.
Count unpacked number of objects and their disk consumption.
Prune all unreachable objects from the object database.
Instantly browse your working repository in gitweb.
View the GPG signatures in the commit log
Remove entry in the global config.
Checkout a new branch without any history
List only the root and merge commits.
Change previous two commits with an interactive rebase.
List all branch is WIP
Find guilty with binary search
Bypass pre-commit and commit-msg githooks
List commits and changes to a specific file (even through renaming)
Clone a single branch
Create and switch new branch
Alternatives:
Ignore file mode changes on commits
Turn off git colored terminal output
Specific color settings
Show all local branches ordered by recent commits
Find lines matching the pattern (regex or string) in tracked files
Clone a shallow copy of a repository
Search Commit log across all branches for given text
Get first commit in a branch (from master)
Alternatives:
Unstaging Staged file
Force push to Remote Repository
Adding Remote name
Show the author, time and last revision made to each line of a given file
Group commits by authors and title
Forced push but still ensure you don’t overwrite other’s work
Show how many lines does an author contribute
Alternatives:
Revert: Reverting an entire merge
Number of commits in a branch
Alias: git undo
Add object notes
Show all the git-notes
Apply commit from another repository
Specific fetch reference
Find common ancestor of two branches
List unpushed git commits
Alternatives:
Add everything, but whitespace changes
Edit [local/global] git config
blame on certain range
Show a Git logical variable.
Get the repo name.
logs between date range
Exclude author from logs
Generates a summary of pending changes
List references in a remote repository
Backup untracked files.
List all git aliases
Alternatives:
Show git status short
Checkout a commit prior to a day ago
Push the current branch to the same name on the remote repository
Push a new local branch to remote repository and track
Change a branch base
Use SSH instead of HTTPs for remotes
Update a submodule to the latest commit
Prevent auto replacing LF with CRLF