How can I merge a branch into master but continue working on the branch?
Here is the process you are looking for:
git checkout master
git merge Farmcrops
git push origin master
git branch -d Farmcrops
git checkout master
git checkout -b Farmcrops
- continue your commits on the branch
Farmcrops
...
Branches are just pointers, it's very easy to create/delete a branch and if your branch Farmcrops
isn't pushed on remote repository, there is absolutely no dependency with it. You can delete it after the merge and recreate it from the master.
Hope this will help you.
If I understand correctly, you're starting from
-- o -- o -- o [master]
\
o -- o [Farmcrops]
You shouldn't merge Farmcrops
directly into master
, because you run the risk of breaking the code in master
, which, by convention, is supposed to be more stable. Instead, check out Farmcrops
and merge master
into it.
git checkout Farmcrops
git merge master
Then you'll get
-- o -- o -- o [master]
\ \
o -- o -- o [HEAD -> Farmcrops]
Run some tests; make sure everything works as expected. Then check out master
and merge Farmcrops
into it:
git checkout master
git merge Farmcrops
Your repo will then look like this:
-- o -- o -- o
\ \
o -- o -- o [HEAD -> master,Farmcrops]
(Note that this merge is a fast forward: it doesn't create a merge commit because Farmcrops
is a direct descendant of master
.)
Now check out Farmcrops
again and continue your experiment, make more commits on it, etc...
-- o -- o -- o
\ \
o -- o -- o [master]
\
o -- o -- o [HEAD -> Farmcrops]
You can always fall back on master
(which now contains "the first round of changes", as you put it) if your new experiment on Farmcrops
doesn't pan out so well.