Guest User

Untitled

a guest
Nov 3rd, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. git clone git@github.com:XXX/repo1.git repo1
  2. cd repo1
  3.  
  4. git remote add git@github.com:XXX/repo2.git repo2
  5.  
  6. git checkout -b repo1_work
  7. git branch remote/repo2/master repo2_work
  8.  
  9. git merge -Xtheirs --allow-unrelated-histories repo2_work
  10.  
  11. rm -rf repo1 repo2
  12.  
  13. mkdir repo1
  14. ( cd repo1
  15. git init
  16. echo hoge > hoge
  17. git add hoge
  18. git commit -m "Initial"
  19. echo fuga >> hoge
  20. git add hoge
  21. git commit -m "Append fuga" )
  22.  
  23. git clone repo1 repo2
  24. ( cd repo2
  25. rm -rf .git
  26. git init
  27. git add -A
  28. git commit -m "Re-initialize"
  29. echo piyo >> hoge
  30. git add hoge
  31. git commit -m "Append piyo" )
  32.  
  33. ( cd repo2
  34. git remote add repo1 ../repo1
  35. git fetch -p repo1 )
  36.  
  37. ( cd repo1
  38. git log --graph > ../repo1-before.txt
  39. )
  40.  
  41. ( cd repo2
  42. git log --graph > ../repo2-before.txt
  43. )
  44.  
  45. * commit 87ee5eb689e4aa33c4b6816c501d89ee154658ea
  46. | Author: Yuki INOUE <my.mail@domain.com>
  47. | Date: Fri Nov 3 11:47:18 2017 +0000
  48. |
  49. | Append fuga
  50. |
  51. * commit 7706f3beea43965c3dd92a9fcc914bbe4f91efbf
  52. Author: Yuki INOUE <my.mail@domain.com>
  53. Date: Fri Nov 3 11:47:18 2017 +0000
  54.  
  55. Initial
  56.  
  57. * commit 59a6096bdad4da18b1055fc66f49e4d54bc05be4
  58. | Author: Yuki INOUE <my.mail@domain.com>
  59. | Date: Fri Nov 3 11:47:18 2017 +0000
  60. |
  61. | Append piyo
  62. |
  63. * commit 3fd04fd77a62b2f5471902eb0f020ade791c598c
  64. Author: Yuki INOUE <my.mail@domain.com>
  65. Date: Fri Nov 3 11:47:18 2017 +0000
  66.  
  67. Re-initialize
  68.  
  69. repo1_end=$(
  70. cd repo1
  71. git rev-parse HEAD )
  72.  
  73. repo2_init=$(
  74. cd repo2
  75. git rev-list --max-parents=0 HEAD )
  76.  
  77. ( cd repo2
  78. git replace $repo2_init $repo1_end
  79. )
  80.  
  81. # repo2 では、一時的に、 `.git/info/replace` が書き換えられ、
  82. # repo2_init が repo1_end で解決されている。
  83.  
  84. ( cd repo2
  85. git log --graph > ../repo2_replaced.txt # 確認する。
  86. )
  87.  
  88. * commit 59a6096bdad4da18b1055fc66f49e4d54bc05be4
  89. | Author: Yuki INOUE <my.mail@domain.com>
  90. | Date: Fri Nov 3 11:47:18 2017 +0000
  91. |
  92. | Append piyo
  93. |
  94. * commit 3fd04fd77a62b2f5471902eb0f020ade791c598c
  95. | Author: Yuki INOUE <my.mail@domain.com>
  96. | Date: Fri Nov 3 11:47:18 2017 +0000
  97. |
  98. | Append fuga
  99. |
  100. * commit 7706f3beea43965c3dd92a9fcc914bbe4f91efbf
  101. Author: Yuki INOUE <my.mail@domain.com>
  102. Date: Fri Nov 3 11:47:18 2017 +0000
  103.  
  104. Initial
  105.  
  106. # 問題なければ確定する
  107. ( cd repo2
  108. git filter-branch -- --all
  109. git log --graph > ../repo2_rewritten.txt
  110. git push repo1 master:repo2-master
  111. )
  112.  
  113. ( cd repo1
  114. git log --graph repo2-master > ../repo1_new_master.txt
  115. )
  116.  
  117. * commit 0477c8800097110a858834f5711b2fcee1380cbc
  118. | Author: Yuki INOUE <my.mail@domain.com>
  119. | Date: Fri Nov 3 11:47:18 2017 +0000
  120. |
  121. | Append piyo
  122. |
  123. * commit 87ee5eb689e4aa33c4b6816c501d89ee154658ea
  124. | Author: Yuki INOUE <my.mail@domain.com>
  125. | Date: Fri Nov 3 11:47:18 2017 +0000
  126. |
  127. | Append fuga
  128. |
  129. * commit 7706f3beea43965c3dd92a9fcc914bbe4f91efbf
  130. Author: Yuki INOUE <my.mail@domain.com>
  131. Date: Fri Nov 3 11:47:18 2017 +0000
  132.  
  133. Initial
Add Comment
Please, Sign In to add comment