threads / discuss / 10178

How to pick a commit from another git tree?

Subject: How to pick a commit from another git tree?

## tl;dr

3 messages between Oct 7, 2007 and Oct 7, 2007.

replies: 2people: 3as markdown or json

Joakim Tjernlund· Oct 7, 2007, 17:31 UTC · lore
Hi 

This is probably a somewhat stupid question but I havn't had a need until now so here goes: There is a commit in David Millers tree: http://git.kernel.org/?p=linux/kernel/git/davem/bak-net-2.6.24.git;a=commit;h=bbb4c0c35a4c2aed5e025b668c8dfc99c5b74cff that hasn't made it into 2.6.23, but will go into 2.6.24. I need this fix on top of 2.6.23(once it is released). Now I wonder how to best add this fix to my tree. Once this fix hits linus tree and I pull linus tree, I don't wan't a conflict as I already have this fix in my tree.

Should I just pull Davids tree? Or should I cherry-pick this one commit? Or something else?

 Jocke
Pierre Habouzit· Oct 7, 2007, 17:50 UTC · re: Joakim Tjernlund · lore

Re: How to pick a commit from another git tree?

On Sun, Oct 07, 2007 at 05:31:00PM +0000, Joakim Tjernlund wrote:
Show 12 quoted lines
> Hi 
> 
> This is probably a somewhat stupid question but I havn't had a need until now so here goes:
> There is a commit in David Millers tree:
> http://git.kernel.org/?p=linux/kernel/git/davem/bak-net-2.6.24.git;a=commit;h=bbb4c0c35a4c2aed5e025b668c8dfc99c5b74cff
> that hasn't made it into 2.6.23, but will go into 2.6.24. 
> I need this fix on top of 2.6.23(once it is released).
> Now I wonder how to best add this fix to my tree. Once this fix hits linus tree and I pull
> linus tree, I don't wan't a conflict as I already have this fix in my tree.
> 
> Should I just pull Davids tree? Or should I cherry-pick this one commit?
> Or something else?
  The easiest way is to fetch his tree (git remote add ...; git fetch)
and then yes, cherry-pick the commit(s) you need.
  If you need more than one commit, you can use:
  git rebase --onto <your tip> fromCommit toCommit
  and it will move ]fromCommit..toCommit] onto <your tip>
  It's likely that the fetch will be quite cheap as I suppose that David
Millers tree as very few objects different from linus tree (compared to
the linux2.6 git repository size I mean).
-- 
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org
Alex Riesen· Oct 7, 2007, 20:10 UTC · re: Joakim Tjernlund · lore

Re: How to pick a commit from another git tree?

Joakim Tjernlund, Sun, Oct 07, 2007 19:31:00 +0200:
Show 5 quoted lines
> This is probably a somewhat stupid question but I havn't had a need until now so here goes:
> There is a commit in David Millers tree:
> http://git.kernel.org/?p=linux/kernel/git/davem/bak-net-2.6.24.git;a=commit;h=bbb4c0c35a4c2aed5e025b668c8dfc99c5b74cff
> that hasn't made it into 2.6.23, but will go into 2.6.24. 
> I need this fix on top of 2.6.23(once it is released).

$ git fetch git://git.kernel.org/pub/scm/linux/kernel/git/davem/bak-net-2.6.24.git $ git cherry-pick bbb4c0c35a4c2aed5e025b668c8dfc99c5b74cff

> Now I wonder how to best add this fix to my tree. Once this fix hits linus tree and I pull
> linus tree, I don't wan't a conflict as I already have this fix in my tree.

Depending on the state the Davids tree ends up when it is merge into Linus' tree you may or may not get a conflict. It is not in your hands either way.

> Should I just pull Davids tree? Or should I cherry-pick this one commit?
> Or something else?

I would just cherry-pick it, and revert it (or hard-reset my tree to Linus' tree) if it conflicts later.

← back to recent threads