All of lore.kernel.org
 help / color / mirror / Atom feed
* merging multiple commit into one?
@ 2009-05-11 13:21 jean-luc malet
  2009-05-11 13:31 ` Andreas Ericsson
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: jean-luc malet @ 2009-05-11 13:21 UTC (permalink / raw)
  To: git

Hi,
I often commit "useless" code, for example before going into weekend
or for saving some state during a dev process
often thoses commit are simply useless and the commit message looks
like "COMPILE ERROR - temporary save .... "
at the end I have LOT of theses commits that are useless and I want to
save some space/time/tree complexity merge multiple sequential commits
(without branch) into one
is it possible?
according to my knowledge of git, removing the commit and rewriting
the last commit log so that it better reflect the modification will do
the job but I'm not sure git allow it...
thanks
JLM

-- 
KISS! (Keep It Simple, Stupid!)
(garde le simple, imbécile!)
"mais qu'est-ce que tu m'as pondu comme usine à gaz? fait des choses
simples et qui marchent, espèce d'imbécile!"
-----------------------------
"Si vous pensez que vous êtes trop petit pour changer quoique ce soit,
essayez donc de dormir avec un moustique dans votre chambre." Betty
Reese
http://www.grainesdechangement.com/citations.htm

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: merging multiple commit into one?
  2009-05-11 13:21 merging multiple commit into one? jean-luc malet
@ 2009-05-11 13:31 ` Andreas Ericsson
  2009-05-11 13:50 ` Jakub Narebski
  2009-05-11 21:29 ` Heiko Voigt
  2 siblings, 0 replies; 10+ messages in thread
From: Andreas Ericsson @ 2009-05-11 13:31 UTC (permalink / raw)
  To: jean-luc malet; +Cc: git

jean-luc malet wrote:
> Hi,
> I often commit "useless" code, for example before going into weekend
> or for saving some state during a dev process
> often thoses commit are simply useless and the commit message looks
> like "COMPILE ERROR - temporary save .... "
> at the end I have LOT of theses commits that are useless and I want to
> save some space/time/tree complexity merge multiple sequential commits
> (without branch) into one
> is it possible?
> according to my knowledge of git, removing the commit and rewriting
> the last commit log so that it better reflect the modification will do
> the job but I'm not sure git allow it...
> thanks


git commit --amend; # to extend last commit only
git merge --squash; # I think. Not sure though, so read the docs
git rebase -i; # replace "pick" with "squash" to combine commits.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Register now for Nordic Meet on Nagios, June 3-4 in Stockholm
 http://nordicmeetonnagios.op5.org/

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: merging multiple commit into one?
  2009-05-11 13:21 merging multiple commit into one? jean-luc malet
  2009-05-11 13:31 ` Andreas Ericsson
@ 2009-05-11 13:50 ` Jakub Narebski
  2009-05-11 22:11   ` MALET Jean-Luc
  2009-05-11 21:29 ` Heiko Voigt
  2 siblings, 1 reply; 10+ messages in thread
From: Jakub Narebski @ 2009-05-11 13:50 UTC (permalink / raw)
  To: jean-luc malet; +Cc: git

jean-luc malet <jeanluc.malet@gmail.com> writes:

> Hi,
> I often commit "useless" code, for example before going into weekend
> or for saving some state during a dev process
> often thoses commit are simply useless and the commit message looks
> like "COMPILE ERROR - temporary save .... "
> at the end I have LOT of theses commits that are useless and I want to
> save some space/time/tree complexity merge multiple sequential commits
> (without branch) into one
> is it possible?

It is possible; one solution would be to use "git rebase --interactive"
and its 'squash' command...

> according to my knowledge of git, removing the commit and rewriting
> the last commit log so that it better reflect the modification will do
> the job but I'm not sure git allow it...

...but you can simply pick up where you saved snapshot by using "git
commit --amend" (or doing soft or mixed reset to previous commit
before comitting changes).

-- 
Jakub Narebski
Poland
ShadeHawk on #git

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: merging multiple commit into one?
  2009-05-11 13:21 merging multiple commit into one? jean-luc malet
  2009-05-11 13:31 ` Andreas Ericsson
  2009-05-11 13:50 ` Jakub Narebski
