web-dev-qa-db-ja.com

どうすればgitリポジトリの一部をHerokuにプッシュできますか?

すでにGithubにあるマルチモジュールアプリがあります。これは2つのモジュールで構成されており、1つはAndroidアプリともう1つはRailsベースのWebアプリです。したがって、私のプロジェクトのディレクトリ構造は次の形式になります。 :

ProjectRoot
|
+-- web
|
+-- Android
|
+-- .git

そのため、単純にcdをProjectRootに入れて、アプリをHerokuにプッシュすることはできません。Rails app is ProjectRoot/webです。 Herokuへのwebフォルダー?Webをgitサブモジュールに変換すると、簡単に実現できますが、Gitには5つのプライベートリポジトリしかなく、アプリ全体で1つのリポジトリのみを使用することを好みます。

54

git subtree Pushを使用できます。それはあなたのディレクトリをルートとして新しいコミットツリーを生成し、それをプッシュします。

git subtree Push --prefix web heroku master

完全なドキュメントは here です。

60

git subtreeコマンド(組み込み)は、これを行うための良い方法です。ブランチのサブツリーをプッシュしてマスターにしたい場合は、次のようなものを使用できます。

git Push --force heroku `git subtree split --prefix web HEAD`:master

11
brookr

サブフォルダーの代わりにgitブランチを使用することもできます。 git 1.7.2以降を使用している場合は、git checkout --Orphan Androidを実行するだけで、マスターブランチから切り離されたブランチを作成できます(ここではWebフォルダーと想定)。 Orphanブランチをチェックアウトしたら、git rm -rf .を実行して既存のファイルを削除してから、Android固有のファイルを空のルートディレクトリにコピーします。

モジュールごとに個別のフォルダーを使用する場合は、リポジトリーを2回複製して、次の構造を使用できます。

ProjectRoot
├── Android
│   └── .git
└── web
    └── .git
4
bmaland