Clear Git History
- Checkout
git checkout --orphan latest_branch
- Add all the files
git add -A
- Commit the changes
git commit -am "commit message"
- Delete the branch
git branch -D main
- Rename the current branch to main
git branch -m main
- Finally, force update your repository
git push -f origin main
rebase
- git - How do I squash my last N commits together? - Stack Overflow
commit message was set after operation.
Merge VS Rebase
- Merge the incoming changes into the current branch: select this option to perform merge during the update. This is equivalent to running
git fetch
and thengit merge
, orgit pull --no-rebase
. - Rebase the current branch on top of the incoming changes: select this option to perform rebase during the update. This is equivalent to running
git fetch
and thengit rebase
, orgit pull --rebase
(all local commits will be put on top of the updated upstream head).
Pretty Print
git ls-tree --full-tree --name-only -r HEAD
git log --all --decorate --oneline --graph
Sparse Checkout
Used in mono repo.
Reduce your working tree to a subset of tracked files
git clone \
--depth 1 \
--filter=blob:none \
--sparse \
https://github.com/cirosantilli/test-git-partial-clone
git sparse-checkout set --cone
git sparse-checkout set path/to/dir
Global .gitignore
git config --global core.excludesfile ~/.gitignore