meta data for this page
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| git:split_merge_repos [2019/01/07 13:33] – niziak | git:split_merge_repos [2024/01/17 11:48] (current) – niziak | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Split or merge repos ====== | ||
| + | |||
| ====== Merge repos into one ====== | ====== Merge repos into one ====== | ||
| Line 19: | Line 21: | ||
| Then modify file location of repo BBB to be in desired path and merge it into repo LLL. | Then modify file location of repo BBB to be in desired path and merge it into repo LLL. | ||
| <code bash> | <code bash> | ||
| + | |||
| + | ######### WAY 2 | ||
| + | # Clone RRR repo temporary to change all file paths to new repo. | ||
| + | cd tmp | ||
| + | git clone http:// | ||
| + | git checkout main | ||
| + | # now move files from remote repo RRR into correct path: | ||
| + | mkdir app_RRR | ||
| + | git checkout -b branch_change_file_location | ||
| + | git mv -k * app_RRR/src | ||
| + | git mv src app_RRR/src | ||
| + | git mv .gitignore .gitlab-ci.yml .gitmodules app_RRR/src | ||
| + | |||
| + | git commit -m " | ||
| + | |||
| + | # optionally reword all commits: | ||
| + | git rebase --root -x 'git commit --amend' | ||
| + | |||
| + | cd LLL_repo | ||
| + | git remote add RRR / | ||
| + | git fetch RRR | ||
| + | git merge RRR/ | ||
| + | ######### WAY 2 END | ||
| + | |||
| + | ######### WAY 1 | ||
| git remote add RRR http:// | git remote add RRR http:// | ||
| git fetch RRR | git fetch RRR | ||
| - | git checkout -b branch_change_file_location RRR/master | + | git checkout -b branch_change_file_location RRR/main |
| # now move files from remote repo RRR into correct path: | # now move files from remote repo RRR into correct path: | ||
| Line 33: | Line 60: | ||
| git merge branch_change_file_location --allow-unrelated-histories | git merge branch_change_file_location --allow-unrelated-histories | ||
| git commit | git commit | ||
| + | ######### WAY 1 END | ||
| # cleanup | # cleanup | ||
| Line 38: | Line 66: | ||
| git branch -d branch_change_file_location | git branch -d branch_change_file_location | ||
| - | # optionally: | + | # optionally |
| + | # rebase can be problematic. Conflict will be on commonly used paths (readme, Makefile, src, etc) | ||
| + | # between LLL and RRR repo | ||
| git rebase | git rebase | ||
| # push merged master | # push merged master | ||