Basic question but this happens to me all the time:
working-branch
master
git merge working-branch
git push
cap deploy
(to staging) then I come back and think of something else and start making some changes...while still on master.
What's an easy way to either:
working-branch
and clear master
so I can continue editing on working-branch
new-working-branch
and then discard working-branch
?Took a risk and tried recommendation in the latter part of "Branches" section of this page but that just wiped out ALL my edits!?! perhaps because after git branch dubious-experiment
and git checkout master
the git status
on both branches was identical (not 'clean' on master). So git reset --hard <SHA1sum>
wiped out all changes on both!?!
git branch dubious-experiment
M---N-----O----P---Q ("master" and "dubious-experiment")
git checkout master
# Be careful with this next command: make sure "git status" is
# clean, you're definitely on "master" and the
# "dubious-experiment" branch has the commits you were working
# on first...
git reset --hard <SHA1sum of commit N>
From your description, I assume that you did not commit any changes yet – is that correct?
If yes, here’s your answers:
You would need to set that in your editor, but that will probably be difficult. Displaying your current branch in your prompt and your editor helps a lot.
new-working-branch
and then discard working-branch
git checkout -b new-working-branch
git add …
git commit -m "mycommit"
As you didn’t commit anything to master yet, you don’t need to change anything on master. You can now discard your working-branch if you feel like it.
working-branch
git checkout -b temp-branch
git add …
git commit -m "mycommit"
git rebase --onto working-branch master
git checkout working-branch
git reset --hard temp-branch
git branch -d temp-branch
If your changes don’t conflict with any changes that are on master, but not in working-branch, this can be done a lot simpler:
git stash
git checkout working-branch
git stash pop