web-dev-qa-db-ja.com

gitサブツリー:フォークされたリポジトリのサブツリーブランチ/パスを変更することは可能ですか?

リポジトリAには、フォルダsubがリポジトリSのgitサブツリーとして含まれています-masterブランチを指します。

リポジトリAFにフォークしました。ここで、Fで次のいずれかを実行します。

  • subの別のブランチを使用するようにSを変更します(つまり、developブランチ)
  • または:subを変更して、別のリポジトリを完全に使用する

これらのいずれかが可能ですか?もしそうなら、どのように?知っておくべき副作用はありますか?

また、変更をマージするときに(プルリクエスト)、リポジトリAでサブツリーの変更が更新されないようにするにはどうすればよいですか?つまり、コミットを分離する以外に。

21
LearnCocos2D

git subtreegit submoduleではなく)を使用してサブツリーを作成した場合、それは単なる通常のディレクトリです。別のブランチに切り替えるには、それを削除して、新しいブランチからサブツリーを再作成します。これは:

git rm <subtree>
git commit
git subtree add --prefix=<subtree> <repository_url> <branch>

それは問題なく動作するはずです。

33
elmart