Cara mendorong perubahan dari server web penyebaran langsung kembali ke repositori git

2

Saya bekerja di lingkungan di mana para pengembang bekerja secara langsung dengan skrip dan file gambar pada server web penyebaran langsung. Ini menakutkan dan telah menyebabkan beberapa, meskipun sejauh ini hanya sedikit, masalah. Kontrol sumber tidak digunakan sama sekali untuk perubahan ini, perubahan dilakukan pada server langsung dan hanya pada server hidup. Saya tidak tahu cara membuatnya sehingga perubahan yang dibuat pengembang lain di server web langsung disimpan / digabung ketika saya menyebarkan perubahan saya ke server web langsung. Masalah ini tampaknya akan memperburuk penggunaan kontrol sumber daripada yang lebih baik.

Saya secara pribadi mengatur server git dan svn, dan menggunakan kontrol versi dengan git dan svn selama beberapa tahun terakhir di banyak aplikasi desktop dan proyek aplikasi seluler. Tapi ini membuat saya bingung.

tukang waktu
sumber
Ketika para pengembang melakukan hal-hal secara langsung, mereka perlu melakukan perbaikan mereka ke cabang produksi secara langsung, pada akhirnya menggabungkan atau mengubah dari hal-hal baru yang terjadi di hulu. Apakah itu pilihan?
slhck
Tidak, saya tidak dalam posisi berwenang untuk menginstruksikan atau membuat permintaan para dev lainnya. Omong-omong, kontrol sumber tidak digunakan sama sekali untuk perubahan ini; perubahan dibuat di server langsung dan hanya di server hidup. Saya telah memperbarui pertanyaan saya untuk mencerminkan hal ini.
timeSmith
Bisakah Anda, selama penyebaran, pertama-tama melakukan perubahan lokal pada siaran langsung dan kemudian menggabungkannya dengan cabang produksi? Ini cukup berantakan untuk setiap penyebaran, tapi saya tidak melihat cara lain (meskipun tidak berpengalaman dengan Git ..)
slhck
Saya tidak tahu bagaimana melakukannya. Saya akan melakukannya jika saya bisa. Hal terbaik yang saya pikirkan adalah menyalin semua file yang relevan dari server ke cek lokal yang saya simpan untuk tujuan itu, melakukan dari check out itu, tarik ke cabang check out saya, menggabungkan, komit, dan salin hasilnya kembali ke server. Tapi itu sepertinya benar-benar ... well, saya berharap ada cara yang lebih baik.
timeSmith

Jawaban:

1

Praktik terbaik adalah menggunakan git sebagai bagian dari cara Anda menggunakan. Sedemikian rupa sehingga Anda akan menemukan jawaban yang relatif sedikit tentang penggunaan git lainnya.

Yang mengatakan, git dapat digunakan dengan banyak cara. Jika penyebaran Anda ke server langsung, dan bukan dari git, maka masih ada nilai dalam melakukan perubahan ke git, sehingga Anda setidaknya bisa melihat apa yang berubah kapan, dan mengembalikannya. Apa yang Anda akan kehilangan adalah komentar yang masuk akal dan pengelompokan perubahan menjadi komit sehingga Anda dapat melihat di mana Anda ingin kembali dengan cepat, dan Anda dapat melihat perubahan apa dalam file yang berbeda yang cenderung saling bergantung.

Sangat mungkin untuk membiarkan kode live Anda menjadi direktori git yang berfungsi, dan Anda dapat memiliki pembaruan otomatis dari repositori yang berjalan sesering mungkin dari cron.

etckeeper ( https://github.com/joeyh/etckeeper ) dalam beberapa hal sebanding. Ini dirancang untuk merekam perubahan dalam direktori server / etc, sebagai lawan dari situs web, tetapi sebaliknya sangat mirip dengan apa yang ada dalam pikiran Anda. Ini mungkin akan memiliki beberapa ide berguna yang terselip di kait komit dan sejenisnya, tetapi juga rumit dengan mencakup beberapa sistem VCS yang berbeda, dan kompatibilitas dengan beberapa sistem operasi.

mc0e
sumber