Apakah saat ini ada cara untuk menghosting repositori Git bersama di Windows? Saya memahami bahwa Anda dapat mengkonfigurasi layanan Git di Linux dengan:
git daemon
Apakah ada opsi Windows asli, selain berbagi folder, untuk menghosting layanan Git?
EDIT: Saat ini saya menggunakan instalasi cygwin dari git untuk menyimpan dan bekerja dengan repositori git di Windows, tetapi saya ingin mengambil langkah selanjutnya untuk menghosting repositori dengan layanan yang dapat menyediakan akses ke orang lain.
git daemon
. : \Jawaban:
Berikut adalah beberapa langkah yang dapat Anda ikuti untuk menjalankan git daemon di bawah Windows:
(Prasyarat: Instalasi Cygwin default dan klien git yang mendukung git daemon)
Langkah 1 : Buka shell bash
Langkah 2 : Di direktori / cygdrive / c / cygwin64 / usr / local / bin /, buat file bernama "gitd" dengan konten berikut:
Langkah 3 : Jalankan perintah cygrunsrv berikut dari prompt yang ditinggikan (yaitu sebagai admin) untuk menginstal skrip sebagai layanan (Catatan: anggap Cygwin diinstal di C: \ cygwin64):
Langkah 4 : Jalankan perintah berikut untuk memulai layanan:
cygrunsrv --start gitd
Kamu selesai. Jika Anda ingin mengujinya, berikut ini skrip cepat dan kotor yang menunjukkan bahwa Anda dapat mendorong protokol git ke komputer lokal Anda:
sumber
GitStack mungkin pilihan terbaik Anda. Saat ini gratis (untuk maksimal 2 pengguna)
dan open sourcepada saat penulisan.sumber
Berikut server git khusus untuk windows: https://github.com/jakubgarfield/Bonobo-Git-Server/wiki
sumber
git update-server-info
) setelah push HTTP, dan logika ini tidak diterapkan oleh pustaka Git (GitSharp) mereka. Saya ragu ini akan mencapai kondisi kerja yang nyata dalam waktu dekat.Jika Anda bekerja di lingkungan Windows, apakah Anda sudah mempertimbangkan Mercurial ? Ini adalah sistem kontrol versi terdistribusi seperti Git, tetapi terintegrasi jauh lebih rapi dan mudah dengan Windows.
sumber
Menginstal CygWin berlebihan, baca tutorial ini tentang cara melakukannya dengan lebih cepat dan asli:
http://code.google.com/p/tortoisegit/wiki/HOWTO_CentralServerWindowsXP
sumber
Jika Anda mendapatkan kesalahan
cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062: The service has not been started.
setelah menjalankan perintah:itu berarti Anda tidak membuat folder 'jalur dasar'.
Membuat folder '/ git' dan menjalankan kembali perintah akan memperbaikinya.
sumber
/git
izin NTFS Anda tidak mengizinkan akses baca / tulis akun layanan (SISTEM).Saat ini saya menggunakan daemon ssh cygwin di Windows untuk melayani dan mengizinkan akses jarak jauh ke repo saya. Ini berfungsi dengan cukup baik, saya memiliki kendali penuh atas siapa yang mengakses repo saya dengan sertifikat ssh mereka, dan kinerjanya menyala, bahkan melalui tautan WAN dan VPN jarak jauh.
Solusi lain adalah dengan menggunakan Gitosis . Ini adalah alat yang membuat repo hosting jauh lebih mudah.
sumber
Anda tidak perlu menghosting layanan, Anda juga dapat membuat repositori bersama di drive bersama. Buat saja repositori kosong. Anda dapat mengkloning repo yang ada menjadi repo bersama menggunakan: "git clone --bare --shared [source] [dest]". Anda juga bisa masuk ke repositori baru menggunakan "git init --bare --shared = all".
Henk
sumber
Sudahkah Anda mempertimbangkan untuk menggunakan lapisan cygwin? Lihat tautan ini .
sumber
Sekarang msysGit mendukung git daemon! Ini berfungsi dengan baik (setidaknya untuk saya). Saya akan mencoba membuatnya berjalan sebagai layanan ...
sumber
Manajer SCM
sumber
Di Windows, Anda juga dapat melayani repositori Git dengan Apache melalui HTTP atau HTTPS, menggunakan ekstensi DAV.
Jalur repositori Git kemudian dapat dilindungi dengan pemeriksaan otentikasi Apache seperti membatasi ke alamat IP tertentu atau otentikasi jenis htpasswd / htdigest.
Batasan penggunaan otentikasi htpasswd / htdigest adalah bahwa nama pengguna: kata sandi diteruskan di URL Git yang diminta, jadi lebih baik membatasi akses ke URL Git ke alamat IP tertentu.
Edit: Catatan, Anda dapat membiarkan kata sandi keluar dari URL Git dan Git akan meminta Anda memasukkan kata sandi saat push dan fetch / pull sebagai gantinya.
Menggunakan HTTPS berarti semua data dienkripsi saat ditransfer.
Cukup mudah untuk disiapkan, dan berfungsi.
Contoh berikut menunjukkan kombinasi kontrol akses dengan alamat IP dan pengguna: kata sandi melalui HTTP standar.
Contoh Apache Virtualhost
Contoh .git / config
sumber
Di tempat kerja saya menggunakan GitBlit GO yang diinstal di Windows Server. Bekerja dengan sempurna dan terintegrasi dengan baik dengan ActiveDirectory untuk otentikasi dan otorisasi pengguna. Ini juga gratis dan open source (berlisensi Apache)
Beranda GitBlit
Hanya akses HTTP (S) yang didukung, tidak ada SSH, tetapi di bawah Windows Anda tidak memerlukan apa-apa lagi.
sumber
ini adalah jawaban tahun 2015 untuk pertanyaan yang berusia lebih dari 7 tahun.
Untuk pembayaran satu kali $ 10, dari https://bitbucket.org/product/server , seseorang dapat membeli lisensi Windows 64-bit hingga untuk 10 pengguna .
Rupanya versi 32-bit hanya tersedia melalui arsipnya.
Server Bitbucket sebelumnya dikenal sebagai Stash .
Harap dicatat bahwa saya belum mencoba versi ini tetapi $ 10 sepertinya bagus; di sini saya membaca bahwa Atlassian memberikan $ 10 untuk amal. FWIW
sumber
Menurut saya apa yang dikatakan Henk adalah Anda dapat membuat repositori bersama di drive dan kemudian menyalinnya ke beberapa lokasi umum yang Anda berdua miliki aksesnya. Jika ada beberapa server perusahaan atau sesuatu yang Anda berdua memiliki akses ssh, Anda dapat meletakkan repositori di suatu tempat di mana Anda dapat SCP kembali ke komputer Anda, dan kemudian menariknya. Saya melakukan ini untuk diri saya sendiri sebentar, karena saya memiliki dua komputer. Ini merepotkan, tetapi berhasil.
sumber
Untuk Windows 7 x64 dan Cygwin 1.7.9 saya perlu menggunakan / usr / bin / gitd sebagai argumen args dari cygrunsrv
Selain itu, saya perlu menjalankan bash sebagai Administrator untuk menginstal layanan.
sumber