From: Junio C Hamano <gitster@pobox.com>
To: Brent Goodrick <bgoodr@gmail.com>
Cc: "Boyd Stephen Smith Jr." <bss@iguanasuicide.net>, git@vger.kernel.org
Subject: Re: Trouble testing out a patch on a branch new scratch git.git repository
Date: Sun, 08 Feb 2009 20:58:48 -0800 [thread overview]
Message-ID: <7vmycww6if.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <e38bce640902081859o47462a58s59c120209fabb0@mail.gmail.com> (Brent Goodrick's message of "Sun, 8 Feb 2009 18:59:34 -0800")
Brent Goodrick <bgoodr@gmail.com> writes:
> What I really want to do is simply replace the last two commits on the
> branch with one commit, so that when I make my patch it will be just
> the full set of changes and not a lot of noise. Is there a way to do
> that? (note: I did try the git merge --squash command but it just
> showed me the usage, as I was on my bg/no-progress branch). Note that
> I know that I would not be able to do this once some of my changes had
> merged upstream.
Suppose you have this topology. You forked and built 2 commits, while the
upstream advanced its tip (or not).
1--2 your commits (master)
/
---o---o---o upstream (origin)
1. Using "rebase -i"
... on your "master"
$ git rebase -i origin
... will give you an insn sheet for interactive rebase to edit.
... you will see something like:
pick xxxxxx title of commit 1
pick yyyyyy title of commit 2
... edit the second "pick" to "squash", save and exit the editor.
... You are telling it to "first cherry-pick my 1, and then squash my
... 2 on top of it.
... it will do as it is told, and will give you another editor, with
... messages from both commits in it. Edit to formulate a log message
... suitable for the combined commit, save and exit the editor.
You will end up with:
---o---o---o---X
where rightmost 'o' is still origin, X is your two commits squashed
into one.
2. Using "mrege -s squash"
... on your "master"
$ git merge --squash origin
... this will stop without creating a commit. Then you would
$ git commit
... and the editor will give you the log message from all the
... commits on the branch you just merged. Come up with a single
... log message to describe all, save and exit the editor.
You will end up with:
---o---o---o---X
where rightmost 'o' is still origin, X is your two commits squashed
into one.
next prev parent reply other threads:[~2009-02-09 5:00 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-08 20:56 Trouble testing out a patch on a branch new scratch git.git repository Brent Goodrick
2009-02-08 21:46 ` Junio C Hamano
2009-02-09 0:13 ` Brent Goodrick
2009-02-09 1:18 ` Boyd Stephen Smith Jr.
2009-02-09 2:59 ` Brent Goodrick
2009-02-09 4:58 ` Junio C Hamano [this message]
2009-02-09 21:59 ` Brent Goodrick
2009-02-09 22:14 ` Boyd Stephen Smith Jr.
2009-02-10 5:32 ` Sitaram Chamarty
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=7vmycww6if.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=bgoodr@gmail.com \
--cc=bss@iguanasuicide.net \
--cc=git@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).