Saya ingin mencoba jawaban yang mencakup git-flow, dan tiga 'poin' atau kasus penggunaan, git central repository, pengembangan lokal dan mesin produksi. Ini tidak diuji dengan baik .
Saya memberikan perintah yang sangat spesifik. Alih-alih mengatakan <your folder>
, saya akan mengatakan /root/git
. Satu-satunya tempat saya mengubah perintah asli adalah mengganti nama server spesifik saya dengan example.com
. Saya akan menjelaskan tujuan folder agar Anda dapat menyesuaikannya. Tolong beri tahu saya jika ada kebingungan dan saya akan memperbarui jawabannya.
Versi git di server adalah 1.7.1. Servernya adalah CentOS 6.3 (Final).
Versi git pada mesin pengembangan adalah 1.8.1.1. Ini adalah Mac OS X 10.8.4.
Repositori pusat dan mesin produksi berada di mesin yang sama.
repositori pusat, dimana svn yang dapat dihubungkan pengguna sebagai 'server' dikonfigurasi sebagai berikut. Saya memiliki folder /root/git
tempat saya menyimpan semua repositori git saya. Saya ingin membuat repositori git untuk proyek yang saya sebut 'bunga'.
cd /root/git
git clone --bare flowers flowers.git
Perintah git memberikan dua pesan:
Initialized empty Git repository in /root/git/flowers.git/
warning: You appear to have cloned an empty repository.
Tidak ada yang perlu dikhawatirkan.
Pada mesin pengembangan dikonfigurasi sebagai berikut. Saya memiliki folder /home/kinjal/Sites
tempat saya meletakkan semua proyek saya. Sekarang saya ingin mendapatkan repositori central git.
cd /home/kinjal/Sites
git clone root@example.net:/root/git/flowers.git
Ini membuat saya sampai pada titik di mana saya bisa mulai menambahkan barang ke sana. Saya pertama kali mengatur aliran git
git flow init -d
Secara default ini ada di cabang develop
. Saya menambahkan kode saya di sini, sekarang. Maka saya perlu komit ke repositori central git.
git add .
git commit -am 'initial'
git push
Pada titik ini mendorong ke cabang mengembangkan. Saya ingin juga menambahkan ini ke cabang master.
git flow release start v0.0.0 develop
git flow release finish v0.0.0
git push
Perhatikan bahwa saya tidak melakukan apa pun di antara mulai rilis dan selesai rilis. Dan ketika saya selesai menyelesaikan rilis saya diminta untuk mengedit dua file. Ini mendorong cabang pengembangan untuk dikuasai.
Di situs produksi, yang berada di mesin yang sama dengan repositori central git saya, saya ingin memasukkan repositori ke dalamnya /var/www/vhosts/example.net
. Saya sudah punya /var/www/vhosts
.
cd /var/www/vhosts
git clone file:///root/git/flowers.git example.net
Jika mesin produksi juga berada pada mesin yang berbeda, git clone
perintahnya akan terlihat seperti yang digunakan pada mesin pengembangan.
git clone --bare
akan melakukan apa yang menurut Anda akan dilakukan.