I have 4 branches. main, release, master, preview.
Preview is used for doing experiments. I want to clean the preview branch and sync it with release branch.
If I just merge release branch into preview, I still have the old experiment code. I am not sure how to go about it
If you would like to keep the experiment in the branch, you could do this:
git checkout preview
git merge --no-commit release
# let's get the contents of files just like in release:
git restore --staged --worktree --source=release -- .
git merge --continue
Now you have a merge of release
into preview
and the contents of the merge (files) is just like release
.
Another way, without the merge, but having the result of having contents of files just like in release
would be:
git checkout preview
git restore --staged --worktree --source=release -- .
git commit -m "Making this branch look like release, but without merging nor modifying history of this branch".
If you want the branch to be just like release
also in terms of history:
git checkout preview
git reset --hard release
# and now feel free to force-push into whatever remove branch you need to.