-
-
Save x-yuri/9cf623ac9d52bd29e23b93137fd0fdd7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh -eu | |
rm -rf r.git r1 r2 | |
set -x | |
mkcommit() { echo "$2" > "$1"; git add "$1"; git commit -m "$2"; } | |
log() { git --no-pager log --all --oneline --graph --decorate; } | |
mkdir r.git | |
(cd r.git | |
git init --bare | |
) | |
git clone r.git r1 | |
(cd r1 | |
git init | |
mkcommit a a1 | |
mkcommit b b1 | |
git push origin HEAD | |
log | |
) | |
git clone r.git r2 | |
(cd r2 | |
log | |
) | |
(cd r1 | |
git reset --hard HEAD~ | |
mkcommit b b12 | |
git push -f | |
) | |
(cd r2 | |
mkcommit c c2 | |
git fetch | |
log | |
# no conflict | |
git -c pull.rebase=true pull | |
# git pull --rebase | |
# git rebase | |
# git rebase origin/master --fork-point | |
# conflict | |
# git -c pull.rebase=false pull | |
# git rebase origin/master | |
git --no-pager branch -vv | |
log | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
+ mkdir r.git | |
+ cd r.git | |
+ git init --bare | |
Initialized empty Git repository in /home/yuri/_/git-fork-point/r.git/ | |
+ git clone r.git r1 | |
Cloning into 'r1'... | |
warning: You appear to have cloned an empty repository. | |
done. | |
+ cd r1 | |
+ git init | |
Reinitialized existing Git repository in /home/yuri/_/git-fork-point/r1/.git/ | |
+ mkcommit a a1 | |
+ echo a1 | |
+ git add a | |
+ git commit -m a1 | |
[master (root-commit) e4f6248] a1 | |
1 file changed, 1 insertion(+) | |
create mode 100644 a | |
+ mkcommit b b1 | |
+ echo b1 | |
+ git add b | |
+ git commit -m b1 | |
[master f77692d] b1 | |
1 file changed, 1 insertion(+) | |
create mode 100644 b | |
+ git push origin HEAD | |
To /home/yuri/_/git-fork-point/r.git | |
* [new branch] HEAD -> master | |
+ log | |
+ git --no-pager log --all --oneline --graph --decorate | |
* f77692d (HEAD -> master, origin/master) b1 | |
* e4f6248 a1 | |
+ git clone r.git r2 | |
Cloning into 'r2'... | |
done. | |
+ cd r2 | |
+ log | |
+ git --no-pager log --all --oneline --graph --decorate | |
* f77692d (HEAD -> master, origin/master, origin/HEAD) b1 | |
* e4f6248 a1 | |
+ cd r1 | |
+ git reset --hard HEAD~ | |
HEAD is now at e4f6248 a1 | |
+ mkcommit b b12 | |
+ echo b12 | |
+ git add b | |
+ git commit -m b12 | |
[master 8f70fed] b12 | |
1 file changed, 1 insertion(+) | |
create mode 100644 b | |
+ git push -f | |
To /home/yuri/_/git-fork-point/r.git | |
+ f77692d...8f70fed master -> master (forced update) | |
+ cd r2 | |
+ mkcommit c c2 | |
+ echo c2 | |
+ git add c | |
+ git commit -m c2 | |
[master 436df9d] c2 | |
1 file changed, 1 insertion(+) | |
create mode 100644 c | |
+ git fetch | |
From /home/yuri/_/git-fork-point/r | |
+ f77692d...8f70fed master -> origin/master (forced update) | |
+ log | |
+ git --no-pager log --all --oneline --graph --decorate | |
* 436df9d (HEAD -> master) c2 | |
* f77692d b1 | |
| * 8f70fed (origin/master, origin/HEAD) b12 | |
|/ | |
* e4f6248 a1 | |
+ git -c pull.rebase=true pull | |
Rebasing (1/1) | |
Successfully rebased and updated refs/heads/master. | |
+ git --no-pager branch -vv | |
* master 1c8d4e3 [origin/master: ahead 1] c2 | |
+ log | |
+ git --no-pager log --all --oneline --graph --decorate | |
* 1c8d4e3 (HEAD -> master) c2 | |
* 8f70fed (origin/master, origin/HEAD) b12 | |
* e4f6248 a1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment