二つの git レポジトリを統合するときによく見られるエラー2017年07月18日 13時01分08秒

二つのレポジトリを統合する git 自体の操作は簡単なのだが、ファイル名で頭を悩ませることが多々ある。Makefile 等はその典型で、git レポジトリの直下に、ライブラリやプログラムを作り始めて Makefile があると必ず困る。

またまた、repo1 に repo2 を取り込む例。

% cd path/to/repo1
% git remote add repo2 path/to/repo2
% git fetch repo2
% git merge --allow-unrelated-histories repo2/master
Auto-merging Makefile
Automatic merge failed; fix conflicts and then commit the result.
過去の履歴にも遡って衝突が起きているので、単純に git mv Makefile 等とやっても解決できない。git filter-branch を使って、全ての履歴を書き換えておく必要がある。

思考錯誤の後、git レポジトリの上には同名のライブラリやらプログラムのディレクトリ名にすると、この git merge 問題はほぼ回避できる。git clone をした時の階層の深さが若干の悩み。filter-branch で点から始まる隠しファイルも含めての単純な変更方法が無いかとは思っている。詰まるところ、今も錯誤中。

前回