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

Re: Pulling one commit at a time.

From
SGSanjiv Gupta <sanjiv.gupta@microchip.com>
Date
Aug 24, 2009, 06:22 UTC
Message-ID
<4A92318F.6050105@microchip.com>
In-Reply-To
<20090824060710.6117@nanako3.lavabit.com>
Nanako Shiraishi wrote:
Show 53 quoted lines
> Quoting Sanjiv Gupta <sanjiv.gupta@microchip.com>
>
>   
>> I just wanted to know how can I pull one commit at a time from public
>> repository.
>> e.g.
>> when I first cloned from the public repo, it was at X. now it has
>> reached Y. I just want to pull x+1.
>>     
>
> When your histories look like this:
>
>       A                 your 'master'
>      /
>  ---X---U---V---W---Y   public 'master' (your 'origin')
>
> instead of creating a single merge like this with "git pull":
>
>       A---------------M your 'master' (fully merges 'origin')
>      /               / 
>  ---X---U---V---W---Y   public 'master'
>
> you want to create a history like this?
>
>       A---J             your 'master' (lacks V, W and Y)
>      /   /
>  ---X---U---V---W---Y   public 'master'
>
> For that, you can fetch first.
>
>  git fetch origin
>
> Then look at the history in gitk
>
>  gitk master origin
>
> And find the commit you are interested in merging (U in the above picture). And merge it.
>
>  git merge origin~3
>
> Replace "origin~3" in the example above with whatever commit you want to merge the entire history leading to it.
>
> You can repeat this final step as many times you want. For example, if you want create a history like this:
>
>       A---J---K---L---M your 'master'
>      /   /   /   /   / 
>  ---X---U---V---W---Y   public 'master'
>
> you can do so by repeating the last step for V, W and Y in turn.
>
> In general the public history isn't necessarily a single straight line like this picture and it doesn't make sense to merge one at a time for all the commits on the public branch, but if that is what you really want to do, you can do so.
>
>   

Excellent description. Thanks for that. I want to merge commits one by one because I want to run a regression suite on each commit and therefore know if any one is causing failures.

- Sanjiv
Previous: Junio C HamanoNext: Kai Blin
Message 7 of 20 in “Pulling one commit at a time.”
  1. Sanjiv GuptaAug 23, 2009
  2. Alex RiesenAug 23, 2009
  3. Adam BrewsterAug 23, 2009
  4. Sam VilainAug 23, 2009
  5. Nanako ShiraishiAug 23, 2009
  6. Junio C HamanoAug 23, 2009
  7. Sanjiv GuptaAug 24, 2009
  8. Kai BlinAug 24, 2009
  9. Sanjiv GuptaAug 24, 2009
  10. Sean EstabrooksAug 24, 2009
  11. Erik Faye-LundAug 24, 2009
  12. Erik Faye-LundAug 24, 2009
  13. Matthieu MoyAug 24, 2009
  14. skillzero@gmail.comAug 24, 2009
  15. Matthieu MoyAug 24, 2009
  16. David AguilarAug 24, 2009
  17. Sanjiv GuptaAug 24, 2009
  18. Matthieu MoyAug 24, 2009
  19. Avery PennarunAug 24, 2009
  20. Sanjiv GuptaAug 24, 2009

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.