0

現在私が働いている場所では、バージョン管理にGitを使用した次のセットアップ(ASP.NET Web開発用)があります(これは比較的新しいものです)。

内部ネットワークでアクセス可能なIISを実行するリモートサーバーである「開発」サーバー。ここで、安定した開発Webサイトのビルドを展開して、会社全体で表示できるようにします。このサーバー上に、プロジェクトごとにGitリポジトリー(通常はWebサイト)を作成します。

次に、開発者はこのリポジトリをローカルマシンにプルしてローカルで作業し、変更をローカルでコミットしてから、最後にそれらの変更をリモートリポジトリ(開発サーバー)にプッシュして、マスターブランチにマージします。

私たちが抱えている問題は、ソースコードがアセンブリ(DLL)に組み込まれると、これらがローカルのGitリポジトリに追加され、実際には存在しないはずのバイナリファイルで乱雑になることです(ソースから派生できるため)。ただし、DLLを含めない場合(つまり、DLLを.gitignoreに入れる場合)、リモートリポジトリに変更をプッシュすると、DLLが/ binフォルダーから失われ、サイトが機能しなくなります。これを回避する唯一の方法は、変更をプッシュした後、開発サーバーでサイトを再構築することです。

これを回避する方法はありますか?理想的には、ローカルリポジトリからのDLLを無視し、それでもリモートサーバーに「プッシュ」する方法が必要ですか?または、変更がプッシュされたときに、どういうわけかリモートサーバーでビルドをトリガーしますか?

4

2 に答える 2

2

「継続的統合」を検討する必要があるようです。誰かがコミットするたびにクリーン ビルドを実行するようにビルド サーバーをセットアップしたり、1 日の特定の時間に構成したりできます。テスト サーバーへのデプロイなど、ビルドが成功した場合に実行するスクリプトをトリガーすることもできます。さらに、単体テストを実行し、エラーなどをチームにメールで送信することができます。

ビルドが .net でどのように機能するかはわかりませんが、お気に入りの CI サーバーは jenkins です。 http://jenkins-ci.org/

他にもクルーズコントロールなどがあります http://cruisecontrol.sourceforge.net/

どちらも無料です。

于 2013-01-22T16:15:56.270 に答える
1

2 つの並列ブランチを持つことを選択できます: 1 つには「クリーンな」コミットのみがあり、本番マシンにプッシュされるコミットを行うたびに、「バイナリ」ブランチに切り替え、(再)マージします。ブランチを「クリーン」にし、ビルドし、生成されたバイナリ ファイルを追加し、コミットしてプッシュします。

考慮すべきもう 1 つのアプローチは、デプロイに Git を使用するのをやめrsync、バイナリを本番環境にプッシュするなどの専用ツールを使用することです。

于 2013-01-22T23:05:16.680 に答える