...
git fetch origin
git branch -f main origin/main
if your local main is based off the upstream main- (Optionally)
git push --force FORK main
if you are keeping your fork's main up-to-date - For all branches based on the bad checkout:
git checkout $BRANCH
git rebase --interactive main
- Remove the old main commit from the list
Sometimes you might get DCO issues on a release branch when you're merging new commits in, fix it following a similar process:
git checkout release-22.1.x
to checkout the release branch at the last releasegit merge main
to merge in desired commits (use git reset --hard xxxx to set main at a desired commit)git rebase -i HEAD~10
to initiate a interactive rebase, replace 10 with the number of commits back that has DCO issues- In the rebase file find the commit hashes with DCO issues, replace the '
pick
' with 'edit
' - You might also need to fix some merge conflicts as the rebase happens, should be straight forward
- When the rebase stops at your desired commits, run
git commit --amend --no-edit --signoff to signoff
the commit - Run
git rebase --continue
to continue, repeat steps 5-6 until done - Push the changes with
git push --force-with-lease origin release-22.1.2