web-dev-qa-db-ja.com

Gitプッシュプロダクション(FTP)

GITリポジトリを実稼働環境(FTPサーバー)にプッシュする簡単な方法があるかどうか知りたいのですが?ありがとう

129
Roch

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リポジトリにファイルをアップロードし、新しいファイルを転送して古いファイルを削除するだけです。

158
Tim Henigan

GUIを好む場合は、SourceTreeを使用します。上記のgit-ftpを使用するカスタムアクションを簡単にセットアップできます。 GitリポジトリをFTPにプッシュ でのセットアップの簡単な説明(Macの場合)==

enter image description here

14
Geri

PHPloyは、FTP経由でリモートサーバーにGitコミットを送信するための優れたツールです。コマンドラインから機能し、PHPで書かれています(さらに、サブモジュールの変更を検出します)。

https://github.com/banago/PHPloy

git commit ...
phploy -s staging
phploy -s production

できた!

(免責事項:しばらく使用した後、コードパッチと改善をいくつか提供し、Windows互換にしました。)

11
Simon East

MacでTransmitを使用している場合は、次のgit-tranmitスクリプト( https://Gist.github.com/37975 )をお勧めします。 DockSendを使用して、最後に更新されたファイルのみを送信します。 DockSendに慣れていない場合は、 http://www.panic.com/blog/2010/11/15-secrets-of-transmit/ を確認してください。

セットアップ:

  1. cp git-transit/usr/sbin /。
  2. cd/usr/sbin
  3. chmod + x git-transmit
  4. ライブアプリのセットアップドロップ送信
  5. Gitリポジトリでgit-transmitを実行します。
10
Rob Sawyer

厳密に言えば、それはgitの目的ではありません。ただし、ソースがコンパイルや処理を必要としないもの、たとえば完全にhtmlおよびjavascriptファイルなどで構成されるWebサイトの場合、ウェブサーバーにリポジトリのクローンを作成し、サーバーのgit pullを使用して最新の状態に保ちます。注、gitディレクトリなどを隠すようにWebサーバーを設定します。そして、それはセキュリティの懸念の始まりに過ぎません。

何らかのコンパイルまたは処理がある場合は、 AntMavenを確認する必要がありますBuildRSBT など.

5
sblundy

これはgit [diff]をFTPサーバーにほぼ自動的にアップロードするPHPのスクリプトです:

http://code.google.com/p/upload-git-diff-with-ftp/

3
Marco Antonio

FTPloyを試すことができます...

https://ftploy.com

「変更をGitHubまたはBitbucketにプッシュします。」

「サーバーへの変更の自動展開」

試用できる無料のプロジェクトが1つあります。私は現在、小さなphpウェブサイトに使用していますが、非常にうまく機能しています。このサイトにはいくつかバグがありますが、アクティブなプロジェクトなので、少なくとも作業中です。

2
Dave Thompson

https://www.deployhq.com/

1つのプロジェクトで無料で、非常にうまく機能します。

2
Dave Thompson

使用することができますDeployhq.comそれは魅力のように動作します、あなたがする必要がある唯一のことはあなたのリポジトリとFTPアカウントを設定することです。

現在、次のバージョン管理システムです。

Git、Subversion、Mercurial

リポジトリがホストされている場合

  • GitHub
  • Bitbucket
  • GitLab
  • コードベース

enter image description here

1
joelmez4

ここに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アクセスがあることを前提としています。

1
dodgy_coder

リモートとして追加し、プッシュすることができますが、単にコードをプッシュするだけでは不十分であり、作業ツリーとマージする必要があります。最も簡単な方法は、逆方向に進み、サーバー上に作業ツリーを作成し、そこにフェッチしてマージすることです。

0
d11wtq

これを理解するのに苦労しました。これをさまざまなソースから簡単に実現する方法を見つけました( git-ftpINSTALLgit-ftpUPLOADgit-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"

お役に立てれば。

0
Sdembla

http://linuxconfig.org/mount-remote-ftp-directory-Host-locally-into-linux-filesystem を使用すると、いつでもローカルディレクトリにftpをマウントできます。

その後、 this と同じ方法で使用できます。

0
PyRulez

コードを実稼働環境に配置する場合は、RPMパッケージなどの「インストーラー」を使用してコードをインストールすることをお勧めします。これにより、バージョンスタンプが付けられ、インストーラーパッケージを活用して製品コードの更新をサポートできるようになります。 Gitは実際の運用インストールをサポートするようには設計されていません。コード自体の変更を追跡することを目的としています。

いずれにしても、.RPM(またはEXEなど)をビルドすると、それを実動システムにFTPで送信して、他のパッケージと同様にインストールできます。

0
Justin Ethier