2016-07-15 6 views
0

私のチームは、サードパーティ製の大きなSDKを使用してUnityプロジェクトを進めています。私たちのうち2人しかアクセスできない新しいデバイスをターゲットにできる新しいプレビューSDKがあります。私は新しいブランチ「new_sdk」を作成し、そのSDKをそこに統合して、新しいデバイスで動作させました。GITにサードパーティライブラリの複数のバージョンを保守するにはどうすればよいですか?

ここで私は元のブランチを古いSDKと新しいSDKのnew_sdkブランチに残したいが、それ以外の場合はブランチ間でSDK外の変更をマージしたい。チームの他の開発者は古いデバイスにしかアクセスできないため、実際にこれを行う必要があります。

解決策の1つは、ライブラリのフォルダを.gitignore経由でソース管理から除外し、ブランチを切り替えるときに手動でコピーすることです。しかし、それは良いことではありません。

私は.gitattributesに探し始め、この記事からドライバをマージ: https://medium.com/@porteneuve/how-to-make-git-preserve-specific-files-while-merging-18c92343826b#.m58m7t1qp しかし、それは複雑なようで、私はテストリポジトリ上の記事の手順に従ったとき、私はそれを動作させることができませんでした。

マージドライバを動作させる方法はありますか?

良いアプローチがありますか?

+0

gitでサブモジュールのブランチ/タグを指定する方法については、http://stackoverflow.com/questions/1777854/git-submodules-specify-a-branch-tagを参照してください。 – gzh

答えて

1

SDKフォルダはメインプロジェクトリポジトリのサブモジュールにする必要があります。

基本的に、新しいリポジトリを作成してそこにSDKをプッシュします。フォルダのみ、プロジェクトフォルダはありません。

次にあなたがGitのレベルでは、あなたのメインのプロジェクトに移動して、サブモジュールのコマンドを使用します。その時点で

https://git-scm.com/book/en/v2/Git-Tools-Submodules

、あなたはSDKが追加されますが、主なプロジェクトは、それを追跡しません。メインのプロジェクトリポジトリとSDKにプッシュすると、灰色のフォルダとして表示され、基本的に他のリポジトリへのポインタになります。

これで、メインプロジェクトとSDKを別々にプッシュできます。

+0

私はこれを朝に試して、うまくいけば戻ってこれを受け入れられた答えと記しておきます。ありがとう。 – ThisGuy

0

gitサブモジュールは、探しているものを達成するためのオプションの1つです。私は豊富なドキュメントと、開発ワークフローのgitサブモジュールに関連する一般的なシナリオを理解するのに役立つ、https://github.com/abdes/submodule-docker-dev-workflowのgithubに関するサンプルプロジェクトを作成しました。

サブモジュールの大きな点は、コンテナレポとサブモジュールレポが完全に独立していることです。サブモジュールを分岐させることなく、コンテナプロジェクトを自由に分岐することができます。

関連する問題