Saya memiliki beberapa situs yang semuanya dihosting di layanan hosting web yang sama di bawah shared hosting. Host web saya mendukung Git dan saya memiliki akses SSH, dan saya juga memiliki setup Git di laptop saya juga.
Saya ingin membuatnya sehingga ketika saya melakukan "git push origin master", itu akan secara otomatis memperbarui file di server web saya, dan juga menyimpan cadangan file komit sebelumnya sehingga saya dapat dengan mudah mengembalikan jika saya mau. Apakah ini mungkin?
Jawaban:
Ini dirangkum dari Menggunakan Git untuk mengelola situs web
Kunci untuk proses ini adalah kait sisi server 'pasca-menerima' (lebih lanjut tentang kait git di Menyesuaikan Git - Kait Git dan halaman manual githooks ). Hook ini berjalan setelah server menerima semua data.
Setelah server menerima data, ia menjalankan
git checkout -f
opsi -f akan memaksa checkout ke kepala bahkan jika ada perbedaan lokal.Masukkan itu di
hooks/
direktori sebagaipost-receive
dan dapat dieksekusi. Tentu saja, lintasan berubah ke tempat Anda memiliki file server web Anda (penggunaanGIT_WORK_TREE
set variabel lingkungan sehingga Anda tidak perlu menyulap file titik dan pengaturan git di server).Untuk memutar kembali, kita harus menandai setiap rilis (ini dapat dilakukan sebagai bagian dari pengait pasca-komit juga). Dengan menandai rilis, orang dapat dengan mudah mengidentifikasi tempat untuk rollback, meskipun itu kemungkinan melibatkan masuk ke server dan memeriksa tag itu.
sumber
post-receive
hook, yang sebenarnya hanya sebuah skrip di mana Anda dapat memasukkan apa pun yang Anda inginkan.Cara paling sederhana untuk memperbarui pohon kerja repositori yang Anda dorong adalah pengaturan
git config receive.denyCurrentBranch updateInstead
di sisi penerima. Lihat https://git-scm.com/docs/git-config/#git-config-receivedenyCurrentBranchJawaban Ryan dengan kait komit lebih baik karena memungkinkan memeriksa ke beberapa lokasi yang berbeda (Anda mungkin tidak ingin memiliki .git di folder web Anda). Tetapi pada tingkat ini, mungkin ide yang baik untuk menggunakan beberapa alat penyebaran yang ada, seperti kata sleske dalam komentar.
sumber