@ 2009-05-11 21:29 ` Heiko Voigt
  2009-05-11 22:11   ` MALET Jean-Luc
  2 siblings, 1 reply; 10+ messages in thread
From: Heiko Voigt @ 2009-05-11 21:29 UTC (permalink / raw)
  To: jean-luc malet; +Cc: git

On Mon, May 11, 2009 at 03:21:27PM +0200, jean-luc malet wrote:
> according to my knowledge of git, removing the commit and rewriting
> the last commit log so that it better reflect the modification will do
> the job but I'm not sure git allow it...

If you just want to get rid of the last commit

  git reset HEAD^

will remove the commit but keep your working directory untouched. In
such a workflow I find it easier to start the new commit from zero than
from the stashed stuff.

By the way. You might also take a look at the command

  git stash

which is especially crafted for saving work in progress.

cheers Heiko

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: merging multiple commit into one?
  2009-05-11 21:29 ` Heiko Voigt
@ 2009-05-11 22:11   ` MALET Jean-Luc
  2009-05-12 15:53     ` Heiko Voigt
  0 siblings, 1 reply; 10+ messages in thread
From: MALET Jean-Luc @ 2009-05-11 22:11 UTC (permalink / raw)
  To: Heiko Voigt; +Cc: git

Heiko Voigt wrote:
> On Mon, May 11, 2009 at 03:21:27PM +0200, jean-luc malet wrote:
>   
>> according to my knowledge of git, removing the commit and rewriting
>> the last commit log so that it better reflect the modification will do
>> the job but I'm not sure git allow it...
>>     
>
> If you just want to get rid of the last commit
>
>   git reset HEAD^
>
> will remove the commit but keep your working directory untouched. In
> such a workflow I find it easier to start the new commit from zero than
> from the stashed stuff.
>
> By the way. You might also take a look at the command
>
>   git stash
>
> which is especially crafted for saving work in progress.
>
> cheers Heiko
>   
hi,
thanks, I know about git stash, the problem is that this command don't 
fits well when working on multiple copies of the sources on different 
locations, git stash is usefull for saving states before branching 
elsewhere and comming back to the branch and keep going on your work.... 
I use it in a different way since I  commit to continue work on a 
different pc, (so I commit, I push to some git archive, I pull from the 
other pc, and continue the work on the other pc, then commit push again 
and pull again on first pc....). As far as I know you can't push stashed 
information, I'm wrong?
thanks
JLM

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: merging multiple commit into one?
  2009-05-11 13:50 ` Jakub Narebski
@ 2009-05-11 22:11   ` MALET Jean-Luc
  2009-05-11 22:36     ` Jakub Narebski
  0 siblings, 1 reply; 10+ messages in thread
From: MALET Jean-Luc @ 2009-05-11 22:11 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git

Jakub Narebski wrote:
> jean-luc malet <jeanluc.malet@gmail.com> writes:
>
>   
>> Hi,
>> I often commit "useless" code, for example before going into weekend
>> or for saving some state during a dev process
>> often thoses commit are simply useless and the commit message looks
>> like "COMPILE ERROR - temporary save .... "
>> at the end I have LOT of theses commits that are useless and I want to
>> save some space/time/tree complexity merge multiple sequential commits
>> (without branch) into one
>> is it possible?
>>     
>
> It is possible; one solution would be to use "git rebase --interactive"
> and its 'squash' command...
>
>   
>> according to my knowledge of git, removing the commit and rewriting
>> the last commit log so that it better reflect the modification will do
>> the job but I'm not sure git allow it...
>>     
>
> ...but you can simply pick up where you saved snapshot by using "git
> commit --amend" (or doing soft or mixed reset to previous commit
> before comitting changes).
>
>   
hi! thanks for your answers!
I didn't knew about --amend for commit, will certainly use it...
however it seems that I get missunderstood...
A-o-o-o-o-o-B-o-o-o-o-C
                      \-o-o-D-/
let say I have the above tree, o are temporary unbuildable commits, A B 
C D are usable versions
I want as posteriory remove the o to get the following tree
A-B---C
     \-D/
