GITリポジトリを実稼働環境(FTPサーバー)にプッシュする簡単な方法があるかどうか知りたいのですが?ありがとう
Git wiki に最近追加されたいくつかのツール:
git-ftp RenéMoserによるGitの方法でFTPを実行するための単純なシェルスクリプトです。 git-ftp.shを使用して、最後のアップロード以降に変更されたGit追跡ファイルのみをFTPサーバーにアップロードします。これにより、時間と帯域幅が節約されます。異なるブランチでプレイしても、git-ftp.shはどのファイルが異なるかを知っています。通常のFTPクライアントではそれができません。
git-ftp by Edward Z. Yangはpythonで書かれた単純なスクリプトで、FTPを介してGitリポジトリにファイルをアップロードし、新しいファイルを転送して古いファイルを削除するだけです。
GUIを好む場合は、SourceTreeを使用します。上記のgit-ftpを使用するカスタムアクションを簡単にセットアップできます。 GitリポジトリをFTPにプッシュ でのセットアップの簡単な説明(Macの場合)==
PHPloyは、FTP経由でリモートサーバーにGitコミットを送信するための優れたツールです。コマンドラインから機能し、PHPで書かれています(さらに、サブモジュールの変更を検出します)。
https://github.com/banago/PHPloy
git commit ...
phploy -s staging
phploy -s production
できた!
(免責事項:しばらく使用した後、コードパッチと改善をいくつか提供し、Windows互換にしました。)
MacでTransmitを使用している場合は、次のgit-tranmitスクリプト( https://Gist.github.com/37975 )をお勧めします。 DockSendを使用して、最後に更新されたファイルのみを送信します。 DockSendに慣れていない場合は、 http://www.panic.com/blog/2010/11/15-secrets-of-transmit/ を確認してください。
セットアップ:
厳密に言えば、それはgitの目的ではありません。ただし、ソースがコンパイルや処理を必要としないもの、たとえば完全にhtmlおよびjavascriptファイルなどで構成されるWebサイトの場合、ウェブサーバーにリポジトリのクローンを作成し、サーバーのgit pull
を使用して最新の状態に保ちます。注、gitディレクトリなどを隠すようにWebサーバーを設定します。そして、それはセキュリティの懸念の始まりに過ぎません。
何らかのコンパイルまたは処理がある場合は、 Ant 、 Maven 、 を確認する必要がありますBuildR 、 SBT など.
これはgit [diff]をFTPサーバーにほぼ自動的にアップロードするPHPのスクリプトです:
FTPloyを試すことができます...
「変更をGitHubまたはBitbucketにプッシュします。」
「サーバーへの変更の自動展開」
試用できる無料のプロジェクトが1つあります。私は現在、小さなphpウェブサイトに使用していますが、非常にうまく機能しています。このサイトにはいくつかバグがありますが、アクティブなプロジェクトなので、少なくとも作業中です。
1つのプロジェクトで無料で、非常にうまく機能します。
ここにRubyスクリプトがあります- FTPまたはSSH経由のRuby git-deploy FTPまたはSSH経由でgitリポジトリ内の変更されたファイルのみをアップロードします。
別の回答で述べたように、ここに Python git-ftp.py script があり、これは同様のことを行います。
そして、ここに git-ftp のシェルスクリプトバージョンがあります。
git-deploy と呼ばれるRuby gemプロジェクトもあり、これはgit Push
コマンドを使用してgitリモート経由でカスタムデプロイをセットアップできます。 HerokuおよびAzureサービス。これについては、FTP経由でデプロイするカスタムメソッドを記述する必要がある場合があり、実稼働サーバーへのSSHアクセスがあることを前提としています。
リモートとして追加し、プッシュすることができますが、単にコードをプッシュするだけでは不十分であり、作業ツリーとマージする必要があります。最も簡単な方法は、逆方向に進み、サーバー上に作業ツリーを作成し、そこにフェッチしてマージすることです。
これを理解するのに苦労しました。これをさまざまなソースから簡単に実現する方法を見つけました( git-ftpINSTALL 、 git-ftpUPLOAD 、 git-ftpIssue 、- git-ftpPUSH )。参照用に読むことはできますが、ステップごとの手順を以下で説明しているため、必要はありません。
まず最初に:MAC OSでbrewを使用してgitとcurlをインストールします
brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp
次のコマンドを実行します。
git clone https://github.com/git-ftp/git-ftp.git
cd git-ftp
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
Sudo make install
Gitを使用して更新する
git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
Sudo make install
セットアップ
git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword
すべてのファイルをアップロード
git ftp init
または、ファイルが既に存在する場合
git ftp catchup
作業と展開
echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp Push
エラーがある場合:pathspec 'index.txt'は、gitに既知のどのファイルとも一致しませんでした。これは、ファイルがまだステージングされていないことを意味するため、ファイルを追加してからコミットを試みます。
git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
お役に立てれば。
http://linuxconfig.org/mount-remote-ftp-directory-Host-locally-into-linux-filesystem を使用すると、いつでもローカルディレクトリにftpをマウントできます。
その後、 this と同じ方法で使用できます。
コードを実稼働環境に配置する場合は、RPMパッケージなどの「インストーラー」を使用してコードをインストールすることをお勧めします。これにより、バージョンスタンプが付けられ、インストーラーパッケージを活用して製品コードの更新をサポートできるようになります。 Gitは実際の運用インストールをサポートするようには設計されていません。コード自体の変更を追跡することを目的としています。
いずれにしても、.RPM(またはEXEなど)をビルドすると、それを実動システムにFTPで送信して、他のパッケージと同様にインストールできます。