1

私は自分でこれに答えようとしましたが、見つけることができるのは複雑すぎるか、必要なものから遠く離れています。

Git/Bitbucket/Mercurial/… を使用してローカル マシン (NAS) で多くの Web サイトを維持し、変更を追跡し、編集が完了したら適切なファイルをアップロードすることは可能ですか?

github などのオンライン リポジトリは必要ありませんね。

なぜ私はこれが欲しいのですか?

私は Web 開発者で、約 50 の Web サイトを維持する必要があります。以前は、ローカル マシンでファイルを編集して FTP 経由でアップロードするか、リモート サーバーに直接アップロードしていました。

どちらも安全ではありません。最初の方法では、どのファイルが編集されたかを追跡し、すべてのファイルをアップロードする必要があります。ファイルを忘れると、ページが最新でないか、さらに悪いことにアプリケーション/CMS が機能しなくなります。

2 番目の方法は、お勧めできません。なぜなら、何か問題が発生した場合、Web 上の誰もがそれを見ることができるからです ;-)

4

5 に答える 5

2

本当に必要なのは、gitなどのバージョン管理とデプロイメカニズムの2つだと思います。Gitはバージョン管理システムです。実際のデプロイにgitを関与させる必要性やメリットはわかりません。

あなたが持つことができるものは

  • ソースコードを保存するためのgit(ホスティング)
  • Jenkinsまたは同様のCI+デプロイメントを行う

そして、おそらくバイナリアーティファクトリポジトリもあります。

私がプロセスを見る方法は、変更を行ってチェックインすることです。そこから、自動化されたCIツールがテストを実行し、分析を行い、場合によってはテストビルドをデプロイします。次に、テストに合格したこと、分析レポなどを使用してコードの状態を確認できます。必要に応じて、ボタンを押して変更をサイトにデプロイできます。

使用される実際の展開ツールは、実際にはセットアップの詳細によって異なります。バージョン管理はそれに依存しません。

于 2012-10-04T12:43:20.833 に答える
1

Gitは、各Webサイトを個別のGitリポジトリにすることができ、サーバープロセスを一切必要としないため、Webサイトの開発に最適です。シンプルでクリーンです。さらに、FTPまたは電子メールを介してGitリポジトリを共有できます。特定のWebサイトで、他の人と一緒に作業していると想像してみてください。メールで渡されたパッチを介してGitリポジトリを共有できます。

あなたの本当の問題は、GitリポジトリにあるものをWebサーバーと同期させることです。誰かがサーバー上のファイルを編集するとどうなりますか?あなたはその変化を望みますか?

一部のサイトでは、Webサーバーのディレクトリは単にソースリポジトリのチェックアウトです。これにより、サーバーで変更を加え、リポジトリにコミットすることができます。また、Webサーバー上の変更をリポジトリに同期する簡単なメカニズムも提供します(更新を実行します)。実際、crontabジョブがWebサーバーをリポジトリに毎晩自動的に同期するところを見たこともあります。

もちろん、それはあなたが避けようとしている実際のバージョン管理サーバープロセスを実行することを意味します。

于 2012-10-04T13:48:18.390 に答える
1

はい、Git ではローカル リポジトリを保持できます。あなたの使用パターンは、どこかに中央リポジトリが必要であり、変更が正しいことを確認したら、サイトを展開するための信頼できる展開方法が必要なように聞こえます.

于 2012-10-04T12:19:58.373 に答える
0

はい、できます。インターネットにアップロードする必要はありません。アプリは、1 つのバージョンまたは Web バージョンのいずれかのツリーから直接読み取ることができます。

したがって、Web A のコードがある場合は、「Web A with configs to run on local machine」のツリーを作成し、apache/iis 上の仮想サーバーを直接 neww ツリー (デフォルト ツリー) のディレクトリにポイントすることができます。 「マスター」です

于 2012-10-04T12:21:19.600 に答える
0

はい、プロジェクトを BitBucket などの git リポジトリに保持し、ローカル マシンで編集し、完了したらチェックインし ( git commit; git push)、Web サイトをホストするときにサーバーにログインしてgit pull.

于 2012-10-04T12:21:31.053 に答える