Saya mencari untuk menginstal server git untuk berbagi proyek dengan tim saya.
Anda dapat hanya menggunakan git.
Untuk memiliki git server, satu-satunya hal yang Anda perlukan di server jauh adalah git. Jika Anda tidak memerlukan izin berbutir halus (berbagi hanya dengan tim Anda menunjukkan kemungkinan itu) atau fitur tambahan, Anda tidak perlu gitolite, atau serupa.
Solusi tanpa pemasangan
Jika git tersedia di server jarak jauh, Anda dapat melakukan apa yang Anda minta sekarang, tanpa melakukan apa pun
ssh [user@]server
cd repos/are/here/
mkdir project.git
cd project.git
git init --bare
Secara lokal:
cd projects/are/here/project
git remote add origin [user@]server:repos/are/here/project.git
git push -u origin master
Menyiapkan git server itu mudah.
Jika Anda ingin melakukan hal-hal dengan pengguna git khusus, dokumen untuk menyiapkan server git pendek - karena itu sangat mudah dilakukan.
Singkatnya:
- Instal git
- Buat pengguna bernama git
- Tambahkan kunci publik Anda dan tim Anda ke
.ssh/authorized_keys
file pengguna git
- Ubah shell pengguna git menjadi
git-shell
- Buat repo di server
- mulai git pull / mendorong ke [email protected]
Satu- satunya perbedaan antara menggunakan pengguna git khusus dan tidak, adalah bahwa jika Anda mengatur pengguna git untuk menggunakannya git-shell
tidak akan membiarkan dirinya melakukan hal lain. Dalam hal bertindak sebagai server git, itu identik dengan solusi tanpa pemasangan
git push -u origin master
dan Anda dapat menggunakannyagit push
setelahnya. Saya lebih suka gito * karena menurut saya tidak ada yang mengakses repo harus peduli tentang jalur absolut yang ada di sistem remote./home/git/
url untuk mengakses proyekgit@server:project.git
.Perbedaan utama adalah bahwa gitosis sekarang sudah usang, dan tidak dipelihara secara aktif lagi.
Gitolite adalah fitur yang jauh lebih lengkap , dan baru saja merilis versi ketiganya .
Fitur yang paling menarik adalah Referensi Virtual (singkatnya VREF) yang memungkinkan Anda mendeklarasikan sebanyak mungkin kait pembaruan , yang memungkinkan Anda membatasi dorongan dengan:
dir / nama file :
Katakan Anda tidak ingin pengembang junior mendorong perubahan ke Makefile, karena itu cukup rumit:
- VREF/NAME/Makefile = @junior-devs
jumlah file baru :
Katakan Anda tidak ingin pengembang junior mendorong lebih dari 9 file per komit, karena Anda ingin mereka membuat komitmen kecil :
- VREF/COUNT/9/NEWFILES = @junior-devs
deteksi tipe file lanjutan :
Kadang-kadang file memiliki ekstensi standar (yang tidak bisa 'gitignore'd), tetapi sebenarnya dihasilkan secara otomatis. Inilah satu cara untuk menangkapnya:
- VREF/FILETYPE/AUTOGENERATED = @all
Lihat
src/VREF/FILETETYPE
untuk melihat mekanisme pendeteksian.memeriksa email penulis :
Beberapa orang ingin memastikan bahwa "Anda hanya bisa mendorong komitmen Anda sendiri".
- VREF/EMAIL-CHECK = @all
Lihat
src/VREF/EMAIL-CHECK
.voting pada komit :
Implementasi dasar pemungutan suara pada komit mengherankan mudah:
- VREF/EMAIL-CHECK = @all
.# 2 votes required to push master, but trusted devs don't have this restriction
# RW+ VREF/VOTES/2/master = @trusted-devs
# - VREF/VOTES/2/master = @devs
Lihat
src/VREF/VOTES
implementasinya.dan seterusnya...
sumber
Hanya sidenote. Anda juga dapat menggunakan Gerrit untuk kebutuhan Anda:
Ulasan Kode Gerrit
Pertama, tampaknya Gerrit digunakan untuk tinjauan Kode, tetapi Anda benar-benar dapat menggunakannya juga untuk mengelola pengguna dan memberi mereka izin yang jelas. Anda dapat mem - bypass review kode (melalui kontrol akses ) dan menggunakannya hanya untuk mengelola proyek dan ssh-key. Gerrit memiliki mekanisme kontrol akses yang sangat kuat:
Kontrol Akses Gerrit
Anda dapat membatasi untuk mendorong cabang, tag, atau apa pun yang dapat Anda bayangkan yang ditentukan dalam dokumen kontrol akses.
sumber
Untuk solusi yang lebih cepat dan kotor, gunakan saja daemon git dan lakukan peer-to-peer. Inilah artikel tentang melakukan hal itu.
Sunting: Saya tahu ini tidak sepenuhnya menjawab pertanyaan OP. Saya menempatkan ini di sini terutama untuk mereka, seperti saya, yang menemukan ini sambil mencari cara turun dan kotor untuk berbagi kode sampai akun github perusahaan diatur.
sumber
Saya telah bermain-main untuk sementara waktu untuk mendapatkan server git bekerja dengan akses LDAP, kontrol akses berbutir halus dll ... Menemukan wahyu: Gunakan Gitlab :
jika Anda menginginkan metode pemasangan cepat dan cepat: gunakan penginstal bitnami
sumber