in fact I just wanna clean a little my tree since I forgot to amend ;)
is this possible?
ok I know, the best is to prevent! not to cure! so I'll amend ;)
thanks
JLM

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: merging multiple commit into one?
  2009-05-11 22:11   ` MALET Jean-Luc
@ 2009-05-11 22:36     ` Jakub Narebski
  2009-05-12 15:59       ` jean-luc malet
  0 siblings, 1 reply; 10+ messages in thread
From: Jakub Narebski @ 2009-05-11 22:36 UTC (permalink / raw)
  To: MALET Jean-Luc; +Cc: git

On Tue, 12 May 2009, MALET Jean-Luc wrote:
> Jakub Narebski wrote:
>> jean-luc malet <jeanluc.malet@gmail.com> writes:

>>> I often commit "useless" code, for example before going into weekend
>>> or for saving some state during a dev process
>>> often thoses commit are simply useless and the commit message looks
>>> like "COMPILE ERROR - temporary save .... "
>>> at the end I have LOT of theses commits that are useless and I want to
>>> save some space/time/tree complexity merge multiple sequential commits
>>> (without branch) into one
>>> is it possible?
     
>>
>> It is possible; one solution would be to use "git rebase --interactive"
>> and its 'squash' command...

   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   
>>> according to my knowledge of git, removing the commit and rewriting
>>> the last commit log so that it better reflect the modification will do
>>> the job but I'm not sure git allow it...
>>>     
>>
>> ...but you can simply pick up where you saved snapshot by using "git
>> commit --amend" (or doing soft or mixed reset to previous commit
>> before comitting changes).
>>
>>   
> hi! thanks for your answers!
> I didn't knew about --amend for commit, will certainly use it...
> however it seems that I get missunderstood...
> A-o-o-o-o-o-B-o-o-o-o-C
>                       \-o-o-D-/
> let say I have the above tree, o are temporary unbuildable commits, A B 
> C D are usable versions
> I want as posteriory remove the o to get the following tree
> A-B---C
>      \-D/
> in fact I just wanna clean a little my tree since I forgot to amend ;)
> is this possible?
> ok I know, the best is to prevent! not to cure! so I'll amend ;)

As I wrote above, you can use interactive rebase to clean up history.

-- 
Jakub Narebski
Poland

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: merging multiple commit into one?
  2009-05-11 22:11   ` MALET Jean-Luc
@ 2009-05-12 15:53     ` Heiko Voigt
  2009-05-12 20:37       ` Markus Heidelberg
  0 siblings, 1 reply; 10+ messages in thread
From: Heiko Voigt @ 2009-05-12 15:53 UTC (permalink / raw)
  To: MALET Jean-Luc; +Cc: git

On Tue, May 12, 2009 at 12:11:24AM +0200, MALET Jean-Luc wrote:
> hi,
> thanks, I know about git stash, the problem is that this command don't  
> fits well when working on multiple copies of the sources on different  
> locations, git stash is usefull for saving states before branching  
> elsewhere and comming back to the branch and keep going on your work....  
> I use it in a different way since I  commit to continue work on a  
> different pc, (so I commit, I push to some git archive, I pull from the  
> other pc, and continue the work on the other pc, then commit push again  
> and pull again on first pc....). As far as I know you can't push stashed  
> information, I'm wrong?

AFAIR, git stash cannot be pushed. Well you could by creating a branch
and pushing that but thats not native stash functionality.

cheers Heiko

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: merging multiple commit into one?
  2009-05-11 22:36     ` Jakub Narebski
@ 2009-05-12 15:59       ` jean-luc malet
  0 siblings, 0 replies; 10+ messages in thread
From: jean-luc malet @ 2009-05-12 15:59 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git

hello
seems that I don't use the right way....
I chechouted my lastest branch, then do a git rebase --interactive
9ce8f6940a50d87e4f6503ff237bd1b1ff560660
where 9ce8f6940a50d87e4f6503ff237bd1b1ff560660 is the commit I want to start...
I modified the file and marked the commit I wanted to squash... and
well it keep continue to find me conflicts.... even where there shall
not be

so I said I have to start from the root and rebase my branch on it....
created a branch on root, checkout it, git rebase --interactive
b52ea8c36188b05de246d5717781ab90710078d5
huh?! nothing to do... ok fine

