Question

Since asking my last question which turned out to be about rebasing with GIT, I have decided that I don't want to rebase at all. Instead I want to:

  1. Branch
  2. Work work work, checking in and pushing at all times
  3. Throw out all of those commits and pretend they never happened (so one clean commit at the end of work)

I do this currently by copying the files to a new directory and then copying them back in to a new branch (branched at the same point as my working branch), and then merging that into master or wherever.

Is this just plain bad and why? More important: Is there a better/GIT way to do this? git rebase -i forces me to merge (and pick, and squash).

Was it helpful?

Solution

You can also use git merge with the --squash option.

OTHER TIPS

The easiest thing to do is a soft reset.

So checkout your topic branch:

git checkout -b topic master

work, work, work.

git commit
git commit
git commit
git commit

Happy with this, you can make a new single commit on top of master

git reset --soft master
git commit

Now merge to master (it will be a fast-forward) and tidy up the topic branch. (Note that you don't need to do this if you are prepared to remember or tag where master was and just work on master without branching, you could have just done git reset --soft old-master and git commit and you wouldn't need these last clean-up steps.)

git checkout master
git merge topic
git branch -d topic
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top