Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $ cd /tmp
- $ rm -rf upstream/ myfork/
- $ mkdir upstream
- $ cd upstream
- # == prepare its `master` and `dev/br-1` branches
- $ git init
- seq 12 | tee file-a
- git commit -am 'add file-a'
- $ git checkout -b dev/br-1
- Branch 'dev/br-1' set up to track local branch 'master' by rebasing.
- Switched to a new branch 'dev/br-1'
- sed -i 's/^1/7/' file-a
- git commit -am 'update file-a'
- seq 5 6 | tee -a file-a
- git commit -am 'more updates'
- seq 12 | tee file-b
- git commit -am 'more updates'
- cd /tmp
- git clone upstream myfork
- # == prepare my own changes based on the `dev/br-1` branch into `dev/br-2`
- $ git branch -avv
- * master 2f5eaaf [origin/master] add file-a
- remotes/origin/HEAD -> origin/master
- remotes/origin/dev/br-1 0006c5e more updates
- remotes/origin/master 2f5eaaf add file-a
- $ git checkout --track origin/dev/br-1
- Branch 'dev/br-1' set up to track remote branch 'dev/br-1' from 'origin' by rebasing.
- Switched to a new branch 'dev/br-1'
- $ git checkout -b dev/br-2
- Branch 'dev/br-2' set up to track local branch 'dev/br-1' by rebasing.
- Switched to a new branch 'dev/br-2'
- sed -i '/9/{ N; N; s/^.*$/3\n4/; }' file-a
- $ cat file-a
- 7
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 3
- 4
- 72
- 5
- 6
- git commit -am 'update file-a in dev/br-2'
- cd /tmp/upstream
- # advance its `master`
- sed -i 's/^5/55/' file-a
- git commit -am 'update file-a from main'
- # and its`dev/br-1` branches
- git checkout dev/br-1
- git rebase -X theirs master dev/br-1
- $ cat file-a
- 7
- 2
- 3
- 4
- 55
- 6
- 7
- 8
- 9
- 70
- 71
- 72
- 5
- 6
- # Now upstream has advanced, both in its master and its develop branches (via rebase), and I need to pick-up from my own repo to continue with my customization.
- cd /tmp
- mv myfork myfork0
- git clone myfork0 myfork1
- cd myfork1
- git remote -v
- git remote add upstream /tmp/upstream
- git remote -v
- git fetch upstream
- git rebase upstream/master
- git checkout --track origin/dev/br-1
- $ git remote -v
- origin /tmp/myfork0 (fetch)
- origin /tmp/myfork0 (push)
- upstream /tmp/upstream (fetch)
- upstream /tmp/upstream (push)
- $ git branch -avv
- * dev/br-1 0006c5e [origin/dev/br-1] more updates
- master dc45a94 [origin/master: ahead 1] update file-a from main
- remotes/origin/HEAD -> origin/master
- remotes/origin/dev/br-1 0006c5e more updates
- remotes/origin/dev/br-2 ce2a804 update file-a
- remotes/origin/master 2f5eaaf add file-a
- remotes/upstream/dev/br-1 7aec18c more updates
- remotes/upstream/master dc45a94 update file-a from main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement