-
Notifications
You must be signed in to change notification settings - Fork 9.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Option to rebase instead of automatically merge when pulling from upstream #3422
Comments
I would also like this feature as old GitHub desktop works that way and it is way nicer |
We are using GitHub Desktop for artists/designers at work but the history gets dirty very quickly due to lack of this feature :( Will have to switch to more complex git client unfortunately. |
👍 Please consider this in your roadmap |
+1 |
Please use the 👍 button on the original issue to indicate support. |
Comment from #4711 by @timor-raiman
The part that I want to call attention to is specifying whether to |
For reference, we added Improving conflict resolution in the app is on our roadmap and I think is a pre-requisite for this work. |
Like @artyom-kolesnikov , I'm working with some non-developers... Github Desktop's |
From #5391:
|
|
Hmm, I don't get why this is not a priority 1 at this point. |
Hi @julien-c, thanks for the feedback. This is something the team is actively working on, and I realized we didn't make that as clear as we could have - that's my fault. Here's our near-term roadmap which has this on there: https://github.com/desktop/desktop/blob/development/docs/process/roadmap.md I'm also going to create a new issue that lays out the scope of our current work, thanks for the nudge. |
This behavior also causes problems for people that don't use Github Desktop. Many PRs I review keep ending up with commit graph spaghetti, because people still learning the ropes with Git reasonably decide to use a UI tool, and end up implicitly introducing merge commits from the main branch back to their PR branch, without even fully understanding the details of what a merge commit is. The commit graph view in the Github Desktop UI is not very comprehensive, so it isn't easy to explain what the problem is without resorting to the CLI or a different Git UI (in which case they may as well just learn to use that instead of Github Desktop). Pestering authors to fix minor details like the commit structure in every other PR results in a very poor impression of Git, when really this is a problem introduced by the "pit of failure" defaults currently enabled in this application. |
Hi everyone, Thanks for expressing interest in rebasing in GitHub Desktop, and for taking the time to explain your use cases with us. For that, we truly thank you! This week, we’re exploring the future of rebasing on GitHub Desktop and would love to understand your workflow and get your reaction to some designs we have made. If you would be open to a 30 minute User Interview with a few of our GitHub Desktop Core team, fill out this form by the end of the day today. We’re still in our “Research Phase” so any and all thoughts you have are absolutely welcome! If you have any follow up questions for us before filling out the survey, we’d be happy to answer them. Thank you! |
@ampinsk Your user interview team could also consider interviewing those people who specifically do not or cannot currently use the Github Desktop application precisely because it lacks the pull-with-rebase feature. I would be very interested in using the Github Desktop app, but my team and I can't even consider it because of the lack of this feature, so we can't usefully fill in that form or contribute to your research because we're not 'current users'? |
I'm tentatively scheduling this as in-scope for Discussions about also having a UI for this will need some input from @desktop/product and @desktop/design to determine when to prioritize this. |
Btw, a repo-only level config for this (without UI) means I still can't recommend the tool for my team. We usually pull with rebase, but if we have outstanding uncommitted changes, a one-off non-rebase pull (which wouldn't cause a merge) is better. All other tools I've used present a sticky checkbox on a pull dialog. |
@RoystonS thanks for that extra context about "per-operation" being important rather than config. I guess this is then more of a UX discussion on top of what's in scope with 1.7. I'll drop this from the milestone in the meantime. |
I'm believing that merge commits are polluting the git history so I would like to always use the rebase strategy |
@billygriffin In my case I'm speaking more as a victim of the actual users.
In those circumstances I think rebasing is better, since:
|
@DHager Thanks for the perspective. Further discussion is whether we should consider enabling a UI pattern to sometimes use pull merge and sometimes use pull rebase. What I'm hearing from you is that assuming it's set up to do so, you'd always like you and people you work with to use pull --rebase. Is that right? I'm trying to understand how many others share @RoystonS's view that it's helpful to alternate usage patterns between the two depending on the circumstances. |
@billygriffin Yes, I think that asking the user to reformulate their changes (i.e. rebase) is the "safest" default behavior, based on the kinds of users I observed using the tool and their reasons for using it. |
For some added perspective, for me it would be better to have the option to use merge and rebase as specified by me, rather than needing to pick to always use one or the other. |
Hi @LianH, thanks for sharing! Would you mind describing under what circumstances you'd choose to use each one? |
Just started using the GitHub app. Having to keep source tree app due to the lack of rebasing. :( |
Thanks for the feedback @LeeMatthewHiggins, I really appreciate it - we're working on support for pull --rebase currently, and we're hoping to ship explicitly rebasing one branch onto another in Desktop not too long after that. |
@billygriffin it's not clear to me where this task sits with respect to the items already in scope for |
I'm going to drop this from I think that will go a long way to helping with the pain outlined in this thread! |
After discussing this at length, I'm going to close this issue with #6893 that's shipping in the next beta and very soon to production in We're also building on this work to enable explicit rebasing locally with one branch onto another, so that's coming in the not too distant future as well. To reiterate, we're closing this because we don't want to communicate something we're not necessarily committing to, not because we're unwilling to revisit the question of whether to enable more differentiation in the app and not just rely on the user's git config. Thanks to everyone who weighed in on this, it's really appreciated. |
@billygriffin I haven't fully followed the progress of the thread, but does this mean that if I set up people's gitconfigs to have |
@masaeedu Yep, local commits will be rebased on top of remote commits if that is set in the user's git config. Our new implementation also introduces a conflict resolution process that hopefully makes that part a bit less painful than otherwise too, but it's still a thing folks can run into (in the same way they can if it's a normal |
@RoystonS I want to call out a helpful Git config setting that helps you better manage uncommitted changes in Desktop, without the need to change the behaviour each time you pull:
If you have this set to false and have tracked changes, you'll likely be blocked from doing a If there's extra context here about why you think a "non-rebase pull" is better here than leaning on |
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as spam.
This thread has been helpful. @shiftkey do you know by chance if your message there matches the old Desktop app for OSX? The flow on that was literally perfect, and I'm trying to recreate that on version 2. I just don't know the nuances of stash and whatnot, based on how the old app used to work. |
@9mm the stashing flow of the classic app is very different to how it works in the current app. I wrote a while ago about the reasons why it didn't come over as-is #1633 (comment). You should look over #6107 which outlined the approach for stashing in the current app. |
@shiftkey thanks! |
Description
Github Desktop automatically merges upstream commits. This is fine for some projects but quickly dirties the git history with unnecessary merges. This has bitten me and colleagues multiple times in this version and the previous version of Github Desktop with the magic "Sync" button.
Proposal
Add an option in the menu to pull rebase instead of merge, or change button text to "Merge" so that I know it's time to go to the terminal so I can pull rebase.
Version
GitHub Desktop version: 1.0.3
OS version: OSX 10.12.6
Note: I did look for similar issues on this topic but couldn't find them.
The text was updated successfully, but these errors were encountered: