On 20/07/2019 22:14, Ryan Joseph wrote:
On Jul 20, 2019, at 4:02 PM, Martin Frb <[email protected]> wrote:
"origin/master" is the not modified trunk?
No, what I did was fork https://github.com/graemeg/freepascal and then a create
new feature branches based on master. “origin” I believe refers to my forked
repo on GitHub and “upstream” is the original, i.e.
https://github.com/graemeg/freepascal.
So what I do when I want to keep up to date is "git pull upstream master” which
updates my local “master” branch with changes from graemeg/freepascal. The problem I
face now is how to get changes from master into my feature branch. Merging worked
fine but then I face the problem of not being able to squash all commits before
submitting patches. I’ve just learned now that rebase works BUT I need to squash
commits first. Catch 22.
The real root of the problem is that I need to squash my feature branches
commit history or my patches will get rejected. If that weren’t the case I
would just do a merge and release the patch with full commit history.
Ok there are 2 questions
1) if you pull, and want to avoid merges.
git pull --rebase
will rebase instead of merge.
BUT: if you push your resulting branch to your own repro then you may
need force-with-lease. That is if you had already pushed before, because
then you need the same history rewrite on your server, as you did
locally with the rebase.
forced push should only ever be to your own repro/server. And ideally
always force-with-lease
2)
You current branch.
You can rewrite your current branch
Again find the first commit you made, that is of interest. Get the hash
of the commit ONE BEFORE "0abcedef"
Whilst checked out to your branch:
git rebase -i 0abcedef
Should open an editor with all the commits in it.
Re-order them, so ALL your commits are on top.
The editor text has some doc in it. You can squash your commits now. But
you can do that later, and keep the unsquashed ones too.
Save and exit the editor.
git will rewrite the current branch, to have commits in the order that
you specified.
------------------
If you want to play: Before you start, create a new branch at the top
(HEAD) of your current branch.
That will keep the old commits in the old order under that new branches
name. (reflog does the same, but this may be easier)
_______________________________________________
fpc-devel maillist - [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel