Selles tunnis teeme järgmist:
- Looge kaughoidla
- Looge kaughoidla kohalik koopia
- Looge kohalikus eksemplaris kaks haru
- Lükake üks haru kaughoidlasse
- Kustutage kohalikud harud
- Kustutage kaugharud
Tund peaks andma teile üldise ülevaate haru loomise ja kustutamise protsessist, nii et teil on hea käsk vajalike toimingute üle, kui peate kohaliku või kaugharu kustutama.
Alustame.
1. Kaughoidla loomine
Loome kausta nimega projekt.git ja lähtestage kaughoidlaks:
$ mkdir projekt.git$ cd projekt.git
$ git init -paljas
Initsialiseeritud tühi Giti hoidla kataloogis / Users / zak / _work / LearnGIT / git_delete_branch / project.git /
2. Kaughoidla kohaliku koopia loomine
Uues asukohas loome klooni käsu abil kaughoidla kohaliku koopia nimega project_local.
Märkus. Kui töötate GitHubi või BitBucketiga, järgite hoidla kloonimiseks sama protsessi. Sellisel juhul on siin kasutatava täieliku failitee asemel SSH-link.
Kloon $ git / Kasutajad / zak / _work / LearnGIT / git_delete_branch / projekt.git projekti_kohalikKloonimine projekti_local kategooriasse…
hoiatus: paistab, et kloonisite tühja hoidla.
tehtud.
3. Filiaalide loomine kohaliku koopia sees
Lisame kõigepealt faili kohalikku koopiasse ja seejärel lükake see kaughoidlasse:
$ cd project_local$ puudutage ReadMe.txt
$ git lisa -A
$ git toime -m "Mooduli lähtestamine"
[master (root-toime) 81eb2a3] Mooduli lähtestamine
1 fail muudetud, 0 sisestust (+), 0 kustutust (-)
loomisrežiim 100644 ReadMe.txt
$ git push päritolumeister
Objektide loendamine: 3, valmis.
Objektide kirjutamine: 100% (3/3), 221 baiti | 0 baiti / s, valmis.
Kokku 3 (delta 0), taaskasutatud 0 (delta 0)
To / Kasutajad / zak / _work / LearnGIT / git_delete_branch / projekt.git
* [uus haru] meister -> meister
Ülaltoodud käskude abil lõime faili nimega ReadMe.txt, lisas selle kohalikku koopiasse, sidus selle kohalikku koopiasse ja lükkas seejärel muudatused kaughoidlasse või originaali peaharusse.
Kui kontrollite harusid, näete kohalikus eksemplaris peaharu:
$ git haru* meister
Kui kontrollite kaugharusid, näete seal ka põhiharu:
$ git haru -rpäritolu / meister
Nõuanne. Kõigi kohalike ja kaughoidlate harude koos nägemiseks võite kasutada valikut „-a".
$ git filiaal -a* meister
kaugjuhtimispuldid / päritolu / kapten
Loome peaharust kaks haru nimega b1 ja b2:
$ git haru b1$ git haru b2
Kontrollime, kas oksad on loodud:
$ git harub1
b2
* meister
Nüüd teeme harudesse mõned muudatused:
kassas $ git b1Üleminek harule 'b1'
$ touch haru1.txt
$ git lisa -A
$ git sitout -m "haru1 muutmine"
[b1 a2f488e] Haru1 modifikatsioon
1 fail muudetud, 0 sisestust (+), 0 kustutust (-)
loomise režiim 100644 haru1.txt
kassas $ git b2
Üleminek harule 'b2'
$ touch haru2.txt
$ git lisa -A
$ git sitout -m "Haru2 muutmine"
[b2 2abb723] Haru2 modifikatsioon
1 fail muudetud, 0 sisestust (+), 0 kustutust (-)
loomisrežiim 100644 haru2.txt
Kontrollime kohaliku ja kaugharu olekuid:
$ git harub1
* b2
meister
$ git haru -r
päritolu / meister
Kohalikult näeme, et meil on kolm haru, b1 ja b2. Kuid meil on kaughoidlas ainult põhiharu.
4. Filiaalide lükkamine kaughoidlasse
Lükake b1 haru kaughoidlasse:
$ git push alguspunkt b1Objektide loendamine: 2, tehtud.
Delta tihendamine kuni 4 niidi abil.
Objektide tihendamine: 100% (2/2), valmis.
Objektide kirjutamine: 100% (2/2), 249 baiti | 0 baiti / s, valmis.
Kokku 2 (delta 0), taaskasutatud 0 (delta 0)
To / Kasutajad / zakh / _work / LearnGIT / git_delete_branch / projekt.git
* [uus haru] b1 -> b1
Kohaliku ja kaugharu olekuid saate kontrollida:
$ git harub1
* b2
meister
$ git haru -r
päritolu / b1
päritolu / meister
Ülaltoodud haru olekutest näeme, et b1 haru on saadaval ka eemalt.
5. Filiaalide kustutamine kohapeal
Filiaale saab kohapeal kustutada valikuga -d või -D.
git haru -dKõigepealt kontrollime põhiharu, et saaksime b1 ja b2 harud kustutada.
kassas $ git masterÜleminek harule 'master'
Teie haru on ajakohane tootega 'origin / master'.
Proovime kõigepealt valiku -d, et kustutada haru b1:
$ git haru -d b1viga: haru 'b1' pole täielikult ühendatud.
Kui olete kindel, et soovite selle kustutada, käivitage 'git branch -D b1'.
Viga ütleb teile, et peate ühendama muudatused harust b1. See on tagatis, nii et te ei kaota ekslikult okstega seotud tööd. Ühenduse sundimiseks võite kasutada -D-valikut. Kuid sel juhul ühendagem muudatused b1-st ja b2-st masteriks ja lükake see kaughoidlasse.
$ git ühendamine b181eb2a3… a2f488e värskendamine
Kiiresti edasi
haru1.txt | 0
1 fail muudetud, 0 sisestust (+), 0 kustutust (-)
loomise režiim 100644 haru1.txt
$ git ühinemine b2
„Rekursiivse” strateegia abil tehtud liitmine.
haru2.txt | 0
1 fail muudetud, 0 sisestust (+), 0 kustutust (-)
loomise režiim 100644 haru2.txt
$ git push päritolumeister
Objektide loendamine: 4, tehtud.
Delta tihendamine kuni 4 niidi abil.
Objektide tihendamine: 100% (4/4), valmis.
Objektide kirjutamine: 100% (4/4), 454 baiti | 0 baiti / s, valmis.
Kokku 4 (delta 1), taaskasutatud 0 (delta 0)
To / Kasutajad / zak / _work / LearnGIT / git_delete_branch / projekt.git
81eb2a3… 34db496 master -> master
Nüüd proovige oksad uuesti kustutada:
$ git harub1
b2
* meister
$ git haru -d b1
Kustutatud haru b1 (oli a2f488e).
$ git haru -d b2
Kustutatud haru b2 (oli 2abb723).
$ git haru
* meister
Olete edukalt kustutanud b1 ja b2 haru kohalikult.
6. Kaugharude kustutamine
Kaugharude kontrollimisel näete endiselt b1:
$ git haru -rpäritolu / b1
päritolu / meister
Kaugharu kustutamiseks võite kasutada järgmist käsku:
git pushNii et saate b1 kaugharu kustutada järgmiselt:
$ git push origin - kustuta b1Kasutajatele / Kasutajad / zakh_eecs / _work / LearnGIT / git_delete_branch / projekt.git
- [kustutatud] b1
Kui kontrollite oma kaugharusid, ei peaks te enam b1 nägema:
$ git haru -rpäritolu / meister
Palju õnne! Kõik teie loodud harud on edukalt kustutatud. Harjutage veel harude loomist ja nende kustutamist, et Giti haru kustutamise protsess hallata.
Edasine uuring:
- https: // git-scm.com / book / en / v1 / Git-Branching-What-a-Branch-Is
- https: // git-scm.com / book / en / v2 / Git-Branching-Branches-in-a-Nutshell
- https: // git-scm.com / book / et / v2 / Git-Branching-Basic-Branching-and-Merging