Jawaban:
Beberapa alat baru-baru ini ditambahkan ke wiki Git :
git-ftp oleh René Moser adalah skrip shell sederhana untuk melakukan FTP dengan cara Git. Gunakan git-ftp.sh untuk hanya mengunggah file yang dilacak Git ke server FTP, yang telah berubah sejak unggahan terakhir. Ini menghemat waktu dan bandwidth. Bahkan jika Anda bermain dengan cabang yang berbeda, git-ftp.sh tahu file mana yang berbeda. Tidak ada klien FTP biasa yang bisa melakukannya.
git-ftp oleh Edward Z. Yang adalah skrip sederhana yang ditulis dengan python untuk mengunggah file dalam repositori Git melalui FTP, hanya mentransfer file baru dan menghapus file lama.
Jika Anda lebih suka GUI, gunakan SourceTree, Anda dapat dengan mudah mengatur Tindakan Kustom yang menggunakan git-ftp yang disebutkan di atas. Deskripsi singkat tentang pengaturan (untuk Mac) di repositori Push a Git ke FTP
Saya telah menemukan PHPloy alat yang hebat untuk mengirim komit Git Anda ke server jauh melalui FTP. Ini bekerja dari baris perintah dan ditulis dalam PHP (dan bahkan mendeteksi perubahan dalam submodul).
https://github.com/banago/PHPloy
git commit ...
phploy -s staging
phploy -s production
Selesai!
(Penafian: setelah menggunakannya untuk sementara waktu, sekarang saya menyumbang beberapa tambalan dan perbaikan kode, menjadikannya kompatibel dengan Windows.)
Jika Anda menggunakan mac dan Transmit, saya akan merekomendasikan skrip git-tranmit berikut ( https://gist.github.com/379750 ). Ia menggunakan DockSend untuk mengirim hanya file yang terakhir diperbarui. Jika Anda tidak terbiasa dengan DockSend, periksa http://www.panic.com/blog/2010/11/15-secrets-of-transmit/ .
Mempersiapkan:
Sebenarnya bukan itu tujuan git, sebenarnya. Namun, jika sumber Anda adalah sesuatu yang tidak perlu dikompilasi atau diproses, katakanlah sebuah situs web yang seluruhnya terdiri dari file html dan javascript dan sejenisnya, Anda bisa memiliki klon repo di server web Anda dan menggunakan git pull
dari server untuk mempertahankannya -saat ini. Catatan, saya akan mengkonfigurasi server web Anda untuk menyembunyikan direktori git dan semacamnya. Dan itu baru permulaan dari masalah keamanan.
Jika Anda memiliki segala macam kompilasi atau pemrosesan, Anda harus mulai melihat Ant , Maven , BuildR , SBT , dll.
Anda bisa menggunakan Deployhq.com berfungsi seperti pesona, satu-satunya hal yang perlu Anda lakukan adalah mengatur repositori dan akun FTP Anda.
Mereka saat ini memiliki sistem kontrol versi berikut:
Git, Subversi, Mercurial.
Dengan repositori yang dihosting
Ini adalah skrip dalam PHP untuk mengunggah hampir secara otomatis git-diff ke server FTP:
Gratis untuk satu proyek dan bekerja sangat baik.
Ada skrip Ruby di sini - Ruby git-deploy via FTP atau SSH yang hanya mengunggah file yang diubah dalam repo git melalui FTP atau SSH.
Seperti disebutkan dalam jawaban lain, ini adalah skrip Python git-ftp.py yang melakukan hal serupa.
Dan ini adalah versi skrip shell dari git-ftp .
Ada juga proyek permata Ruby yang disebut git-deploy yang memungkinkan Anda mengatur penyebaran kustom melalui remote git menggunakangit push
perintah, dengan cara yang sama seperti layanan Heroku dan Azure. Untuk yang ini, Anda mungkin perlu menulis metode khusus untuk digunakan melalui FTP dan saya pikir itu mengasumsikan Anda memiliki akses SSH ke server produksi Anda.
Jika Anda memasukkan kode ke dalam produksi, saya sarankan menggunakan "pemasang" seperti paket RPM untuk menginstal kode Anda. Dengan cara itu akan dicap versi dan Anda akan dapat memanfaatkan paket installer untuk mendukung pembaruan ke kode produksi. Git tidak benar-benar dirancang untuk mendukung instalasi produksi, ini dimaksudkan untuk melacak perubahan pada kode itu sendiri.
Dalam keadaan apa pun, dengan .RPM (atau EXE atau apa pun) yang dibangun, Anda bisa langsung meng-FTP-nya ke sistem produksi dan menginstalnya seperti paket lainnya.
Anda selalu dapat mencoba me-mount ftp ke direktori lokal menggunakan http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem .
Maka Anda dapat menggunakannya dengan cara yang sama seperti ini .
Saya banyak berjuang untuk mencari tahu ini. Saya telah menemukan cara mudah untuk menyelesaikan ini dari berbagai sumber ( git-ftpINSTALL , git-ftpUPLOAD , git-ftpIssue , git-ftpPUSH ). Anda dapat membaca untuk referensi tetapi tidak perlu karena saya telah menyebutkan proses langkah demi langkah di bawah ini.
Hal pertama yang pertama: Instal git dan curl menggunakan brew di MAC OS
brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp
Jalankan perintah berikut:
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
Memperbarui menggunakan git
git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install
Mempersiapkan
git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword
Unggah semua file
git ftp init
Atau jika file sudah ada di sana
git ftp catchup
Bekerja dan gunakan
echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp push
Jika ada kesalahan: pathspec 'index.txt' tidak cocok dengan file apa pun yang dikenal git . Ini berarti file belum dipentaskan, jadi tambahkan file dan coba komit.
git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
Semoga ini membantu.
Anda dapat mencoba FTPloy ...
"Dorong perubahan ke GitHub atau Bitbucket."
"Menyebarkan Perubahan secara otomatis ke server Anda"
Anda memiliki satu proyek gratis untuk mencobanya. Saat ini saya menggunakan untuk situs web php kecil dan berfungsi dengan baik. Beberapa bug di situs tetapi merupakan proyek aktif sehingga setidaknya mereka bekerja di sana.
Lihat https://gitftp-deploy.com/ jika Anda menggunakan MacOS dan Anda suka GUI.
Ini adalah aplikasi kecil yang bagus yang menggunakan Git untuk melacak perubahan dan hanya mengunggah file yang diubah dengan FTP.
Sangat berguna jika Anda tidak suka membayar biaya bulanan untuk puluhan proyek kecil dengan tim kecil.