Re: RFD: best way to automatically rewrite a git DAG as a linear history?
- From
Avery Pennarun <apenwarr@gmail.com>
- Date
- Feb 18, 2010, 18:38 UTC
- Message-ID
- <32541b131002181038x26093e3em250b46b5a6e9d97c@mail.gmail.com>
- In-Reply-To
- <20100218051129.GD10970@coredump.intra.peff.net>
On Thu, Feb 18, 2010 at 12:11 AM, Jeff King <peff@peff.net> wrote:
> One simple strategy would be to squash all side-branch development into > a single commit.
Something like this (replace MY_START_BRANCH with your starting branch, and do this in a clone of your repository so you don't destroy anything by accident):
parent=""
git rev-list --first-parent --reverse | while read commit; do
if [ -z "$parent" ]; then
git checkout -f $commit
git clean -fdx
else
git diff $parent $commit | git apply --index
git commit -C $commit
fi
parent=$commit
doneHave fun,
Avery