2017-05-04 2 views
0

私はGit初心者ではなく、Guruでもなく、質問があります。我々は私たちのネットワーク内のフォルダとして表示されるリモートreposを作成したい。これらのフォルダには、実稼働環境で動作する大規模なレガシーASPアプリケーションが実際に格納されます。運用システムを最新の状態に保つためにGITを使用する

ローカル変更を行い、これらのネットワークリポジトリにコミットをプッシュして、本番アプリケーションを動的に更新できるようにする必要があります。

Githubとその開発者はすでにリポジトリをフォークしており、ローカルで作業しています(私たちはほとんどの日常的な作業にSmartGitを使用しています)。

私たちは(Gitを使用する前に)常に変更されたファイルをターゲットシステム(生産、QAなど)にコピーするプロセスを持っていました。

しかし私は操作システムをマスターとしてチェックアウトされたレポとして扱うことができるかもしれません。その後、適切にテストされた場合、SmartGitを使用して運用システムを「プッシュ」し、そのように変更を提供したいと考えています。

私は私のGitの知識の端にありますが、これはやりやすいのか、危険なのかは不明です。

Gitを稼働中のマシンにインストールしたくない(Windows 2003を実行することに制限されています - 私は知っています...)ので、ローカルシステムのようにリモートシステムを扱いたい私たちのローカルマシンで。

ヒントやご提案はありますか?

答えて

1

私のヒント:気にしないでください。

ベアのリポジトリにのみプッシュできます。これらのファイルには、通常、作業ディレクトリがまったくない.gitに常駐するファイルのみが含まれています。だから、あなたはそれらをサーバー上で「実行」することはできません。あなたはサーバー上の裸のレポにプッシュする必要がありますし、裸のレポジスをサーバー自体の非裸のローカルレポにクローン/チェックアウトする必要があります(gitのポスト受信フックで行うことができます)。しかし、あなたが言ったように、あなたはサーバーにgitをインストールすることはできません。したがって、git pushはあなたのために何もしません。

2番目のオプションは、あなたが持っているステージング/デプロイメントマシン(おそらくgitをインストールできるもの)にサーバファイルシステムをマウントすることです。次に、そのデプロイメントマシンのベアレポップにgit pushを入れて、git hookを実行し、新しくプッシュされたものをあなたの非gitサーバーファイルシステムにコピーすることができます。

3番目のオプションは、ローカルにすべてをパッケージ化し、tarball(または、おそらく私が推測すると、zip-ball ...)を作成し、サーバー上で展開することです。

So.自動化された継続的な展開=>素晴らしいアイデア。 git =>素晴らしいアイデアを使用しています。直接git pushを使用して、それほど多くではなく、主にあなたの制約のために。

関連する問題