git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: More Beginning Git Questions

From
SRSeth Robertson <in-gitvger@baka.org>
Date
Sep 24, 2011, 22:59 UTC
Message-ID
<201109242259.p8OMxqIM026259@no.baka.org>
In-Reply-To
<1m2c90ds9e46c.7agk88pbgjl8$.dlg@40tude.net>
In message <1m2c90ds9e46c.7agk88pbgjl8$.dlg@40tude.net>, tactical writes:
    Frans Klaver wrote:
    >> Mercurial allows this, and it's a very powerful feature.  After reading
    >> this thread, I could not believe Git didn't pulling with local changes,
    >> and so I tried it, and also asked on IRC -- and it seems that Git really
    >> doesn't.
    >
    > Git doesn't do it implicitly. Be explicit about it
    >
    > $ git stash
    > $ git pull
    > $ git stash pop
    >
    > seems to do exactly what you want.
    Does popping the stash allow for a three-way merge?  If not, this doesn't
    really solve the problem.

As I explained on IRC, you can use the following workflow to create a three way merge.

git stash git fetch git merge @{u} stash git mergetool git stash drop

You can then do whatever other work you want. You can repeat this workflow as often as you want. When you are done, then you can commit:

git commit -a -m "My important work"

This is of course easily scriptable so it becomes one command to you. And since you mentioned it, if the merge went poorly and you wanted to start over (only before you dropped the stash of course), you can:

git reset --hard HEAD git merge @{u} stash

And then continue with the rest of the workflow above.

Of course, I would recommend you consider some of the more gitish workflows. Commit early and often. `git pull --rebase` as often as you want, and then use `git rebase -i @{u}^` to squash all of your in-progress commits together. With appropriate in-progress commit message crafting, you can use the --autosquash functionality of git-rebase to make this process easier.

					-Seth Robertson
Previous: tacticalNext: tactical
Message 10 of 24 in “More Beginning Git Questions”
  1. Jon ForrestSep 23, 2011
  2. Matthieu MoySep 23, 2011
  3. Jakub NarebskiSep 23, 2011
  4. Jon ForrestSep 23, 2011
  5. Mihamina RakotomandimbySep 23, 2011
  6. Jakub NarebskiSep 23, 2011
  7. tacticalSep 24, 2011
  8. Frans KlaverSep 24, 2011
  9. tacticalSep 24, 2011
  10. Seth RobertsonSep 24, 2011
  11. tacticalSep 25, 2011
  12. Jakub NarebskiSep 25, 2011
  13. tacticalSep 25, 2011
  14. Jakub NarebskiSep 25, 2011
  15. tacticalSep 25, 2011
  16. Konstantin KhomoutovSep 26, 2011
  17. tacticalSep 26, 2011
  18. Andrew ArdillSep 26, 2011
  19. tacticalSep 26, 2011
  20. Jakub NarebskiSep 26, 2011
  21. Jakub NarebskiSep 24, 2011
  22. tacticalSep 24, 2011
  23. Jakub NarebskiSep 25, 2011
  24. Junio C HamanoSep 23, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.