Re: Pulling one commit at a time.
- From
- Sanjiv 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