1

私は友達とまともな開発パターンを設定しようとしています。計画では、独自のコンピューターで独立した開発を行い、テストのために開発サーバーにプッシュしてから、開発サーバーから本番サーバー(Heroku)にプッシュします。

問題は、gitを動作させることができないことです。おそらく、何が起こっているのかを根本的に理解するのに十分な知識がありません。リポジトリを開発サーバーにセットアップしましたが、パーソナルコンピューターにクローンを作成すると、非ベアリポジトリへのプッシュについて不平を言うため、「プッシュ」できません。そこで、リポジトリを分岐して分岐をプッシュしようとしましたが、今では多くの早送りステートメントが表示され、それらも必要ないと思います。

だから私の質問はこれです。サーバーをセットアップして、すべてが「機能する」ようにするにはどうすればよいですか?サーバーをベアリポジトリにすることはできません。アプリをテストできるように、サーバーにコードが含まれている必要があります。リポジトリから自分の開発用コンピューターにスムーズにプッシュおよびプルできるようにしたいと考えています。また、サーバーはHerokuにプッシュできる必要があります(これはすでに実行できます)。これは自分のサーバー上にあるので、これを機能させるために必要なものすべてに完全にアクセスできます。(Ubuntu Server Edition 11.04)。

ありがとう!

4

2 に答える 2

2

デフォルトで非ベアリポジトリにプッシュできない理由は、非ベアリポジトリにチェックアウトされた作業コピーが関連付けられているためです。チェックアウトされたブランチに更新をプッシュすると、更新するコマンドを特に実行しない限り、作業コピーはそれ自体のリポジトリと同期しなくなります(これは受信後フックを使用して実行できます)。これを認識していて、とにかく非ベアリポジトリにプッシュしたい場合は、receive.denyCurrentBranch構成プロパティをに設定するignoreと、gitがプッシュを許可します。詳細については、私が以前に書いたブログ投稿(おそらく更新のため)を参照してください。このブログ投稿では、私が自分のWebサイトで使用しているのと同様の設定について説明しています。

開発サーバーと本番サーバー(それぞれが独自の非ベアリポジトリを備えている)の代わりに、3番目のリポジトリもあることに注意してください。ベアリポジトリは、開発に送信する前に最初に変更をプッシュします。そうすれば、私は1つの場所から開発サーバーにプッシュするだけで、同期を保つことができます。

于 2011-11-28T19:44:25.840 に答える
0

@David Zaslavskyのコメントを詳しく説明するために、ほとんどの場合にプッシュするベアリポジトリを設定してから、git-deployなどを使用して開発サーバーにプッシュします。Herokuを使用せずに、Herokuにプッシュするのと同じセマンティクスを取得します。

于 2011-11-28T19:54:57.967 に答える