Bagaimana cara mengatur GIT Server sendiri? Apa repo telanjang / non-telanjang?

10

Saya mencoba menyiapkan server GIT sederhana. Saya telah menginstal Ubuntu pada PC Virtual (Virtual Box). Saya memasang GIT, membuat repo dll

git init 
git add .
git commit "..."

Kemudian pada Windows, saya melakukan sesuatu seperti di bawah ini (pada cygwin)

git clone [email protected]:proj1

Mencoba melakukan perubahan

git commit -am "..."

tapi punya sesuatu seperti

lihat gambar

Saya kira saya salah setup GIT? Saya membaca ini ada hubungannya dengan repo telanjang / non-telanjang? Haruskah saya menggunakan telanjang setiap saat? Saya mencoba

git checkout --bare [email protected]:proj1 

tapi masuk proj1.git, file aneh / folder seperti (KEPALA dll) dalam. Apa cara yang tepat untuk mengatur GIT?

juga bisakah seseorang menjelaskan repo telanjang / non-telanjang, saya agak bingung, dengan GitHub, tidak ada hal seperti itu!

DIPERBARUI 28 Apr 2011 18:00 UTC + 8

Saya mencoba mengikuti http://www.youtube.com/watch?v=1gNFrPNF9-Y dan di Ubuntu (Server) melakukannya

git init --bare

kemudian pada Windows (Client / Cygwin) lakukan

git init 
// added readme.txt 
git add .
git commit -m "..."
git remote add origin master [email protected]:proj2
git push origin master

sepertinya tidak ada kesalahan. Tetapi di Ubuntu, saya tidak melihat di mana file saya? Saya mencari branches/1 th ada n di sana?

JM di Tempat Kerja
sumber

Jawaban:

9

Repositori "normal" adalah direktori yang berisi repositori aktual, dan salinan yang berfungsi. Repositori yang sebenarnya terletak di subdirektori tersembunyi dengan nama .git. Salinan yang berfungsi adalah file dan direktori tempat Anda bekerja.

Repositori "telanjang" hanyalah isi .gitdirektori, tanpa copy pekerjaan.

Anda tidak dapat bekerja di repositori kosong. Pertama-tama Anda harus mengkloning repositori kosong ke repositori normal, kemudian bekerja pada klon tersebut.

Dalam upaya pertama Anda, Anda membuat repositori "normal". Lalu Anda mengkloning itu. Kemudian Anda mencoba mendorong kembali ke repositori normal. Lalu Anda mendapat peringatan. Anda tidak boleh mendorong ke repositori normal. Git memperingatkan Anda ketika Anda mencoba melakukan itu. Anda hanya harus mendorong ke repositori kosong.

Dalam upaya kedua Anda, Anda membuat repositori "telanjang". Kemudian Anda membuat repositori "normal". Kemudian Anda mendorong dari normal ke repositori kosong. Itulah (salah satu) alur kerja yang diharapkan. Itu sebabnya Anda tidak mendapatkan kesalahan atau peringatan.

Ketika Anda ingin mengerjakan proyek Anda dari mesin windows dan dari mesin ubuntu maka Anda memiliki dua opsi:

  1. Buat repositori kosong (tidak masalah di mana). Kemudian klon dari repositori itu, satu di mesin windows dan satu di mesin ubuntu. Sekarang dorong dari klon ke repositori kosong, dan tarik dari repositori kosong ke klon. Jangan mendorong repositori normal.

  2. Buat dua repositori normal, satu di mesin windows dan satu di mesin ubuntu. Sekarang, ketika bekerja di ubuntu, Anda dapat menarik dari mesin windows dan sebaliknya. Jangan saling mendorong.

Intinya: hanya pernah mendorong ke repositori telanjang. Dalam semua kasus lain, saat Anda berpikir ingin mendorong dari A ke B, sebaliknya, pergi ke B lalu tarik dari A.

Tampaknya Anda sangat baru di git. Silakan baca satu atau kedua buku berikut yang sangat bagus: Git Book , Pro Git .

lesmana
sumber
1
hmm sepertinya titik pembelajaran utama adalah " hanya mendorong untuk telanjang repositori. Dalam semua kasus lain, ketika Anda berpikir Anda ingin mendorong dari A ke B, sebaliknya, pergi ke B lalu tarik dari A ". Jika demikian, bagaimana GitHub melakukannya? Saya mendorongnya dengan benar (nv sudah menggunakannya untuk sudah ...)?
Jiew Meng
@JiewMeng: GitHub menggunakan repositori kosong. Situs web membaca data langsung dari Git dan tidak memerlukan workdir.
user1686