"スーパープロジェクト"内のファイルのディレクトリから他の人と作業するために "サブプロジェクト"を作成しようとしていましたが、それはgitのサブツリーで動作するように苦労している。 理想的には、他の人がサブプロジェクトで作業することができます。その後、私は上流の変更を引き出し、更新をプッシュします。git subtree:split sub-project、それに取り組み、マージバック
ここにこの目的のためのMWEがあります。 私はリモートレポ「サブプロジェクト」に続いgit subtree
サブプロジェクト「サブプロジェクト」を含む「スーパー・プロジェクト」を作成します。
$ mkdir subtree-test && cd subtree-test
# create super-project
$ mkdir super-project && git init super-project && cd super-project
$ echo "foobar" >> super.txt
$ git add super.txt && git commit -m "add file"
# create sub-project
$ mkdir sub-project
$ echo "foobar" >> sub-project/sub1.txt
$ git add sub-project/sub1.txt && git commit -m "add file"
# prepare a bare subtree repo named "sub"
$ git init --bare ../sub-project
$ git subtree push --prefix=sub-project/ ../sub-project master
次に「サブに「サブプロジェクトを」クローン「-LIVE、いくつかの作業を行うと、上流のプッシュ:
$ cd ../
$ git clone sub-project sub-live
$ cd sub-live
$ echo "foobar" >> sub2.txt
$ git add sub2.txt && git commit -m "add file"
$ git push
を次にバック超のプロジェクトにマージしようとすると:
$ cd ../super-project
$ git subtree pull --prefix=sub-project/ ../sub-project master
とエラーがあります:
warning: no common commits
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
From ../sub-project
* branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories
私はgit subtree
の使用に関する記事を読んでいます。 しかし、ほとんどの場合、サブプロジェクトは後でスーパープロジェクトに追加されます。 私の場合、サブプロジェクトはスーパープロジェクトに由来しているため、これらの複雑な問題が発生している可能性があります。
どうしたのですか?そして、私はここからどのように進むべきですか?