Anda ingin repositori pusat Anda kosong. Katakanlah mesin yang digunakannya dinamai static:
$ ssh static git init --bare /git/myproject.git
Repositori kosong ini adalah titik pertemuan sentral: ini untuk mendorong dan menarik dari, bukan pengembangan.
Lakukan pengembangan Anda pada klon repositori pusat:
$ cd ~/src
$ git clone static:/git/myproject.git
Bahkan jika Anda aktif static, bekerjalah dalam klon:
$ git clone /git/myproject.git
Meskipun Anda satu-satunya yang mengerjakan repositori ini, biasakan melakukan pekerjaan Anda pada apa yang disebut dokumentasi git sebagai cabang topik . Manfaat langsung dari ini adalah membuat master tetap bersih , yaitu Anda selalu dapat menarik dari cabang master pusat ke master repositori lokal Anda saat ini tanpa penggabungan.
Sebagai contoh:
$ git checkout -b fix-bug-in-foo
$ hack
$ git add file.c file.h
$ git commit -m "Fix ..."
Itu mungkin tidak terlihat seperti masalah besar, tetapi memberi Anda kebebasan untuk meninggalkan proyek sebagaimana diwakili di cabang itu dalam keadaan setengah matang, atau jika ide keren Anda ternyata gagal, Anda dapat dengan mudah membuang cabang itu tanpa melanggar hal lain dalam proyek Anda yang sudah bekerja di cabang lain. Mulligan gratis tak terbatas!
Mungkin Anda pulang malam itu dan menambahkan fitur baru. Pagi berikutnya, kamu
$ git checkout master
$ git pull
untuk memperbarui master lokal Anda untuk mencerminkan apa yang ada di repositori pusat.
Tetapi sekarang katakan Anda telah memperbaiki bug foo dan siap untuk memasukkannya ke cabang master Anda. Pertama Anda ingin mengintegrasikannya dengan perubahan dari tadi malam:
$ git checkout fix-bug-in-foo
$ git rebase master
The rebaseperintah membuat tampilan repositori Anda seolah-olah Anda tetap bug foo di atas fitur baru semalam. (Ini semacam suka svn update, tetapi lebih fleksibel dan kuat.)
Sekarang untuk memasukkannya ke master utama Anda:
$ git checkout master
$ git merge fix-bug-in-foo
$ git push origin master
Kami telah memperlakukan master sebagai istimewa, tetapi itu hanya konvensional. Anda dapat berbagi pekerjaan di berbagai cabang repositori yang berbeda melalui repositori git staticdengan mudah.