git
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
git [2023/11/30 08:56] – [Deleting branch] skipidar | git [2023/11/30 09:11] (current) – [Remove unreachable blobs] skipidar | ||
---|---|---|---|
Line 308: | Line 308: | ||
- | // first backup your history by copying the branch. | + | # |
- | // can remove it later | + | # |
git switch master | git switch master | ||
git branch master_history_2023_11_31 | git branch master_history_2023_11_31 | ||
Line 317: | Line 317: | ||
- | //Checkout as orphan, without history | + | # Checkout as orphan, without history |
git checkout --orphan latest_branch | git checkout --orphan latest_branch | ||
- | //Add all the files | + | # Add all the files |
git add -A | git add -A | ||
- | //Commit the changes | + | # Commit the changes |
git commit -am " | git commit -am " | ||
- | //Delete the branch | + | # Delete the branch |
git branch -D master | git branch -D master | ||
- | //Rename the current branch to master | + | # Rename the current branch to master |
git branch -m master | git branch -m master | ||
- | //Finally, force update your repository | + | # Finally, force update your repository |
git push -f origin master | git push -f origin master | ||
Line 351: | Line 351: | ||
git push origin --delete latest_branch | git push origin --delete latest_branch | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== Remove unreachable blobs, reduce size of repo ===== | ||
+ | |||
+ | '' | ||
+ | |||
+ | |||
+ | Sometimes in '' | ||
+ | Even if you removed the history on the current branch, they might persist blowing up the repo. | ||
+ | |||
+ | To clean them up - use the garbage collector. | ||
+ | |||
+ | <sxh shell> | ||
+ | |||
+ | # This command is used to expire all entries in the reflog that are not reachable from the current commit (i.e., entries that are not part of any branch or tag). The --expire-unreachable=all flag specifies that even unreachable entries (such as commits that were " | ||
+ | # The --all flag ensures that it applies to all branches and tags, not just the current branch. | ||
+ | git reflog expire --expire-unreachable=all --all | ||
+ | |||
+ | |||
+ | |||
+ | # This command triggers Git's garbage collection process (gc stands for " | ||
+ | |||
+ | git gc --prune=all | ||
</ | </ |
git.1701334602.txt.gz · Last modified: by skipidar