From: Jonas Juselius <jonas@iki.fi>
To: Jakub Narebski <jnareb@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Git in a Nutshell guide
Date: Thu, 22 Nov 2007 14:15:03 +0100 [thread overview]
Message-ID: <1195737303.19260.27.camel@localhost> (raw)
In-Reply-To: <fhsc7b$k4g$1@ger.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 1214 bytes --]
I'm planning to write a section in the "Nutshell guide" on rewriting
history and rebasing. I have a question related to rewriting history. As
usual, I'll assume that the part of the history I'm mucking with has not
been pushed or pulled by anyone.
Suppose I have been working on some topic branch for a while and been
overly trigger happy, i.e. I have produced a ridiculous number of
commits along the way. At some point when I'm done I want to publish my
changes, but doing so would create an insanely obese history full of
near nonsense commits. What I want to do is to slim down the commit log
into pieces that actually makes sense. What is the preferred (or best,
most convenient) way of doing this? The way I have done this previously
is essentially:
1. git branch -m mytopic tmp_mytopic # rename
2. git branch mytopci tmp_mytpoic~42 # go back in history
Loop:
3.1 git log; git diff; git annotate...
3.2 git diff tmp_mytopic~42..tmp_mytopic~33 | git-apply
3.3 git commit -m "sane commit message" -a
4. git branch -d tmp_mytopic
If I need to reorder commits I can first use git-rebase -i to get
everything streamlined. There must be a better way of doing this, right?
.jonas.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2007-11-22 13:22 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-19 13:05 Git in a Nutshell guide Jonas Juselius
2007-11-19 13:29 ` Jakub Narebski
2007-11-19 14:33 ` Jonas Juselius
2007-11-22 8:22 ` David Kågedal
2007-11-23 9:28 ` Jakub Narebski
2007-11-19 15:02 ` Brian Downing
2007-11-19 15:03 ` Brian Downing
2007-11-19 15:48 ` Nicolas Pitre
2007-11-19 16:05 ` Jakub Narebski
2007-11-19 16:14 ` Jonas Juselius
2007-11-19 16:49 ` Benoit Sigoure
2007-11-19 22:01 ` Daniel Barkalow
2007-11-20 11:34 ` Jonas Juselius
2007-11-20 23:57 ` Jakub Narebski
2007-11-21 19:45 ` Jan Hudec
2007-11-21 21:32 ` Jakub Narebski
2007-11-22 16:37 ` jhud7196
2007-11-22 13:15 ` Jonas Juselius [this message]
2007-11-22 14:19 ` Jonathan del Strother
2007-11-22 14:24 ` Johannes Schindelin
2007-11-22 16:57 ` jhud7196
2007-11-19 16:45 ` Lars Hjemli
2007-11-19 16:56 ` Jonas Juselius
2007-11-19 16:57 ` Benoit Sigoure
2007-11-19 17:04 ` Lars Hjemli
2007-11-19 18:10 ` Benoit Sigoure
2007-11-19 18:13 ` J. Bruce Fields
2007-11-19 18:13 ` Matthieu Moy
2007-11-19 18:35 ` [PATCH] Doc fix for git-reflog: mention @{...} syntax, and <ref> in synopsys Matthieu Moy
2007-11-19 20:13 ` Junio C Hamano
2007-11-19 20:28 ` Matthieu Moy
2007-11-19 20:31 ` Matthieu Moy
2007-11-19 21:15 ` Git in a Nutshell guide Benoit Sigoure
2007-11-19 21:33 ` Matthieu Moy
2007-11-19 21:51 ` Benoit Sigoure
2007-11-19 22:23 ` J. Bruce Fields
2007-11-19 22:29 ` Junio C Hamano
2007-11-19 22:59 ` Matthieu Moy
2007-11-19 23:07 ` Junio C Hamano
2007-11-19 17:05 ` Matthieu Moy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1195737303.19260.27.camel@localhost \
--to=jonas@iki.fi \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.