GithubHelp home page GithubHelp logo

Preserve merges when rebasing about git-up HOT 4 CLOSED

aanand avatar aanand commented on August 15, 2024
Preserve merges when rebasing

from git-up.

Comments (4)

aanand avatar aanand commented on August 15, 2024

Never heard of ORIG_HEAD before - now that I've done a bit of Googling, I'm not sure I follow. ORIG_HEAD is set by pull and merge before they do their thing, according to this Stack Overflow answer.

Are you saying git-up should behave similarly and set ORIG_HEAD before it does anything, and if so, what does that have to do with preserving merges?

from git-up.

stigkj avatar stigkj commented on August 15, 2024

Sorry for not explaining properly. But first: one uses ORIG_HEAD after git pull/merge to see which changes have been fetched from the server in the git pull/merge, for example like this:

git log ORIG_HEAD..

As it is, git-up already behaves properly with regards to ORIG_HEAD.

Now to the issue at hand. When doing a regular rebase, any unpushed merge commits will be "flattened out". The rebase command has a --preserve-merges option which preserve merge commits when rebasing. The problem with this option is that it sets ORIG_HEAD incorrectly (look at the "Downsides to git rebase -p" section).

So if you could add an option to git-up that preserves merges it would be great! An greater still if you could point ORIG_HEAD to the correct commit afterwards.

from git-up.

aanand avatar aanand commented on August 15, 2024

OK. So merges can currently be preserved by setting git-up.rebase.arguments to --preserve-merges. Perhaps we should always set ORIG_HEAD to whatever HEAD was at the time git-up was run. Does that sound sensible, and would you be happy to implement it?

from git-up.

aanand avatar aanand commented on August 15, 2024

Closing due to quiet - if someone wants to implement and PR this, be my guest.

from git-up.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.