Advertisement
Guest User

Untitled

a guest
Dec 21st, 2022
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.56 KB | None | 0 0
  1. $ cd /tmp
  2.  
  3. $ rm -rf upstream/ myfork/
  4.  
  5. $  mkdir upstream
  6.  
  7. $  cd upstream
  8.  
  9. # == prepare its `master` and `dev/br-1` branches
  10.  
  11. $  git init
  12.  
  13. seq 12 | tee file-a
  14. git commit -am 'add file-a'
  15.  
  16. $  git checkout -b dev/br-1
  17. Branch 'dev/br-1' set up to track local branch 'master' by rebasing.
  18. Switched to a new branch 'dev/br-1'
  19.  
  20. sed -i 's/^1/7/' file-a
  21.  
  22. git commit -am 'update file-a'
  23.  
  24. seq 5 6 | tee -a file-a
  25. git commit -am 'more updates'
  26. seq 12 | tee file-b
  27. git commit -am 'more updates'
  28.  
  29.  cd /tmp
  30.  git clone upstream myfork
  31.  # == prepare my own changes based on the `dev/br-1` branch into `dev/br-2`
  32.  
  33. $  git branch -avv
  34. * master                  2f5eaaf [origin/master] add file-a
  35.   remotes/origin/HEAD     -> origin/master
  36.   remotes/origin/dev/br-1 0006c5e more updates
  37.   remotes/origin/master   2f5eaaf add file-a
  38.  
  39. $  git checkout --track origin/dev/br-1
  40. Branch 'dev/br-1' set up to track remote branch 'dev/br-1' from 'origin' by rebasing.
  41. Switched to a new branch 'dev/br-1'
  42.  
  43. $ git checkout -b dev/br-2
  44. Branch 'dev/br-2' set up to track local branch 'dev/br-1' by rebasing.
  45. Switched to a new branch 'dev/br-2'
  46.  
  47. sed -i '/9/{ N; N; s/^.*$/3\n4/; }' file-a
  48.  
  49. $ cat file-a
  50. 7
  51. 2
  52. 3
  53. 4
  54. 5
  55. 6
  56. 7
  57. 8
  58. 3
  59. 4
  60. 72
  61. 5
  62. 6
  63.  
  64. git commit -am 'update file-a in dev/br-2'
  65.  
  66.  cd /tmp/upstream
  67.  # advance its `master`
  68.  
  69.  sed -i 's/^5/55/' file-a
  70.  git commit -am 'update file-a from main'
  71.  
  72.  # and its`dev/br-1` branches
  73.  git checkout dev/br-1
  74.  git rebase -X theirs master dev/br-1
  75.  
  76. $ cat file-a
  77. 7
  78. 2
  79. 3
  80. 4
  81. 55
  82. 6
  83. 7
  84. 8
  85. 9
  86. 70
  87. 71
  88. 72
  89. 5
  90. 6
  91.  
  92. # 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.
  93.  
  94.  cd /tmp
  95.  mv myfork myfork0
  96.  git clone myfork0 myfork1
  97.  cd myfork1
  98.  git remote -v
  99.  git remote add upstream /tmp/upstream
  100.  git remote -v
  101.  git fetch upstream
  102.  git rebase upstream/master
  103.  
  104.  git checkout --track origin/dev/br-1
  105.  
  106. $ git remote -v
  107. origin  /tmp/myfork0 (fetch)
  108. origin  /tmp/myfork0 (push)
  109. upstream        /tmp/upstream (fetch)
  110. upstream        /tmp/upstream (push)
  111.  
  112. $ git branch -avv
  113. * dev/br-1                  0006c5e [origin/dev/br-1] more updates
  114.   master                    dc45a94 [origin/master: ahead 1] update file-a from main
  115.   remotes/origin/HEAD       -> origin/master
  116.   remotes/origin/dev/br-1   0006c5e more updates
  117.   remotes/origin/dev/br-2   ce2a804 update file-a
  118.   remotes/origin/master     2f5eaaf add file-a
  119.   remotes/upstream/dev/br-1 7aec18c more updates
  120.   remotes/upstream/master   dc45a94 update file-a from main
  121.  
  122.  
  123.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement