Mari mulakan dengan repositori Git. Kami akan membuat folder bernama projek.git dan mulakan untuk menjadi repositori jauh:
projek $ mkdir.gitprojek $ cd.git /
$ git init - telanjang
Repositori Git kosong yang dimulakan di / Users / zakh_eecs / _work / LearnGIT / git_remote_repository /
projek.git /
Sekarang pergi ke lokasi baru di mana anda boleh membuat folder bersih. Buat folder project_source dan mulakan untuk Git:
$ mkdir projek_sumber$ cd projek_sumber
$ git init
Repositori Git kosong yang dimulakan di / Users / zakh_eecs / _work / LearnGIT / git_branching_source /
projek_sumber /.git /
$ sentuh ReadMe.txt
$ git tambah -A
$ git commit -m "Komitmen Awal"
[master (root-komit] 176134f] Komitmen Awal
1 fail diubah, 0 sisipan (+), 0 penghapusan (-)
buat mod 100644 ReadMe.txt
Project_setup adalah direktori Git dengan ReadMe.fail txt. Walau bagaimanapun, ia tidak disambungkan ke repositori jauh kami. Mari siapkan projek.git menjadi repositori terpencil untuk project_source. Kami dapat mencapainya melalui arahan berikut:
$ git asal tambah asal / Pengguna / zakh_eecs / _work / LearnGIT / git_remote_repository / projek.git$ git push origin master
Membilang objek: 3, selesai.
Objek penulisan: 100% (3/3), 213 bait | 0 bait, selesai.
Jumlah 3 (delta 0), digunakan semula 0 (delta 0)
Kepada / Pengguna / zakh_eecs / _work / LearnGIT / git_remote_repository / projek.git
* [cawangan baru] tuan -> tuan
Dengan arahan git remote add origin, kami telah membuat hubungan antara projek.git dan projek_sumber. Dengan arahan master asal git push, kami telah mendorong cawangan induk kami ke repositori jauh.
Mari periksa cawangan kami (masih dalam folder project_source):
cawangan $ git* tuan
cawangan $ git -r
asal / tuan
cawangan $ git -a
* tuan
remote / asal / tuan
Perintah pertama hanya menunjukkan cawangan tempatan. Pilihan -r menunjukkan cawangan jauh. Dan pilihan -a menunjukkan tempatan dan jauh.
Mari buat beberapa cawangan di direktori kerja kami:
pengembangan cawangan $ gitpembaikan panas cawangan $ git
eksperimen cawangan $ git
cawangan $ git -a
pembangunan
percubaan
pembaikan panas
* tuan
remote / asal / tuan
Kami telah membuat cawangan yang dipanggil pembangunan, perbaikan terbaru dan eksperimental. Mereka muncul dalam senarai cawangan tempatan kami. Tetapi dalam remote / asal, hanya ada cabang induk kerana satu-satunya yang kita tolak. Tuan bintang (*) bermaksud kita masih berada di cawangan induk tempatan. Mari masuk ke cabang pengembangan, lakukan perubahan dan dorong perubahan tersebut ke repositori jauh.
pengembangan $ git checkoutBeralih ke 'pembangunan' cawangan
$ echo abc> ReadMe.txt
$ git tambah -A
$ git commit -m "Cabang pembangunan yang diubah suai"
[development dd9933e] Cabang pembangunan yang diubah suai
1 fail diubah, 1 sisipan (+)
pembangunan asal $ git push
Membilang objek: 3, selesai.
Objek penulisan: 100% (3/3), 257 bait | 0 bait, selesai.
Jumlah 3 (delta 0), digunakan semula 0 (delta 0)
Kepada / Pengguna / zakh_eecs / _work / LearnGIT / git_remote_repository / projek.git
* pembangunan [cabang baru] -> pembangunan
Mari periksa semua cawangan sekarang:
cawangan $ git -a* pembangunan
percubaan
pembaikan panas
tuan
jarak jauh / asal / pengembangan
remote / asal / tuan
Kami melihat bahawa kami berada di cabang pembangunan tempatan, tetapi ada juga cabang pembangunan terpencil. Ketika kami mendorong perubahan kami dengan pengembangan asal git push, ia menciptakan cabang pengembangan dalam jarak jauh / asal.
Mari keluar dari project_source dan cari tempat baru di mana kita boleh mempunyai folder baru. Di sini kita akan mengklon repositori jauh dengan arahan berikut:
$ git clone / Pengguna / zakh_eecs / _work / LearnGIT / git_remote_repository / projek.gitPengklonan ke dalam 'projek' ..
selesai.
Kami telah mengklon salinan baru yang disebut projek dari projek.git. Masuk ke folder projek dan periksa cawangannya:
projek $ cdcawangan $ git
* tuan
Apabila Git membuat klon awal dari repositori jauh, ia hanya mendapat cabang induk. Sekiranya kita menggunakan pilihan -a, kita melihat:
cawangan $ git -a* tuan
remote / origin / HEAD -> asal / tuan
jarak jauh / asal / pengembangan
remote / asal / tuan
Perhatikan tidak ada cabang pembangunan tempatan. Juga, kami tidak pernah mendorong perbaikan terbaru dan cabang eksperimen dari project_source ke projek.git, jadi kita tidak melihatnya. Repositori jauh mempunyai cabang induk dan pengembangan (remote / origin / HEAD -> origin / master bukan cabang, ini hanya memberitahu anda di mana HEAD menunjuk).
Mari masukkan cabang pembangunan ke dalam persekitaran kerja kita:
$ git fetch --semuaMengambil asal
pengembangan $ git checkout
Pembangunan cabang ditubuhkan untuk mengesan pengembangan cabang terpencil dari asal.
Beralih ke 'pengembangan' cawangan baru
Sekiranya anda menggunakan Git versi lama, anda mungkin perlu menggunakan:
$ git checkout asal / pengembanganSekarang jika kita menggunakan perintah cabang, kita mendapat:
cawangan $ git -a* pembangunan
tuan
remote / origin / HEAD -> asal / tuan
jarak jauh / asal / pengembangan
remote / asal / tuan
Kita dapat membuat perubahan pada cabang pengembangan, melakukan perubahan dan kemudian mendorongnya menggunakan perintah pengembangan asal git push.
Kesimpulannya
Semasa bekerja dengan GitHub dan BitBucket, anda mungkin menggunakan pautan HTTPS atau SSH untuk menyambung ke repositori jauh anda. Oleh itu, anda akan menetapkan asal anda ke pautan tersebut. Tetapi prinsip cabang terpencil adalah sama seperti yang dijelaskan di sini.
Sambung belajar:
- https: // git-scm.com / docs / git-branch
- https: // git-scm.com / book / en / v2 / Git-on-the-Server-Setting-Up-the-Server
- https: // pertolongan.github.com / artikel / menambah-yang-ada-projek-ke-github-menggunakan-the-command-line /
- https: // pertolongan.github.com / artikel / mendorong-ke-a-jauh /