pick ce36c98 Carelesspick cb14efd Remove DVD-rippick f772d66 Login page
# Rebase 5af4522..f772d66 onto 5af4522## Commands:# p, pick = use commit# r, reword = use commit, but edit the commit message# e, edit = use commit, but stop for amending# s, squash = use commit, but meld into previous commit# f, fixup = like "squash", but discard this commit's log message# x, exec = run command (the rest of the line) using shell## If you remove a line here THAT COMMIT WILL BE LOST.# However, if you remove everything, the rebase will be aborted.#
Stopped at ce36c98... CarelessYou can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
# WARNING!!!# this will rewrite completely your bitbucket refs# will delete all branches that you didn't have in your local
git push --all --prune --force
# Once you pushed, all your teammates need to clone repository again# git pull will not work
# First, apply what's in the answer linked in the front# and before doing the gc --prune --aggressive, do:
# Go back at the origin of the repositorygit checkout -b newinit <sha1 of first commit># Create a parallel initial commitgit commit --amend# go back on the master branch that has big file# still referenced in history, even though# we thought we removed them.git checkout master# rebase on the newinit created earlier. By reapply patches,# it will really forget about the references to hidden big files.git rebase newinit
# Do the previous part (checkout + rebase) for each branch# still connected to the original initial commit,# so we remove all the references.
# Remove the .git/logs folder, also containing references# to commits that could make git gc not remove them.rm -rf .git/logs/
# Then you can do a garbage collection,# and the hidden files really will get gc'edgit gc --prune --aggressive
# Do it in a new testing branch$ git checkout -b test
# Remove file-name from every commit on the new branch# --index-filter, rewrite index without checking out# --cached, remove it from index but not include working tree# --ignore-unmatch, ignore if files to be removed are absent in a commit# HEAD, execute the specified command for each commit reached from HEAD by parent link$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch file-name' HEAD
# The output is OK, reset it to the prior branch master$ git checkout master$ git reset --soft test
# Remove test branch$ git branch -d test
# Push it with force$ git push --force origin master