2017-09-25 5 views
0

gitサブツリーとは別のプロジェクトを含むプロジェクトが必要です。 このサブツリーは、最新のリリースバージョンを参照しています。サブツリープロジェクトでのリリースはタグで行われます。タグに基づいたサブツリーのリモートに貢献するには

今、私はリモートのサブツリーに貢献する方法を見つけようとしています。

私は、このサブツリーを含むプロジェクト内からサブツリーリモートリポジトリに貢献できることを知っています。 タグではなく、ブランチをベースにしている場合にのみ動作するようです。私のために働いていない

シナリオ:

git subtree add --prefix libs/my_lib my_lib RELEASE_TAG --squash 
vi libs/my_libs/file.txt 
git add . 
git commit -m"Change" 
git subtree push --prefix libs/my_lib my_lib new_branch 

が出力:

git push using: my_lib new_branch 
fatal: 42bb2d35f859596b7ee5ae37134fa3209ffbb2f1 is not a valid 'commit' object 
Can't copy commit e0364bf8b064ea60f70f9b197da4605dba28a252 

私はそれがタグを使用していないが、私は、そのようにそれを行うことができることを知っている:

git subtree add --prefix libs/my_lib my_lib master --squash 
vi libs/my_libs/file.txt 
git add . 
git commit -m"Change" 
git subtree push --prefix libs/my_lib my_lib new_branch 
git push 

タグに基づくサブツリーの追加は、ブランチに基づくサブツリーの追加とどのように違いますか?実際に異なる場合は、タグに基づいたサブツリーのリモートにプッシュする適切な方法は何ですか?

EDIT:
システム:Fedoraの22
Gitのバージョン:2.4.11

答えて

0

私は私のwin7の上で試してみましたが、それは、次の手順で作業している:

git remote add to_other <url_to_other> 
git fetch to_other 

git subtree add --squash --prefix my_libs/other to_other REL_TEST 

# do a change 
date > my_libs/other/test_file.txt 
git add my_libs/other 
git commit -m "new file" my_libs/other 

# do push 
git subtree --squash push --prefix my_libs/other to_other my_branch 

これが作成されます。 to_otherに新しいブランチ "my_branch"があります。

おそらくgitのバージョンに問題がありますか?

$ git --version 
git version 2.12.0.windows.1 
+0

こんにちは、 実際、特定のGitバージョンに関連する問題があるようです。私はWindowsでgit 2.10を試してみましたが、うまくいきましたが、2.14(Windows上でも)ではそうしませんでした。 – CAdr

関連する問題