0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Git】git-ftpを使ってFTPアップロード

Last updated at Posted at 2022-02-24

はじめに

普段、FTPでサーバーにファイルをアップロードする時は「FileZilla」で手動でアップロードを行なっているのだが、アップロードするディレクトリやファイルを間違えたり、繋いでるサーバーがそもそも間違えていたり、ヒヤッとする場面が少なからず定期的に起きてしまう。(ただ私の不注意なだけなのだが...)

そこで、ある案件の今後の更新の運用体制を整理するにあたり、これからはFTPでのアップロードは手動ではなく「Git-ftp」を使おう!となったので、初回設定から実際の使用方法まで、自分の復習も兼ねて記事を書いてみる。

git-ftpの導入手順

Mac
※ homebrew 導入済
※ GitLabでファイル管理中

ターミナルで以下を実行

$ brew install git-ftp 

git-ftp 各種設定

Gitで管理しているフォルダ内へ移動し下記を設定

$ git config git-ftp.syncroot 手元ファイルのルートディレクトリ
$ git config git-ftp.url ftp://ホスト名/該当するフォルダまでのパス
$ git config git-ftp.user ユーザ名
$ git config git-ftp.password パスワード

上記実行後、.git/.configに以下のように設定が反映されてたらOK

[git-ftp]
	syncroot = アップロードするルートディレクトり
	url = ftp://ホスト名/該当するフォルダまでのパス
	user = ユーザ名
	password = パスワード

初回デプロイ

*ファイルをまだアップロードしていない場合
以下のコマンドで全てのファイルがアップロードされる

 $ git ftp init -v

*ファイルはすでにアップロード済みの場合
git-ftp.logファイルだけアップロードされる

$ git ftp catchup

それ以降

変更点をコミットした後に以下を実行

$ git ftp push

差分を確認してpush

  1. サーバー上のgit-ftp.logを開きコミット識別番号をコピペ
  2. 以下のコマンドを叩き、サーバ上のファイルとリポジトリとの差分を確認する。
  3. 差分、変更点に問題なければpush
$ git diff --name-only HEAD 616715abcdefgabcdefgabcdefgabcdefg
$ git ftp push

更新手順

  1. 変更点をいつも通りコミットする
  2. git ftp pushでプッシュ
  3. 実際の反映を確認

参考

https://qiita.com/sayama0402/items/d3d11bbc6b09b9b78527
https://blog.members.co.jp/article/40241

終わりに

FileZillaなどのアプリを使ってのアップロードの方が視認性あって分かりやすい!となりそうな気もするが、慣れたら確実にgit-ftpの方が楽だろうなあ、と感じました。
また、ファイル転送時の安全性と、各環境ごとの差分が生まれにくいメリットは大きいなあ。
参考URLの内容とほぼ差異はないですが自学の為ということで。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?