Hi, >From my experience things can get messy if you are doing also some local merges before pull --rebase and on the remote someone else pushed some merges also, or pushed just some normal commits.
By messy I mean polluted history with duplicate commits that are hard to understand when you will look at the history timeline later. And if some conflicts arise from this operation I think will be even messier to figure it out. As a rule I have, never pull --rebase a merge commit. Basically, you have to choose between an workflow with merge and one with rebase and stick with it. When you are doing this with large teams it will be harder. For the sake of easier to follow history timeline, I prefer the merge approach. Always pull --rebase before pushing a commit. Always pull before a merge and push immediately after it with. If push fails, discard the merge commit it and repeat operations from pull. Regards, Alex On Feb 21, 2018 06:57, "Gergely Polonkai" <[email protected]> wrote: Hello, I usually do just this, although I sometimes work alone but on two (or more) machines. The only problem I often bump in is when I write code on machine A, then pull and rebase on machine B, and change the same code. Now when I pull again on A, the changes will (obviously) conflict, and Iʼm not always sure which one is good. Also, when you resolve a merge (not rebase, merge!) conflict, you see othersʼ changes on the right, and yours on the left. When you resolve a rebase conflict, the sides are swapped. That can cause some headache if you ask me. Best, Gergely On Wed, Feb 21, 2018, 01:10 Julius Musseau <[email protected]> wrote: > > Hi, Git Users, > > I'm currently writing a blog post about "git pull --rebase". The point > of the blog post is to examine scenarios where two people are working > together on a short-lived feature branch, where history rewrites are > allowed, and where both are using "git pull --rebase" to stay in sync > with each other. > > I was hoping to concoct a situation where "git pull --rebase" makes a mess > of things. > > So far I have been unable to do this. I tried version v1.7.2 of Git as > well as version v2.14.1, and as far as I can tell, "git pull --rebase" is > bulletproof. > > Does anyone here happen to know a situation where "git pull --rebase" makes > a mess? > > Here's a draft of the blog post: > > Title: "(Too much) fun with git pull --rebase" > > https://mergebase.com/doing-git-wrong/2018/02/17/fun-with-git-pull-rebase/ > > > Here are the "git pull --rebase" scenarios I've tested so far: > > 1. origin/feature rebased against origin/master > > 2. origin/feature squash-merged against origin/master > > 3. origin/feature squashed in-place` > > 4. origin/feature dropped a commit > > 5. origin/feature insanity (adjusted merge-base, reversed commits, > squashed some commits) > > 6. undo of 5 > > > So far "git pull --rebase" does the exact right thing in every case! > > If anyone knows a scenario where "git pull --rebase" fails to do the right > thing, I would be very grateful to hear of it. > > > > Thanks! > > yours sincerely, > > Julius Musseau > > > p.s. Note: this is a cross-post of an email I sent to git@ > vger.kernel.org earlier today (git developers mailing list). Here's the > replies to that thread: https://marc.info/?t=151916415100003&r=1&w=2 > > > -- > You received this message because you are subscribed to the Google Groups > "Git for human beings" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
