Saya memiliki repositori copy pekerjaan yang telah saya kerjakan tidak ada masalah; asal repositori ini ada di GitHub.
Saya ingin membuat repositori copy pekerjaan saya tersedia sebagai asal untuk mesin build saya (VM pada host fisik lain), sehingga komitmen yang saya buat pada copy pekerjaan saya dapat dibangun dan diuji pada mesin build tanpa harus melalui GitHub dulu. Saya sudah memiliki build untuk repositori GitHub, tapi saya ingin ini menjadi repositori / build "emas"; yaitu, jika ada sesuatu yang terjadi di sana, build terhadap GitHub harus dijamin berhasil.
Saya telah melihat dokumentasi di URL Git, dan melihat bahwa ada opsi untuk menggunakan URL dalam formulir git://host.xz[:port]/path/to/repo.git/
(lihat, misalnya, dokumentasi git-clone ). Saya ingin melakukan ini dengan cara yang sesederhana mungkin, dengan konfigurasi minimum: Saya tidak ingin menyiapkan daemon SSH atau server web hanya untuk mempublikasikan ini ke mesin build saya.
Saya menjalankan Windows 7 x64 RC, saya menginstal MSysGit dan TortoiseGit, dan saya telah membuka port default Git (9814) di firewall. Anggaplah repo copy pekerjaan ada di D:\Visual Studio Projects\MyGitRepo
, dan nama host-nya adalah devbox
. Mesin pembuatnya adalah Windows Server 2008 x64. Saya telah mencoba perintah berikut di mesin build, dengan output terkait:
D:\Integration>git clone "git://devbox/D:\Visual Studio Projects\MyGitRepo"
Initialized empty Git repository in D:/Integration/MyGitRepo/.git/
devbox[0: 192.168.0.2]: errno=No error
fatal: unable to connect a socket (No error)
Apakah saya melewatkan sesuatu?
sumber
Jawaban:
Ada lima kemungkinan untuk menyiapkan repositori untuk ditarik dari:
git clone /path/to/repo
ataugit clone file://path/to/repo
. Paling tidak berhasil jika Anda memiliki filesystem jaringan, tetapi tidak terlalu efisien dalam menggunakan jaringan. (Ini hampir persis solusi yang diusulkan oleh Joakim Elofsson )git clone http://example.com/repo
. Anda memerlukan server web apa pun , dan Anda juga perlu menjalankan (mungkin secara otomatis, dari sebuah hook) git-update-server-info untuk menghasilkan informasi yang diperlukan untuk mengambil / menarik melalui protokol "bodoh".git clone ssh://example.com/srv/git/repo
ataugit clone example.com:/srv/git/repo
. Anda perlu mengatur server SSH (daemon SSH), dan telah menginstal SSH pada klien (misalnya PuTTY pada MS Windows).git clone git://example.com/repo
. Anda perlu menjalankan git-daemon di server; lihat dokumentasi untuk detailnya (Anda dapat menjalankannya sebagai proses mandiri hanya untuk mengambil, tidak perlu menjalankan sebagai layanan). git-daemon adalah bagian dari git.git clone file.bndl
(jika klon tidak berfungsi, Anda dapat melakukan "git init", "git remote add "dan" git fetch ").Apa yang Anda lewatkan dalam contoh Anda mungkin menjalankan git-daemon di server. Itu, atau salah konfigurasi git-daemon.
Sayangnya saya tidak dapat membantu Anda menjalankan git-daemon sebagai layanan di MS Windows. Tidak ada pengumuman untuk versi terakhir msysGit tentang git-daemon yang tidak berfungsi.
sumber
Selain jawaban Jakub Narębski, ada cara lain yang lebih sesuai dengan pertanyaan awal Anda. Anda dapat mengkloning dari github seperti yang biasa Anda lakukan, lalu ketika Anda ingin melakukan satu kali penarikan dari repo lokal Anda, lakukan ini:
(alih-alih master, Anda dapat memasukkan nama cabang apa pun.)
sumber
..
di <path / to / repo> tampaknya tidak berfungsi; gunakan jalur lengkap sebagai gantinya.Rute ssh berfungsi dengan baik tetapi membutuhkan server ssh jarak jauh. Jika Anda memiliki platform Windows, maka Cygwin menyediakan server ssh yang berfungsi dengan Git, tetapi secara manual meningkatkan Git jika menggunakan Cygwin Git (saya menulis beberapa petunjuk di http://alecthegeek.wordpress.com/2009/01/21/top-tip -upgrade-git-on-cygwin / ).
sumber
Saya baru-baru ini mengubah salah satu proyek git saya untuk mereplikasi dirinya sendiri ke server HTTP menggunakan sitecopy untuk melakukan unggahan file yang sebenarnya.
Ini cukup mudah, cukup gunakan
git update-server-info
lalu mirror direktori .git ke direktori yang dapat diakses http di server Anda. Saya menggunakan 'project.git', yang cukup umum.Git pull dari http: // site / project-git berfungsi seperti juara, dan saya tidak perlu memiliki apa pun di server kecuali akses FTP, meskipun sitecopy juga mendukung webdav.
Saya tidak merekomendasikan penggunaan sitecopy, karena tidak membuat banyak mesin sinkron dengan baik. Untuk proyek saya, repositori HTTP hanya dapat dibaca, dan pembaruan emas hanya berasal dari satu mesin, sehingga berfungsi dengan cukup baik.
sumber
Jika Anda memiliki jalan seperti
dan Anda
git init
sudah melakukannya , jadi Anda juga memiliki folderAnda sekarang membuat folder baru
Masuk ke folder itu dan jalankan
git clone --bare ..\Project
( telanjang itu penting),kembali ke
C:\Project\
folder Anda dan lakukan agit remote add-url local ..\.git\Project
.Sekarang Anda lakukan saja
git add -A
,git commit -m "HelloWorld"
dangit push local master
.Anda dapat berbagi
Project
folder, menghubungkannyaZ:
dan melakukangit clone Z:\Project
- Anda dapat menggunakan sekaranggit pull origin master
dangit push origin master
untuk mendorong / menarik perubahan dari satu komputer ke komputer lain.sumber
Jika remote host Anda berada di jaringan windows yang sama, yaitu Anda dapat mengaksesnya sebagai \ remotehost, maka Anda dapat memetakan drive jaringan di explorer, katakanlah z: -> \ remotehost \ repodir, setelah itu Anda dapat menggunakan 'git clone / z / myproject 'untuk menggandakan proyek
sumber