Skip to content

Instantly share code, notes, and snippets.

@greenmoss
Created November 8, 2011 23:16
Show Gist options
  • Save greenmoss/1349647 to your computer and use it in GitHub Desktop.
Save greenmoss/1349647 to your computer and use it in GitHub Desktop.
optimistic git pruning
kyoder@green 08 Nov 18:03:51 /tmp
$ mkdir git_repo_source
kyoder@green 08 Nov 18:03:56 /tmp
$ cd git_repo_source/
kyoder@green 08 Nov 18:03:59 /tmp/git_repo_source
$ git init .
Initialized empty Git repository in /private/tmp/git_repo_source/.git/
kyoder@green 08 Nov 18:04:01 /tmp/git_repo_source
$ echo 'rev1' > rev1
kyoder@green 08 Nov 18:04:07 /tmp/git_repo_source
$ git add -A
kyoder@green 08 Nov 18:04:09 /tmp/git_repo_source
$ git commit -m 'rev1'
[master (root-commit) 5eca1f5] rev1
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 rev1
kyoder@green 08 Nov 18:04:13 /tmp/git_repo_source
$ echo 'rev2' > rev2
kyoder@green 08 Nov 18:04:20 /tmp/git_repo_source
$ git add -A
kyoder@green 08 Nov 18:04:20 /tmp/git_repo_source
$ git commit -m 'rev2'
[master 290c651] rev2
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 rev2
kyoder@green 08 Nov 18:04:22 /tmp/git_repo_source
$ echo 'rev3' > rev3
kyoder@green 08 Nov 18:04:26 /tmp/git_repo_source
$ git add -A
kyoder@green 08 Nov 18:04:29 /tmp/git_repo_source
$ git commit -m 'rev3'
[master a2caa7a] rev3
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 rev3
kyoder@green 08 Nov 18:04:31 /tmp/git_repo_source
$ cd ..
kyoder@green 08 Nov 18:04:35 /tmp
$ mkdir git_
kyoder@green 08 Nov 18:04:38 /tmp
$ git clone git_repo_source/ git_repo_clone
Cloning into git_repo_clone...
done.
kyoder@green 08 Nov 18:04:43 /tmp
$ cd git_repo_clone/
kyoder@green 08 Nov 18:04:47 /tmp/git_repo_clone
$ git rev-list HEAD
a2caa7a2fe1cf73e117af11d6b018a5c6a77ce6f
290c6511aee4c2ff83c9e7285e798114f8624909
5eca1f5d1b18a9b9055f356d95ba193c67a84077
kyoder@green 08 Nov 18:05:00 /tmp/git_repo_clone
$ git rev-list HEAD | sed '1s;d'
sed: 1: "1s;d": unterminated substitute pattern
kyoder@green 08 Nov 18:05:08 /tmp/git_repo_clone
$ git rev-list HEAD | sed '1q;d'
a2caa7a2fe1cf73e117af11d6b018a5c6a77ce6f
kyoder@green 08 Nov 18:05:13 /tmp/git_repo_clone
$ git rev-list HEAD | sed '1q;d' > .git/info/grafts
kyoder@green 08 Nov 18:05:24 /tmp/git_repo_clone
$ git filter-branch -f HEAD
Rewrite a2caa7a2fe1cf73e117af11d6b018a5c6a77ce6f (1/1)
Ref 'refs/heads/master' was rewritten
kyoder@green 08 Nov 18:05:35 /tmp/git_repo_clone
$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 1 and 1 different commit(s) each, respectively.
#
nothing to commit (working directory clean)
kyoder@green 08 Nov 18:05:38 /tmp/git_repo_clone
$ git pull
Merge made by recursive.
kyoder@green 08 Nov 18:05:45 /tmp/git_repo_clone
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
nothing to commit (working directory clean)
kyoder@green 08 Nov 18:05:48 /tmp/git_repo_clone
$ git pull
Already up-to-date.
kyoder@green 08 Nov 18:05:50 /tmp/git_repo_clone
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
nothing to commit (working directory clean)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment