これがgitフォルダーです。
folder1 / xxx / a / b / c
folder2 / yyy / a / b / c
以前は、SVNを使用してfolder1/xxxをfolder2/yyyからマージできました。
Gitで同じことをすることは可能ですか?
これがgitフォルダーです。
folder1 / xxx / a / b / c
folder2 / yyy / a / b / c
以前は、SVNを使用してfolder1/xxxをfolder2/yyyからマージできました。
Gitで同じことをすることは可能ですか?
最も簡単な解決策は、両方のディレクトリをサブモジュール/サブツリーとして設定することです (それらにはすでにいくつかの個別の履歴/svn リポジトリがありますよね?)。次に、folder1 リポジトリに、folder2 リポジトリを指すリモートを追加するだけで、他のリモートと同じように変更をマージするだけです。
# go to folder1 repository
cd /path/to/folder1repo
# or `cd folder1` if you are familiar with inline submodule editing caveats
# add a remote pointing to folder2 repo
git remote add folder2 /path/to/repo/folder2
# fetch it
git fetch folder2
# merge folder2 into folder1
git merge folder2/master
唯一の注意点は、実際にはサブモジュールがあり、それらのフォルダーをマージするたびにスーパープロジェクトにコミットする必要があることです (たとえば、folder1 が変更され、スーパープロジェクトが別のコミットを指す必要があるため):
cd /path/to/superproject
git add folder1
git commit -m "Merged folder2 submodule into folder1"
サブモジュールの代わりに、両方の forlders のリポジトリのサブツリー マージを使用できます。セットアップはもう少し複雑ですが、プルしてそのようなすべてのサブツリーを更新するだけです :)
ここに素晴らしいサブツリーのチュートリアルがあります: http://nuclearsquid.com/writings/subtree-merging-and-you/
ところで。まったく異なるプロジェクトへのリモートを作成し、単純なマージを使用してそのコードを自分のコードとマージできます:) gitの使用シナリオは無限です:)