2

私はGITが初めてです。新しいコードをプッシュしたい開発用URLとして、1つの本番用URLと別のURLがあります。

開発: http://development.myrepo.something

プロダクション: http://production.myrep.something

現在、私は通常、別のコンピューターで作業しています。さまざまなコンピューターから実際にすべての作業を開発 URL にプッシュできるセットアップが必要であり、満足したら、同じものを本番 URL にプッシュします。

これまでに行ったこと

  1. 両方の URL でまったく同じファイルをコピーしました。この時点で、両方の URL がブラウザで同じ結果をもたらします。

  2. 両方のディレクトリで git init を実行し、それらを git repos にしました。

  3. ローカルの git bash で、あるディレクトリの本番 URL からクローンを作成しました。
  4. 次に、次のようなリモートオリジンを追加しました-git remote add production ......//server path here
  5. 今、私はこのレポからこのように引き出しました-git pull productionで、私が望んでいた「UP TO DATE」のようになりました。両方のブランチからプルすると、完璧な同じメッセージが表示されます。

その時点で、ローカルで作業してから開発リポジトリにプッシュし、満足したら本番リポジトリに再度プッシュできると思いました。

しかし、プッシュするたびに機能しません。リポジトリがむき出しではないため、エラーが表示されます。

それで、私は今何をしますか?

このリンクからの分岐アプローチに従うことを考えています

しかし、問題は、開発ブランチのサーバーで作業を確認/テストしたいということです。上記のリンクに記載されているアプローチでは、マージが実行された後にしか見ることができません。

光を当てて、正しい方向に向けてください。

4

1 に答える 1

3

実稼働コードのストレージとしてサーバー上にベアリポジトリを用意し、その近くに 2 つ目の非ベア リポジトリをセットアップして、テスト用にベア リポジトリからプルします。git に対して作業しようとしないでください。

リポジトリを使用して実際にコードを記述している場合は、リポジトリにプッシュしないでください。


したがって、最初にコードのリポジトリを作成します。

$ cd /path/to/dir/with/dev/repo
$ git init --bare

これは、開発コードの中央ストレージとして使用するレポです。これは、外部からhttpまたはその他の方法で表示されます。作業リポジトリで「dev」(または「origin」)リモートとして構成します。

繰り返しますが、構成したばかりのリポジトリはプッシュ/プルのみのリポジトリであり、実際にはそこで作業を行うわけではありません。そのクローンにコードを記述してから、変更をプッシュします。たまたま同じマシンで作業している場合でも、クローンを作成するだけです:

$ cd /path/to/work/dir
$ git clone /path/to/dir/with/dev/repo

完了したら、変更を元に戻します。

同じことが「本番」リポジトリにも当てはまります。実稼働コードストレージ用のベア リポジトリをセットアップし、それをテストしたり、サーバーにデプロイしたりする場合は、同じサーバー上の非ベア リポジトリにクローンするだけです。これで、テスト用のリポジトリができました。

リポジトリにプッシュするときにコードを自動的にデプロイする場合は、hoos を使用してこれを実現する方法を説明するチュートリアルがいくつかあります (ここにあるのはそのうちの 1 つです)。

于 2013-06-13T08:25:51.380 に答える