Delete all Git Commit History
Solution 1
I thought what you want is a repo like a new one, so deleting the .git/
directory and re-initing it will be more simple.
git clone https://github.com/user/user-repo.git
cd user-repo
git reset --hard tags/v2.0
rm -rf .git/
git init
git add .
git commit -m 'first commit'
git remote add stash ssh://git@myserver:7999/myproject/user-repo.git
git push --force stash master
Solution 2
You can use git merge --squash
to squash all commits into one and then push it.
Solution 3
Are you basically talking about rolling up all of the commits into one commit or do you want to retain all of the commits but truncate the actual commit message?
To squash the commits into one (and truncate the final commit message, if you want), you can use an interactive rebase:
git rebase -i <whatever>
To truncate the actual commit messages but retain all of the commits, use the --msg-filter
option to git filter-branch
.
Related videos on Youtube
noway
Updated on July 18, 2022Comments
-
noway almost 2 years
I am trying to fetch a repo from Github, revert a tag in past, push it to another remote with deleting all history. I can do everything with below except deleting all commit logs. What I am missing?
git clone https://github.com/user/user-repo.git cd user-repo git reset --hard tags/v2.0 git remote add stash ssh://git@myserver:7999/myproject/user-repo.git git push --force stash master
-
dorsz almost 7 yearsI was trying to find a very complicated way to remove or squash old commits, while this is the elegant and simple solution :) Thanks. If you need repo like a brand new one then go for it (just remember to backup your code that you want to move to the new repo ;) )