2

私は次のことをしたいと思います:

  • ローカルの git リポジトリを作成し、それを呼び出しましょう~/my-awesome-app
  • 私のサイトにフォルダを作成し、それを呼び出しましょうmysite.com/my-awesome-app
  • ~/my-awesome-app行った変更をプッシュするだけmysite.com/my-awesome-app

誰かが私がそれを設定する方法を説明できますか?

4

2 に答える 2

4

mysite.com/my-awesome-appgit リポジトリを作成してそこにプッシュできるように設定することはできreceive.denyCurrentBranchますignoreが、これは危険です。

これを行いたい場合は、コードをプッシュできるサーバー上に裸のリポジトリを作成し、updateフックを変更して最新のツリーをエクスポートしますmysite.com/my-awesome-app(必要に応じてアプリを再起動します)。そうすれば、リポジトリとデプロイされたコピーは 2 つの異なるものになります。

于 2012-07-31T14:47:35.307 に答える
1

リモート サーバーの~/mysite.comにgit リポジトリはありますか? もしそうなら、JamesNoufalが指摘したように、注意してください。この種の入れ子は問題になる可能性があります。

ネストされているかどうかに関係なく機能する次のソリューションを検討してください。

  1. ~/mysite.comの外にmy-awesome-appリポジトリを作成します( ~/my-awesome-appなど)。
  2. 次に、 ~/my-awesome-app/から~/mysite.com/my-awesome-appのシンボリック リンクを作成します
  3. そして安全のために、~/mysite.com/my-awesome-app/~/mysite.com/.gitignoreファイルに追加して、 ~/mysite.com/リポジトリのアクションから除外します。

リモート サーバーで、シェルから:

mkdir ~/my-awesome-app/
ln -s ~/my-awesome-app/ ~/mysite.com/my-awesome-app
echo /my-awesome-app >> ~/mysite.com/.gitignore

ローカルのmy-awesome-appブランチからリモート サーバーにコミットをリリースするとき、~/mysite.com/my-awesome-app ではなく、パス ~/my-awesome-app をアップロード/相対ディレクトリとして使用します。これにより、ファイル構造を上って git リポジトリを探しようとする生意気な IDE からあなたを救うことができます。

最後に、レプーなしで sftp/ftp または ssh 経由でファイルを送信するだけでなく、~/my-awesome-app にリモート レポを追加することを検討します。これにより、非常に安定した運用環境を維持しながら、スケーラブルなgitflowメソッドを使用してホットフィックスをローカルの開発コピーに組み込むことができます。

Vincent Driessen による gitflow に関する良い議論がここにあります


更新: シンボリック リンクの代替アプローチ

シンボリック リンク (削除される可能性があります) の代わりに、代わりにサイトの構成を変更できます。

# creates the alias
<IfModule mod_alias.c>
     Alias /my-awesome-app /path/to/my-awesome-app/
</IfModule>

# allows people to access the path
<Directory /path/to/my-awesome-app/>
        Order allow,deny
        Allow from all
</Directory>

次に、プッシュを行うときは、/path/to/my-awesome-app/ を使用する必要があります。安全のために ~/mysite.com/.gitignore に/my-awesome-app行を残しておきますが、シンボリック リンクがなければ、~/mysite を操作するときに git が my-awesome-app リポジトリに出くわすことはありません。 .com/.

于 2012-07-31T16:43:01.250 に答える