Dorong perubahan git ke drive jaringan bersama

90

Bagaimana sebuah tim yang terdiri dari empat orang menggunakan Git (khususnya Github untuk Windows ) untuk mendorong perubahan lokal ke drive jaringan bersama?

Saat ini (tanpa Git) kami harus menyalin file dari drive jaringan ke mesin lokal kami, mengedit file, dan kemudian mengunggahnya kembali ke drive jaringan bersama. Ini adalah proses yang melelahkan yang dapat menyebabkan banyak kesalahan, tetapi tampaknya Git dapat membantu kami.

Bisakah kita menginstal Git di drive bersama dan pergi dari sana?

pengguna1549303
sumber

Jawaban:

123

Tidak yakin apakah Anda menemukan sesuatu yang sesuai untuk Anda atau tidak, tetapi saya memiliki artikel tentang cara melakukannya pada drive jaringan windows:

http://tony.halcyonlane.com/blog/2011/09/22/Using-git-at-work-on-a-Windows-network-drive/

Dari perubahan prompt cmd ke drive yang dipetakan.

$ cd g:

Kemudian cd ke dalam tempat penyimpanan git Anda segera.

$ cd skrip

Kemudian buat repositori git kosong. Jika Anda tidak menggunakan opsi --bare, Anda akan mengalami masalah jadi jangan tinggalkan itu.

$ git init --bare

Sekarang jika Anda belum memiliki repositori git lokal, Anda dapat mengkloning repositori baru Anda di mana pun Anda suka dengan menavigasi kembali ke drive lokal Anda.

$ c:

$ cd pekerjaan / skrip

File klon $ git: // g: \ scripts

Saat Anda mengkloning, Anda secara otomatis mendapatkan remote yang disebut "asal" dan Anda dapat mendorong ke server untuk menjaga keamanan setiap saat Anda membuat perubahan secara lokal.

$ git push asal master

Jika Anda sudah memiliki repositori git dan Anda hanya ingin mendorong ke drive bersama maka Anda dapat melakukannya dari dalam direktori git lokal Anda.

$ git remote tambahkan file asal: // g: \ scripts

$ git push asal master

Tony Eichelberger
sumber
1
Terima kasih - Saya melakukan ini untuk proyek pribadi di jaringan rumah saya.
Martin Snyder
Saya mengikuti langkah-langkah ini tetapi mendapatkan kesalahan berikut ketika saya menjalankan kesalahan master git push origin: tidak dapat menelurkan sh: Tidak ada file atau direktori yang fatal: tidak dapat bercabang
NickStees
Terima kasih. Butuh waktu lama untuk menemukan jawaban ini
Simon Huckett
Bagi siapa saja yang belum memetakan drive bersama, ada pushd (dan popd) untuk membuat drive sementara virtual untuk dinavigasi ( lihat tautan )
LoJo
Masalah apa yang akan Anda hadapi jika Anda tidak menggunakan --bare? Saya sudah memiliki repositori non-kosong di drive jaringan dan ingin menggunakannya sebagai remote.
Fractaly
24

Tim kami saat ini melakukan hal ini. Setiap pengembang memiliki yang berikut:

  1. Git diinstal di mesin lokal mereka
  2. Akses ke drive bersama pribadi mereka ( L:)
  3. Akses ke drive grup bersama ( V:)

Kami memiliki repositori "jarak jauh" (diatur menggunakan init -bare) di V:drive, dan setiap orang memiliki tiruan di L:drive pribadi mereka . Semua perubahan dilakukan pada L:drive dan didorong ke V:drive, yang kemudian ditarik ke bawah oleh pengembang lain ke repositori pribadi masing-masing di L:drive mereka . Ini berfungsi tanpa masalah, dan mengurangi kebutuhan akan server Git.

eykanal
sumber
Oke bagus! Apakah saya perlu membuat repo lokal terlebih dahulu, lalu menyiapkan remote dari repo tersebut di drive bersama?
pengguna1549303
1
@ user1549303 - Begitulah cara kami melakukannya. Anda dapat membuat repo lokal (repo L:drive kami ) menggunakan git init, dan kemudian membuat remote ( v:drive satu kami) menggunakan git clone --bare(atau a git init --bare, dan kemudian mendorong dari L:).
eykanal
@eykanal - Tim saya saat ini menggunakan pustaka kendali sumber kuno yang mengerikan dan kami ingin beralih ke git. Satu hal yang diizinkan oleh perpustakaan kami saat ini adalah melihat siapa yang telah memeriksa file tetapi lupa memeriksa perubahannya. Dengan git, semua repositori bersifat lokal, jadi bagaimana Anda bisa tahu jika seseorang lupa mendorong ke "v:"?
Kevin Buchan
3
@Kevin Buchan - Saya sarankan Anda memposting komentar Anda sebagai pertanyaan baru.
eykanal
1
Bagaimana reaksi Git ketika dua pengembang mencoba untuk mendorong ke repositori bersama yang sama (katakanlah V :) pada waktu yang sama? Apakah Anda pernah mengalami masalah dengan operasi push secara bersamaan?
Jordi
2

Anda dapat menambahkan pengarah jarak jauh lainnya ke drive jaringan Anda (git remote)

Kemudian Anda dapat mendorong tarikan seperti yang Anda lakukan dengan github

bluesman
sumber