2017-08-05 1 views
2

GitHubを使用して次のWebサイトのコードを管理する予定です。私は過去にGitHubを使用していましたが、Webサイトの展開にこれまで使用したことはありません。git pullを使用してウェブサイトを展開するには?

  1. 私は、リモートサーバー上のgit pullを使用していた場合には、それは私のウェブサイトのディレクトリを意味している:

    enter image description here

    をしかし、私はこのモデルについて、いくつかの懸念を持って、次のように私のかなり洗練されていないプランですそれ自身がgitリポジトリになりますか?もしそうなら、これを避ける方法はありますか?たとえば、/var/repoディレクトリを作成してgitリポジトリを作成し、コードを実際のWebサイトディレクトリ(/var/www)にコピーすることはできますか?これを設定する効率的な方法はありますか?

  2. 初めてgit pullを実行して、自分のサーバーにWebサイトを展開するとします。次に、既存のファイルに編集し、というファイルをFTP経由でサーバに直接追加します。 git pullを2回目に実行すると、gitはこれらの2つのファイルをどのように処理しますか?編集したファイルを置き換え、新しいファイルを削除しますか?編集したファイルは置き換えられ、新しいファイルは変更されませんか?私はgit pullをまったく実行できませんか?

  3. 自分のコンピュータに、データベースにアクセスできるさまざまなユーザーのユーザー名/パスワードを含むconfig.phpという名前のファイルがあるとします。私のコンピュータ上のconfig.phpは自分のlocalhost環境用に設定されているので、初めて私のサーバ上でgit pullを使うと、私は変数を編集する必要があります。したがって、私がgit pullを2回目に実行したとき、私のサーバ上のファイルはlocalhostバージョンに置き換えられましたか?

  4. 最後の質問へのフォローアップとして、ユーザー名とパスワードなどのデータを含む構成ファイルを処理する最善の方法は何ですか?この機密データをパブリックGitHubリポジトリから隠すだけでなく、git pullを実行したときに、すでに変更されているサーバ上の設定ファイルが変更されないようにしたいと考えています。

答えて

1
  1. あなたはgitのレポでリモートサーバにコードを取得するためにgit clone repo_urlを行うには、あなたが持っているので、初めてされることなくgit pullを実行することはできません。 .gitvar/www、つまりgit repoに保存しないようにするには、コードを別のディレクトリに移動してからrsyncまたはmvを使用してコードを移動します。

  2. リモートサーバー上で直接ファイルを編集することは悪い習慣とみなされ、レポに矛盾が生じる可能性があります。とにかくリモートサーバー上で直接編集した場合、gitはyour local changes will be overwritten with this mergeというエラーをスローするので、githubから取り出すことはできません。したがって、変更を隠したり、完全に削除したりする必要があります。

  3. パスワードなどのファイルがある場合は、ローカルサーバーとリモートサーバーの両方で環境変数を使用することをおすすめします。 config.phpの環境変数を使用して、機密情報をシステムから取得します。これらの環境変数をリモートサーバーに一度設定するだけで済みます。

  4. 重要なデータがある場合は、それらのファイルを.gitignoreに入れてください。あなたがgithubからあなたのコードを引っ張ると、gitはそれらのファイルを無視するので、gitignoreのファイルは変更されません。

1
  1. はい、それはなります。しかし、.htaccess(または同等のファイル)に、.gitフォルダが配信されないように指定すると、エンドユーザーに大きな違いはありません。

  2. サーバーがgit pullの場合、サーバーのコンテンツを直接変更したくない場合。そうした場合は、サーバー上で変更をコミットして、ローカルの変更とマージする必要があります。これは乱雑になります。だから、あなたのローカルマシンで常に変更して、それに応じてプッシュしてください。

  3. パスワードはプレーンテキスト、特にパブリックGitHubリポジトリに保存してください。ユーザー名/パスワードを格納するサーバ(gitの下にない)の部分を完全に分離してください。はハッシュ化され、塩漬けされたです。この場所に別々にFTPすることができます。また、ローカル開発用とサーバー用の2つの別々のファイルを持つこともできます。

  4. 私は既にこれに答えていますが、ユーザー名/パスワードを別の場所に保存してください。

関連する問題