User Tools

Site Tools


git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
git [2023/11/16 15:28] skipidargit [2023/11/30 09:11] (current) – [Remove unreachable blobs] skipidar
Line 69: Line 69:
 </code> </code>
  
-{{http://i520.photobucket.com/albums/w327/schajtan/2016-04-11_07-54-14_zpst9gauhtu.png}}+{{https://s3.eu-central-1.amazonaws.com/alf-digital-wiki-pics/sharex/nkP1CdUbXS.png}}
  
  
Line 257: Line 257:
 ==== Rebase ===== ==== Rebase =====
  
-<code>+<sxh shell>
  
  
Line 298: Line 298:
 git push --force-with-lease git push --force-with-lease
  
-</code>+</sxh> 
 + 
 + 
 +==== Getting rid of Git History ===== 
 + 
 +https://stackoverflow.com/questions/13716658/how-to-delete-all-commit-history-in-github 
 + 
 +<sxh shell> 
 + 
 + 
 +#  first backup your history by copying the branch. 
 +#  can remove it later 
 +git switch master 
 +git branch master_history_2023_11_31 
 +git push origin -u master_history_2023_11_31 
 + 
 + 
 + 
 + 
 +# Checkout as orphan, without history 
 +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 master 
 + 
 +# Rename the current branch to master 
 +git branch -m master 
 + 
 +# Finally, force update your repository 
 +git push -f origin master 
 + 
 + 
 +</sxh> 
 + 
 + 
 + 
 + 
 +==== Deleting branch  ===== 
 + 
 +Delete branch ''latest_branch'' 
 + 
 +<sxh shell> 
 + 
 +git branch -D latest_branch 
 + 
 +git push origin --delete latest_branch 
 + 
 +</sxh> 
 + 
 + 
 + 
 +==== Remove unreachable blobs, reduce size of repo  ===== 
 + 
 +''objects/pack'': This folder contains packed object files. Git occasionally compresses objects into packfiles to save space and improve performance. 
 + 
 + 
 +Sometimes in ''objects/pack'' there are blobs collected. 
 +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 "lost" due to being orphaned or removed by a rebase or reset) should be expired.  
 +# 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 "garbage collect"). The --prune=all flag tells Git to aggressively prune all unreachable objects, including unreferenced commits, blobs, trees, and other data that are not reachable from any branch, tag, or reflog entry. This helps to reclaim disk space by removing unnecessary or dangling objects from the repository. 
 + 
 +git gc --prune=all 
 +</sxh>
git.1700148538.txt.gz · Last modified: by skipidar