so I tried to put branch just after the nodes I wanted to squash....
and git rebase --interactive thesha1rigthbeforewhatiwantedtosquash....
ah! here it works! huh?! well quite not! it replayed the range of
commit fine, removed the squashed one... fine... but do created
another independant branch... what I don't want I just want to remove
a set inside the current tree
so I'm not doing it right?

thanks
JLM

On Tue, May 12, 2009 at 12:36 AM, Jakub Narebski <jnareb@gmail.com> wrote:
> On Tue, 12 May 2009, MALET Jean-Luc wrote:
>> Jakub Narebski wrote:
>>> jean-luc malet <jeanluc.malet@gmail.com> writes:
>
>>>> I often commit "useless" code, for example before going into weekend
>>>> or for saving some state during a dev process
>>>> often thoses commit are simply useless and the commit message looks
>>>> like "COMPILE ERROR - temporary save .... "
>>>> at the end I have LOT of theses commits that are useless and I want to
>>>> save some space/time/tree complexity merge multiple sequential commits
>>>> (without branch) into one
>>>> is it possible?
>
>>>
>>> It is possible; one solution would be to use "git rebase --interactive"
>>> and its 'squash' command...
>
>   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
>>>> according to my knowledge of git, removing the commit and rewriting
>>>> the last commit log so that it better reflect the modification will do
>>>> the job but I'm not sure git allow it...
>>>>
>>>
>>> ...but you can simply pick up where you saved snapshot by using "git
>>> commit --amend" (or doing soft or mixed reset to previous commit
>>> before comitting changes).
>>>
>>>
>> hi! thanks for your answers!
>> I didn't knew about --amend for commit, will certainly use it...
>> however it seems that I get missunderstood...
>> A-o-o-o-o-o-B-o-o-o-o-C
>>                       \-o-o-D-/
>> let say I have the above tree, o are temporary unbuildable commits, A B
>> C D are usable versions
>> I want as posteriory remove the o to get the following tree
>> A-B---C
>>      \-D/
>> in fact I just wanna clean a little my tree since I forgot to amend ;)
>> is this possible?
>> ok I know, the best is to prevent! not to cure! so I'll amend ;)
>
> As I wrote above, you can use interactive rebase to clean up history.
>
> --
> Jakub Narebski
> Poland
>



-- 
KISS! (Keep It Simple, Stupid!)
(garde le simple, imbécile!)
"mais qu'est-ce que tu m'as pondu comme usine à gaz? fait des choses
simples et qui marchent, espèce d'imbécile!"
-----------------------------
"Si vous pensez que vous êtes trop petit pour changer quoique ce soit,
essayez donc de dormir avec un moustique dans votre chambre." Betty
Reese
http://www.grainesdechangement.com/citations.htm

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: merging multiple commit into one?
  2009-05-12 15:53     ` Heiko Voigt
@ 2009-05-12 20:37       ` Markus Heidelberg
  0 siblings, 0 replies; 10+ messages in thread
From: Markus Heidelberg @ 2009-05-12 20:37 UTC (permalink / raw)
  To: Heiko Voigt; +Cc: MALET Jean-Luc, git

Heiko Voigt, 12.05.2009:
> On Tue, May 12, 2009 at 12:11:24AM +0200, MALET Jean-Luc wrote:
> > As far as I know you can't push stashed  
> > information, I'm wrong?
> 
> AFAIR, git stash cannot be pushed. Well you could by creating a branch
> and pushing that but thats not native stash functionality.

I tried "git clone --mirror" with a repo containing a stash, the clone
had a stash entry in .git/packed-refs. "git push --mirror" didn't work,
though. Not sure what should be intended.

Markus

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2009-05-12 20:37 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-11 13:21 merging multiple commit into one? jean-luc malet
2009-05-11 13:31 ` Andreas Ericsson
2009-05-11 13:50 ` Jakub Narebski
2009-05-11 22:11   ` MALET Jean-Luc
2009-05-11 22:36     ` Jakub Narebski
2009-05-12 15:59       ` jean-luc malet
2009-05-11 21:29 ` Heiko Voigt
2009-05-11 22:11   ` MALET Jean-Luc
2009-05-12 15:53     ` Heiko Voigt
2009-05-12 20:37       ` Markus Heidelberg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.