2016-11-22 15 views
-1

これを最もよく尋ねる方法はわかりませんが、私たちは仕事場にテストサーバーを設置しており、運用サーバーを持っています。私たちは主にテストサーバー上で開発し、その後、機能を使ってコードを(手動で)プロダクションサーバーにプッシュします。Gitは2つの別々のプロジェクト/ git reposを1つのマスタープロジェクトにマージしますか?

私はこのことから離れて、gitを使うことができたと思ったので、私はすべてのファイルとワイルドカードをラップし、git repoを作成しました。偉大な、テストサーバーが設定されています。

今何ですか?プロダクションサーバ上のファイル(別のもの)から別のgitリポジトリを設定しますか?それでは?そこから2つのレポを1つのレポにマージしますか?私はそれのこの側面に新しいので、私はただ助けが必要です。

注:一部の開発者は運用サーバー上のファイルを編集し、そのファイルをテストサーバーに戻しません(主に、現在作業中の機能がまだ実行されていないため)。私たちのテストサーバー上で更新され、現在はプロダクションに移行する必要のある新しい変更点です。

私はそれが意味をなすことを望む、あなたが明確化が必要な場合はコメントしてください。 ありがとうございました 助けていただきありがとうございます!

+0

リポジトリが完全に異なる場合は、場合は、あなたはcompareBeyoundツールを使用して、最初にマージすることができます – KOTIOS

答えて

1

私は以下のようにアプローチします(残念ながら、2つを同期させるにはかなり手作業になるでしょう)。別のブランチをリセットして作成する理由は、同期後に1つの新しい機能をプロダクションにマージできることです。

  1. git remote add prod <url>
  2. を使用して、ローカルレポで新しいリモートとして生産レポを追加テストレポ
  3. の地元のクローンを作成し、生産レポを取得本番サーバー用のレポを作成git fetch prod
  4. testに存在しないprodのファイルに変更があった場合、prod/masterをローカルマスターにマージしてすべての競合を解決します。
  5. ローカルブランチを生産git reset --soft prod/master
  6. は、枝を作成し、(マスターは--forceが必要になります)
  7. プッシュmasterブランチにレポをテストするために、すべての枝をすべての新しい枝をマージ
  8. それぞれの特徴に応じてきた作業ツリーの変更をコミット

test/masterではなく、prod/masterに基づいて新しいブランチを作成することは重要です。さもなければ、他のコミットを取ることなく、それをプロダクションにマージすることはできません(これがgitリセットを行い、別個のブランチを作成した理由です)。

ファイルがマスターサーバー上で直接作成または編集されている場合は、そこにコミットしてテストに合併する必要があります。

すべての開発者にgitを使用させることができない場合は、ブランチの管理などに時間を費やす可能性があります。したがって、reposを簡単に同期した後でワークフローを見直すことをおすすめします。あなたが適合しないワークフローを使用している場合、Gitは残念なことに良い解決策ではありません。

関連する問題