Saya mencoba memutuskan apakah pindah ke VCS masuk akal bagi saya. Saya seorang pengembang web tunggal di sebuah organisasi kecil (5 orang). Saya memikirkan VCS (Git) karena alasan ini: kontrol versi, cadangan di luar kantor, repositori kode terpusat (dapat diakses dari rumah).
Saat ini saya bekerja pada server hidup secara umum. I FTP masuk, lakukan pengeditan dan simpan, kemudian unggah kembali dan segarkan. Pengeditan biasanya untuk file tema / plugin untuk CMSes (mis. Concrete5 atau Wordpress). Ini berfungsi dengan baik tetapi tidak menyediakan cadangan dan tidak ada kontrol versi.
Saya bertanya-tanya bagaimana cara terbaik untuk mengintegrasikan VCS ke dalam prosedur ini. Saya akan membayangkan menyiapkan server Git di server web perusahaan, tetapi saya tidak jelas bagaimana cara mendorong perubahan ke akun klien (biasanya VPS di server yang sama) - saat ini saya cukup masuk ke SFTP dengan rinciannya dan membuat perubahan secara langsung.
Saya juga tidak yakin apa yang akan mewakili repositori - apakah setiap situs web klien akan mendapatkan repositori mereka sendiri?
Wawasan atau pengalaman apa pun akan sangat membantu. Saya rasa saya tidak perlu kekuatan penuh Git dengan cara apa pun, tetapi kontrol versi dasar dan akses cloud de facto akan sangat berguna.
EDIT: Saya mempersempitnya ke dua opsi yang tampaknya paling masuk akal. Yang pertama didasarkan pada jawaban ZweiBlumen , di mana pengeditan dilakukan pada server langsung dan dilakukan dari sana ke server Git (eksternal). Ini memiliki keuntungan bahwa alur kerja saya tidak akan banyak berubah (ada langkah ekstra untuk membuat komitmen, tetapi sebaliknya identik).
Opsi kedua adalah bekerja secara lokal menggunakan XAMPP, lalu melakukan perubahan dari mesin lokal. Hanya ketika situs ditayangkan saya mengunggah artikel jadi ke server web dari mesin lokal (segera setelah komit terakhir ke Git). Secara teori ini tampaknya oke, tetapi jika situs sesudahnya memerlukan perbaikan dan saya membuatnya di server langsung (seperti biasanya) maka saya harus menyalin secara manual atas file yang diubah di repo lokal saya, kemudian melakukan perubahan itu ke Git server. Ini tampaknya terlalu rumit dan mungkin terlalu jauh dari alur kerja saya saat ini.
Saya pikir dengan keseimbangan saya akan memberikan opsi # 1, dan lihat bagaimana saya maju.
sumber
Jawaban:
Apa yang saya lakukan (dengan Subversion, tetapi akan bekerja dengan Git juga) adalah mengkomit semuanya ke satu repositori Subversion, tetapi jelas dibagi menjadi proyek, cabang, tag yang diperlukan. Saya kemudian checkout repositori ini ke server langsung. Jadi ketika saya membuat perubahan pada mesin dev saya dan melakukan ini ke repositori, sering kali hanya merupakan kasus memperbarui salinan diperiksa pada server langsung untuk membuat perubahan langsung. Bonus tambahan adalah bahwa jika saya perlu melakukan perbaikan cepat pada server langsung saya komit ini ke repositori dari server dan memperbarui copy pekerjaan di mesin dev saya.
Saya yakin ada cara lain untuk mengelola ini, tetapi saya menemukan ini cukup mudah dan saya berada dalam situasi yang sama persis seperti Anda: pengembang tunggal dalam organisasi kecil (4 orang).
sumber
Agak mudah untuk membuat
post-update
pengait , yang secara otomatis memperbarui (mengekspor dengangit archive
lebih disukai karena alasan keamanan) direktori data server web saat Anda mendorong ke cabang tertentu.Jadi punya repositori git yang diatur di suatu tempat (untuk alasan keamanan saya akan meletakkannya di server yang berbeda dari web) dengan kait seperti itu. Anda tentu saja akan memerlukan server uji untuk menguji perubahan yang lebih besar, yang mungkin pada mesin lokal Anda atau diperbarui dengan mendorong ke cabang yang berbeda. Dalam kedua kasus tersebut, Anda dapat mem-bypassnya untuk pengejaan sepele dan perbaikan CSS dengan hanya melakukan commit dan push.
sumber
Saya akan mengikuti langkah-langkah ini:
Siapkan satu repo per situs web, agar tidak saling mengacaukan. Cabang terpisah memungkinkan Anda untuk menghindari penguncian versi "baik" saat ini ke apa yang sedang Anda kerjakan, yang mungkin atau mungkin tidak berfungsi.
sumber