Aloita. Tarkista arkiston tila. Luo tiettyyn hakemistoon

Monien ihmisten on vaikea aloittaa työskentelyä Git, koska kaikki eivät ole tottuneet työskentelemään komentorivi, mutta on parasta käyttää sitä työskennellessäsi Git arkisto. Ja tänään puhun niin sanotusti yksinkertaisimmasta asiasta Git teekannulle auttaa sinua tuntemaan olosi mukavaksi tämän järjestelmän käytössä. Git on versionhallintajärjestelmä, jonka avulla voit oikea hetki palaa takaisin vanha versio, Jos sinä " sekaisin".

Gitin avulla voit isännöidä koodisi GitHub, BitBucket Ja Google Code.

Voit aina ladata projektisi koodin tietokoneellesi, muuttaa sitä ja ladata sen takaisin niin, että se on työtovereiden käytettävissä.

Mistä aloittaa?

Tarvitsemme ohjelman Git Bash, tämä on Cygwiniin perustuva kuori, joten on mahdollista käyttää Unix-komentoja, kuten ls, cd, mkdir. Voit ladata sen seuraavasta linkistä http://git-scm.com/.

Asetetaan Git

Ennen kuin aloitamme, meidän on määritettävä ohjelma hieman. Meidän on asetettava käyttäjänimi ja sähköpostiosoite komentorivin kautta:

Git config --global user.name "Sinun nimesi" git config --global user.email "Sähköpostisi"

Meidän on myös määritettävä rivinpäätteen asetukset Windowsille syötämme kaksi komentoa

Git config --global core.autocrlf true git config --global core.safecrlf false git config --global core.eol natiivi

Tämä on valmis, voimme aloittaa työskentelyn projektin kanssa.

Projektin luominen

Oletetaan, että meillä on kansio, jossa on projekti, jota haluamme isännöidä GitHubissa.

2. Alusta Git-arkiston kansio. Tämä on tehtävä vain kerran projektia kohden.

Git init

3. Linkitä kansio etävarastoon

Git-etälisäyksen alkuperä https://github.com/LeoXCoder/test_project.git

4. Lisää kaikki uudet ja muutetut tiedostot

Git add .

5. Merkitse kaikki uudet ja muutetut tiedostot viestillä ( tehdä)

Git commit -m "viesti"

Kirjoita viestin sijaan esimerkiksi viesti Ensimmäinen sitoumus. tai Virheenkorjaus.

6. Lataa koodi etävarastoon

Git push -u alkuperän mestari

tässä muodossa käytämme sitä vain ensimmäisen kerran, sitten käytämme komentoa ilman lippuja

Anna työntö

7. Voit tarkastella tehtyjen muutosten tilaa.

Gitin tila

8. Lataa arkisto käyttämällä komentoa

Hitto vedä

Toinen tietokone

Jos haluat käyttää arkistoa toisessa tietokoneessa, käytä seuraavia komentoja.

1. Arkiston kloonaus

Git-klooni https://github.com/LeoXCoder/test_project.git

Tämän seurauksena git lataa etävaraston osoitteeseen uusi kansio testi-projekti

2. Muutamien koodimuutosten jälkeen suoritamme kaikki samat komennot

Git add . git commit -m "Vaihdoin käyttäjämoduulia." git push

Palautusmuutokset

1. Täysi palautus edelliseen sitoumukseen

Git reset HEAD --hard

2. Tiedoston muutosten palauttaminen toimitusversioon

Käy kassalla

3. Palauta vakiintuneeseen tagiin, esimerkiksi v1

Hajautetut versionhallintajärjestelmät (DVCS) ovat vähitellen korvaamassa keskitettyjä. Jos et ole vielä käyttänyt yhtä niistä, nyt on aika kokeilla.

Tässä artikkelissa yritän näyttää, kuinka voit nopeasti aloittaa gitin kokeilun käyttämällä github.com-verkkosivustoa.

Tässä artikkelissa ei käsitellä eroja eri DVCS:n välillä. Myöskään gitin kanssa työskentelemistä ei käsitellä yksityiskohtaisesti, tästä aiheesta on monia hyviä lähteitä, jonka annan artikkelin lopussa.

Joten sivusto github.com on sijoitettu verkkoprojektien isännöintipalveluksi, joka käyttää git-versionhallintajärjestelmää sekä sosiaalinen verkosto kehittäjille. Käyttäjät voivat luoda rajoittamattoman määrän arkistoja, joista jokaisessa on wiki, ongelmanseurantajärjestelmä, kyky suorittaa kooditarkastuksia ja paljon muuta. GitHub käytössä Tämä hetki on eniten suosittu palvelu tämänkaltaisia, ohittaen Sourceforgen ja Google Coden.

Avoimen lähdekoodin projekteille sivuston käyttö on ilmaista. Jos tarvitset yksityisiä tietovarastoja, voit päivittää maksulliseen sopimukseen:

Aloitetaan rekisteröinnistä. Seuraa linkkiä github.com/signup/free ja anna tietosi.
Rekisteröinnin jälkeen meidät ohjataan tilimme hallintapaneeliin:

Nyt meillä ei ole yhtä arkistoa, ja voimme joko luoda uuden arkiston tai haarautua olemassa olevasta jonkun muun arkistosta ja johtaa omaa kehityshaaraamme. Sitten voit halutessasi ehdottaa muutoksiasi alkuperäisen arkiston tekijälle (Pull-pyyntö).

Mutta ensin asennetaan git ja määritetään se toimimaan sivuston kanssa.

Jos käytät Windowsia, lataa ja asenna msysgit. Tämä on git for Windows -konsoliversio (jatkossa tarina perustuu tämän käyttöjärjestelmän esimerkkiin).
Ohjeet MacOS X:lle (eng)
Ohjeet Linuxille (eng)
Ei pitäisi olla ongelmia, napsauta vain Seuraava kaikkialla. Valitse asennuksen jälkeen kontekstivalikko Git Bash Explorer:

Tai Git Bash.lnk:n kautta kansiossa, jossa on asennettu ohjelma:

Syötämme tietomme ja rivinvaihtoasetukset konsoliin:
git config --global user.name "oma nimesi"
git config --global user.email "oma sähköpostiosoite"
git config --global core.autocrlf true
git config --global core.safecrlf true

Muuten suosittelen hyvän interaktiivisen kurssin suorittamista gitin avulla konsolista. Kurssi valmistuu muutamassa tunnissa ja antaa tarvittavat perustaidot.

Niille, jotka pitävät gui:sta, on useita tällaisia ​​työkaluja gitin kanssa työskentelemiseen Windowsissa. Kaksi tärkeintä ovat SmartGit (cross-platform) ja TortoiseGit. Molemmat ovat hyviä, ja kumpaa käyttää, on makuasia. Kuvaan työskentelyä TortoiseGitin kanssa.
Unikon osalta on myös valittavissa giu.

  • GitHubin virallinen asiakas on mielestäni edelleen melko karkea.
  • GitX - En henkilökohtaisesti pitänyt siitä
  • GitBox - suurin osa seuraa mac-tapaa, suosittelen kokeilemaan sitä

Tietoja gitistä venäjäksi:
habrahabr.ru/blogs/Git/106912 " Onnistunut malli branching for git" - hyvän englanninkielisen artikkelin käännös
githowto.com interaktiivinen kurssi gitin kanssa työskentelystä konsolista
habrahabr.ru/blogs/Git/106912 "Miksi git" + keskustelu
habrahabr.ru/blogs/development/68341 "Git niille, jotka muuttavat SVN:stä" + keskustelu
habrahabr.ru/blogs/Git/75990 " Ryhmätyö gitissä" + keskustelu
progit.org/book/ru Pro Git -kirjan venäjänkielinen käännös (ei käännetty kokonaan)
habrahabr.ru/blogs/Git/123111 ohjeet-huijauslehti aloittelijoille
viestisarja "internals of git"
lib.custis.ru/%D0%9B%D0%B8%D0%BD%D1%83%D1%81_%D0%A2%D0%BE%D1%80%D0%B2%D0%B0%D0%BB %D1%8C%D0%B4%D1%81_%D0%BE_GIT_%D0%BD%D0%B0_Google_Talks Linus Torvalds gitissä
habrahabr.ru/blogs/Git/80909 kirja "The Magic of Git"

Tietoja gitistä englanniksi:
kirjat

  • progit.org/book kirja "Pro Git"
  • rutracker.org/forum/viewtopic.php?t=2808582 kirja "Version Control with Git", 2009, O"Reilly
  • book.git-scm.com kirja "Git Community Book"
  • rutracker.org/forum/viewtopic.php?t=2808843 kirja "Pragmatic Version Control Using Git", 2008, T. Swicegood
  • rutracker.org/forum/viewtopic.php?t=3239579 kirja “Pragmatic Guide to Git”, 2010, T. Swicegood. Kuvattu git-versio on 1.7.2.1. Kirja kaksisivuisessa levitysmuodossa - ongelma/ratkaisu

Työskentely Git-varastojen kanssa

Miksi Git

Lyhyt vastaus: koska versionhallintajärjestelmän kanssa työskentelyssä ei ole viiveitä.

Git tallentaa kaiken paikallisesti, mukaan lukien historian, haarat, sitoumukset ja antaa sinun vaihtaa kaiken välillä ilman verkkoa.

GIT tekee oksien kanssa työskentelystä helppoa muuttamatta arkiston asettelua, ja muutosten puunäkymän avulla voit nähdä, mitä mistäkin haarasta tuli.

Yleistä tietoa Gitistä

Voit lukea lisää Gitin kanssa työskentelystä ja sen toiminnasta Git Bookista osoitteessa http://book.git-scm.com/

Klassisessa VCS:ssä (Version Control System) (CVS, SVN) työkopio tallennetaan Nykyinen tila arkisto ja nykyisen version peruskopio. Kaikki versiot tallennetaan palvelimelle muutosten muodossa edelliseen verrattuna tai muodossa täysiä kopioita jokainen tarkistus ja erotuslaskelma pyynnöstä. Kaikki versiot on numeroitu ensimmäisestä alkaen.
CVS:ssä muutokset tallennetaan ja numeroidaan jokaiselle tiedostolle erikseen, SVN:n tapauksessa arkiston muutokset numeroidaan.
Koska SVN tallentaa vain muutokset koko tietovarastoon, haarat toteutetaan arkistossa olevien tiedostojen erityisen organisoinnin kautta. Perinteisesti tämä on /trunk/ uusimmalle koodille, /branch/somename/ haaralle. Haaran luomiseksi kopio /trunk/ tehdään hakemistoon /branch/somename/, jonka parissa kehittäjä jo työskentelee.
Samanaikaisesti jokaisen commitin yhteydessä soitetaan keskustietovarastoon, muutoksen tallentamiseksi skriptit käsitellään palvelimella, muutosten numerointi on jatkuva, historian pyyntö vaatii myös kutsun palvelimelle, jne.

Git kuuluu DVCS (Distributed Version Control System) -luokkaan. Samaan aikaan työkopio sisältää kaikki sitoumukset, historian, haarat, kaiken tarvittavan kehitykseen ilman pääsyä mihinkään palvelimeen. Synkronoi muutokset arkiston eri kopioiden välillä oikeaan aikaan vetämällä kopioidaksesi etätietovaraston muutokset itsellesi tai push-toiminnolla kopioidaksesi paikalliset muutokset etävarastoon. Gitin tapauksessa jokaisella toimituksella on yksilöllinen tunnus hashin muodossa, joka sisältää kaikki siihen liittyvät tiedostot.

Jokaisella toimituksella on yksi päätoimitus ja mahdollisesti yhdistämislähdesitoumus. Siten sitoumukset ovat tiedostokokoelmien puu. "Haara" on osoitin sitoutumiseen. Näin ollen, jotta voit luoda haaran, sinun tarvitsee vain antaa sitoumukselle nimi. Jos haluat yhdistää kaksi haaraa, joista toinen alkaa toisen lopusta, voit yksinkertaisesti siirtää toisen haaran osoittimen uuteen vahvistukseen (tätä kutsutaan Fast-Forward).

"Litteän" päähaaran ylläpitämiseksi käytetään tekniikkaa, jossa haaroja perustetaan uudelleen ennen yhdistämistä ja yhdistäminen ilman pikakelausta.

Rebase tarkoittaa haaran ylätason vaihtamista uuteen sitoumukseen. Kun perustat uudelleen, kaikki tietyssä haarassa tehdyt muutokset peruutetaan ja tallennetaan jokaisen sitoumuksen tekemiksi muutoksiksi; jonka jälkeen haaraosoitin siirretään uuteen alkuun ja muutokset otetaan käyttöön peräkkäin. Jos ristiriitoja ei ole, muutokset otetaan käyttöön automaattisesti, minkä jälkeen haara on joukko muutoksia suhteessa uuteen alkuun.

Jos nyt yhdistämme tämän haaran alkuperäiseen, alkuperäisen haaran pääosoitin yksinkertaisesti siirretään uuteen paikkaan ja menetämme tiedon, että uusi haara oli edes olemassa. Tästä syystä käytetään yhdistämistä ilman pikakelausta. Tässä tapauksessa, vaikka uusi haara alkaisi edellisen lopusta, luodaan erityinen yhdistämissitoumus, joka sisältää tiedon siitä, että nykyinen haara yhdistetään ylimääräiseen. tämä kohta.

Algoritmi tehtävän parissa työskentelemiseen

Vakioalgoritmi minkä tahansa tehtävän suorittamiseen näyttää tältä:

  1. Haara luodaan perustuen viimeinen kopio mestarihaara. Nimi uusi haara sisältää tehtäväluokan, Lyhyt kuvaus, tehtävän numero BT:ssä. Esimerkiksi feature/sessions_add_datetime_filter.5503
  2. Kaikki muutokset tehdään tämän haaran sisällä. Jokaiselle atomiselle loogiselle muutokselle (esim. lisätty laajennus - tehty lisäys; korjattu yhden funktion API kaikissa paikoissa - sitoutunut jne.) luodaan oma sitoumus. Näin voit erottaa tehdyt muutokset, mikä helpottaa kehitysprosessin lukemista ja virheiden tarkistamista.
  3. Kun haaran koodi on valmis ja virheenkorjaus tehty, kaikki muutokset on tehty, ja tämä haara perustetaan uudelleen suhteessa viimeinen mestari, ja se työnnetään keskustietovarastoon.
  4. Toinen saman projektin parissa työskentelevä henkilö vetää keskusvaraston itselleen. Jos hän on jo katsonut, hän poistaa haaran paikallisen kopion ja vaihtaa sitten määritettyyn haaraan. Se lukee koodin, tarkistaa sen toimivuuden ja joko lähettää sen tarkistettavaksi, jos ongelmia havaitaan, tai perustaa sen uudelleen isäntäkoneen päälle ja yhdistää haaran isäntäkoneeseen.
  5. Yhdistettyään isäntäkoneeseen tarkistaja työntää uuden isännän keskustietovarastoon, poistaa sen paikallisen tehtävähaaran ja työntää tehtävähaaran poiston isäntäkoneeseen.
  6. Kehittäjä poistaa tehtävän paikallisen haaran, kun tehtävä on suljettu ja muutokset on siirretty masterille.

Säännöt puhtaiden sitoumusten ylläpitämiseksi

Kaikkien keskushaaraan menevien sitoumusten on noudatettava seuraavia sääntöjä:

  1. Kehittäjä on rekisteröity tekijäksi – etunimi, sukunimi, työsähköpostiosoite.
  2. Kommenttitekstin tulee sisältää lyhyt kuvaus muutoksesta. Ulkomaisissa projekteissa kuvauksen on oltava päällä Englannin kieli, venäläisissä brunssiprojekteissa on hyväksyttävää kommentoida venäjäksi.
  3. Toimitus ei saa sisältää tiedostoja, jotka eivät liity muutoksiin. Jos IDE, käyttöjärjestelmä tai jokin kehitysvaiheessa käytetyn ohjelmiston lisäosa luo teknisiä tiedostoja, joko lisää ne .gitignore-tiedostoon, älä lisää niitä commit-tiedostoon tai poista ne ennen sitoutumista.
  4. Sitoumus ei saa lisätä/poistaa tyhjiä rivejä, vaihda välilyönnit sarkaimeiksi ja päinvastoin, muuta välilyöntien määrää jne. missä tahansa, paitsi sitoumuksen olemukseen liittyvissä tapauksissa. Toisin sanoen tämä on normaalia refaktoroinnissa, mutta jos editori muutti välilyönnit koko tiedostossa sarkainiksi tai päinvastoin, muuta editorin asetuksia tai palauta kaikki "ennalleen" ennen sitoutumista.
  5. Tyyli lähdekoodi ja sisennyksen tulee vastata sitä ympäröivää tekstiä. Toisin sanoen, jos koko tiedoston sisennykseen käytetään sarkaimia, älä lisää välilyönneillä vuorattua kirjainta.
  6. Minimoi konflikteja. Kun lisäät koodia, yritä muotoilla koodi niin, että sen muokkaaminen johtaa mahdollisimman vähäiseen yhdistämisristiriitaan.

Työskentely Windowsin alla

Kätevin tapa työskennellä Gitin kanssa Windowsissa on käyttää TortoiseGitiä. Sinun pitäisi kuitenkin tietää, että vuodelle 2017 niitä on enemmän kätevä työkalu- SmartGit.

Valmistautuminen työhön

  1. Asenna kitti sivulta http://www.chiark.greenend.org.uk/~sgtatham/putty/
    Parasta on laittaa täysi pakkaus, kaikilla ohjelmilla. Tarvitset ainakin plinkiä, puttygeniä.
  2. msysGitin asentaminen projektista http://code.google.com/p/msysgit/
    Valitse asetukset, kun asennat "Lisää "Git Bash tähän"", "Suorita Git Windowsin komentokehotteesta", " Käytä Windowsia tyylirivinpäätteet" kysyttäessä, anna polku tiedostoon plink.exe
  3. TortoiseGitin asentaminen projektista http://code.google.com/p/tortoisegit/
    Siirry asennuksen jälkeen kohtaan TortoiseGit → Asetukset → Git → Config, varmista, että msysgit-polku on asetettu, että AutoCRLF- ja SafeCRLF-asetukset on asetettu ja kehittäjän etunimi, sukunimi ja sähköpostiosoite on määritetty.
  4. Puttygenin avulla luodaan yksityinen + julkinen avainpari.
    Julkinen avain lähetetään järjestelmänvalvojille lisättäväksi tietovarastojen ja palvelimien käyttöoikeuksiin.
    Yksityinen avain lisätään sivulle napsauttamalla oikealla painikkeella→ lisää avain.

Arkiston hakeminen

Napsauta kansiossa, jossa kaikki työprojektit sijaitsevat
Napsauta hiiren kakkospainikkeella → TortoiseGit → Klooni, kirjoita keskustietovaraston osoite
ssh://git@ PALVELIN:PORT/REPOSITORY.git
Valitse "Lataa Putty Key" -kentässä polku yksityiseen avaimeen.

Käytä kumpaakaan työskennellessäsi konsolin apuohjelmat, samanlainen kuin Linux, tai graafinen käyttöliittymä.

Vakiotoimintamenettelyt

  1. "Tehtävän parissa työskentely"

    ,
    Haara: mestari
    Valikko → TortoiseGit → Vedä
    Valikko → TortoiseGit → Luo haara
    Nimi Haara: uuden sivukonttorin nimi
    Perus: HEAD (mestari)
    [x] Vaihda uuteen haaraan
  2. "Tee toinen työ"

    Valikko → Git commit -> "sivukonttorin nimi"
    Merkitse tiedostot, joita tarvitaan vain tätä erityistä toimitusta varten
    Muista klikata "View Patch" ja varmista
    puhtaiden sitoumusten ylläpitämistä koskevien sääntöjen mukaisesti
    Kirjoita viestiin sääntöjä vastaavan muutoksen kuvaus


  3. Valikko → TortoiseGit → Push
    Paikallisessa valitsemme ensin masterin, sitten nykyisen haaramme.
    Kaukosäädin täytetään automaattisesti.
    Etähaaran nimen on oltava identtinen paikallisen nimen kanssa
  4. "Rebase on Master"
    Suoritetaan ennen valmiin tehtävän lataamista palvelimelle, kun kaikki muutokset on jo tehty.
    Valikko → Git Sync
    Paikallinen haara: mestari
    Etähaara: mestari
    Oikea alanuoli ensimmäisen painikkeen kohdalla (Vedä oletuksena), Hae
    Valikko → TortoiseGit → *Rebase
    Haara: nykyinen haara
    UpStream: mestari
    Jos on ristiriitoja, käsittele ne "Ristiriitatiedosto"-välilehden kautta
    Valitse tiedosto napsauttamalla hiiren kakkospainikkeella tiedostoa, apuohjelmaa
    Muokkaa ristiriitoja – voit valita jokaisen ristiriidan mukaan
    käytä mitä lohkoversiota
    Ratkaise ristiriidat käyttämällä
    heidän – käytä ohjattua versiota
    minun – käytä nykyistä haaraversiota
    Avaa – avaa editorissa ja muokkaa manuaalisesti
    Korjauksen jälkeen tee Resolve
    Kun olet korjannut kaikki ristiriidat, napsauta Sitoudu
    Napsauta uudelleen perustamisen jälkeen Valmis
  5. "Muutostilan lyhytaikainen tallennus"

    Valikko → TortoiseGit → Tallenna Tallenna
    Tämän jälkeen puu on puhdas, voit vaihtaa toiseen haaraan/isäntään ja niin edelleen, työskennellä ja sitten palauttaa tilan, jos vaihdat takaisin toimivaan haaraan ja teet
    Valikko → TortoiseGit → Stash Pop
  6. "Pitkäaikainen muutostilan säilyttäminen"

    Valikko → Git Commit -> "haara"
    Merkitse kaikki muutokset (Valitse/Poista kaikki)
    Kirjoita viestin tekstiin "Osittainen sitoumus"
    Myöhemmin palataksemme samaan tilaan kuin ennen, siirrymme työhaaraan ja teemme
    Valikko → TortoiseGit → Näytä loki
    Valitse sitoumus, joka menee puuhun juuri ennen "Osittaista toimitusta"
    Napsauta hiiren kakkospainikkeella → Palauta<ветка>tähän
    Nollaustyyppi: Sekalainen
  7. "Käiearvostelu"

    Valikko → TortoiseGit → Switch/Checkout
    Haara: mestari
    Valikko → TortoiseGit → Vedä
    Valikko → TortoiseGit → Switch/Checkout
    Haara: kaukosäätimet/alkuperä/tarvittava haara
    [x] Luo uusi haara: haluttu haara
    [x]Pakota
    [x]Raita
    [x] Ohita haara, jos sellainen on
    Valikko → TortoiseGit → *Rebase
    Haara: tarvitaan haara
    UpStream: mestari
    Haaran on oltava "päivitetty" tai se perustetaan uudelleen ilman ristiriitoja.
    == Analysoimme muutokset tarkastelemalla muutoslokia kautta
    Valikko → TortoiseGit → Näytä loki
    ja katso muutoksia mestarista viimeiseen
    == Katsotaan yleinen muutos mestarin suhteen
    Valikko → TortoiseGit → Ero edellisen version kanssa
    Versio 1: PÄÄ
    Versio 2: Master
    == Jos kaikki on hyvin, teemme sen
    Valikko → TortoiseGit → Switch/Checkout
    Haara: mestari
    Valikko → TortoiseGit → Yhdistä
    Lähettäjä: tarvittava haara
    [x] Ei pikakelausta
    Emme muokkaa viestiä.
    Valikko → TortoiseGit → Push
    Ja poista oksat:
    Vaihto + Menu → TortoiseGit → Selaimen ohje
    vasemmalla olevasta puusta Refs => heads => etsi haara, napsauta hiiren kakkospainikkeella, Poista haara
    vasemman kaukosäätimen puussa => alkuperä => etsi oksa, napsauta hiiren kakkospainikkeella,
    Poista etähaara

Työskentely Linuxin alla

Valmistautuminen työhön

  1. Ssh-client- ja git-järjestelmäpaketit on asennettu
  2. Yksityinen avain luodaan:

    ssh-keygen -t dsa -C "Ivan Petrov "

  3. Tekijän koko nimi ja sähköpostiosoite on määritetty:

    git config --global user.name "Ivan Petrov"
    git config --global user.email work@mail"

  4. Tiedosto ~/.ssh/id_dsa.pub lähetetään järjestelmänvalvojalle, jotta se rekisteröi pääsyn arkistoihin ja palvelimiin.

Arkiston hakeminen

Mene työhakemistoon ja suorita

git-klooni ssh://git@SERVER:PORT/REPOSITORY.git

Käytetyt päätoiminnot

  1. Nykyisen haaran päivittäminen keskusvarastosta:

    git vedä

  2. Nykyisen haaran työntäminen keskustietovarastoon:

    git push -alkuperän haaran nimi

  3. Vaihto johonkin haaraan:

    git checkout haaran nimi

    Jos vaihdat haaraan, joka ei vielä ole paikallisessa arkistossa, luodaan paikallinen haara, joka on linkitetty etähaaraan.

  4. Luo uusi haara nykyisen pohjalta

    git checkout -b haaran nimi

  5. Oksien poistaminen

    git haara -d haarannimi == paikallisen jo yhdistetyn haaran poistaminen
    git haara -D haaran nimi == pakotettu poisto paikallinen haara
    git push origin:branchname == haaran poistaminen keskusvarastosta

  6. Haaran yhdistäminen nykyiseen

    git merge --no-ff haaran nimi

  7. Katso, mitä tiedostoja on muutettu nykyisessä hakemistossa:

    git-tila

  8. Katso nykyiset muutokset:

    git ero

  9. Nykyisten muutosten tallentaminen:

    git lisätä tiedostonimiä== lisää muokattuja/luotuja tiedostoja/hakemistoja
    git rm filenames == lisää poista tiedosto/hakemisto
    git commit == tallenna lisätyt muutokset. Muokkaus avautuu, jotta voit kirjoittaa kommentin sitoumusta varten.
    git commit -a == tallentaa kaikki lisätyt muutokset ja kaikki muutetut tiedostot. Voit tallentaa kaikki muutokset, jos tiedostoja ei lisätty.

Vakiotoimintamenettelyt

  1. "Aloita työskentely tehtävän parissa."
    Suoritetaan ennen työn aloittamista. Puun tulee olla muuttumaton.

    git checkout mestari
    git vedä
    git checkout -b haaran nimi

  2. "Tee toinen työ."
    Suoritetaan tietyn muutoksen jälkeen, jonka olemus on kokonaisvaltainen.

    # tarkista, mitkä tiedostot ovat muuttuneet tähän mennessä
    # poista, jos jokin on täysin pielessä
    git-tila

    # katso muutosten tekstin vaatimustenmukaisuus
    # säännöt puhtaiden sitoumusten ylläpitämiseksi. poista, jos roskia pääsee sisään
    git ero

    # jos tiedostoja ei pitäisi sitoa (esim.
    # viittaa toiseen atomimuutokseen.)
    # merkitse sitten vain ne tiedostot, joiden muutokset on tallennettava
    lisää...
    git rm...

    # Tallentaa. -m voidaan jättää pois, sitten kommentoida editorin kautta
    git commit -m "Joku commit-viesti"

    # jos kaikki tällä hetkellä tehdyt muutokset on tallennettava, niin
    # Käytä git add -toimintoa lisätäksesi uusia tiedostoja ja tallentaaksesi kaiken muun käyttämällä
    git commit -a -m "Joku commit-viesti"

  3. "Haara työntäminen keskustietovarastoon"
    Suoritetaan työn päätyttyä tai jokaisen päivän lopussa (jotta palvelimella on varmuuskopio) tai jos sinun on näytettävä joitain muutoksia kollegalle.

    git push -alkuperän haaran nimi

    Sinun ei pitäisi painaa jokaisen sitoumuksen jälkeen, koska tämä edellyttää pääsyä ennen etäpalvelin ja vastaavasti hukkaan heitettyä aikaa.

  4. "Alennus isäntään nähden."
    Suoritetaan ennen valmiin tehtävän lataamista palvelimelle, kun kaikki muutokset on jo tehty:

    git checkout mestari
    git vedä
    git checkout haaran nimi
    git rebase master

    Jos syntyy ristiriitoja, sinun on:

    (*)
    git status == tarkista tiedostot, joissa on ratkaisemattomia ristiriitoja.

    Muokkaamme ensimmäistä tiedostoa, jossa on ristiriita: löydämme siitä "<<<<<». То, что между <<<<< и ==== – содержит копию текста из master ветки, то что между ===== и >>>>> sisältää tekstiä ketjustamme. Meidän on jätettävä tähän kohtaan yksi versio, joka sisältää sekä isäntäkoneen että haaramme yhteisen koodin

    git add modified_file

    Mene (*)

    Kun olet korjannut ristiriidat kaikissa tiedostoissa, suorita

    git rebase --jatka

    Jos ristiriidat eivät ole yhteensopivia uudelleenpohjan jatkamisen kanssa

    git rebase --abort == keskeyttää uudelleenpohjan ja palauttaa haaran alkuperäiseen

    tila (ennen uudelleenpohjan alkua)

    Uudelleenpohjan jälkeen päivitämme haaran tilan keskustietovarastoon

    git push -alkuperä haaran nimi -f

  5. "Muutostilan lyhytaikainen pysyvyys."
    Suoritetaan, jos on tarpeen väliaikaisesti keskeyttää työ nykyisellä haaralla lyhyeksi ajaksi (esimerkiksi tarkastelua varten tai suorittaaksesi jonkin kahden minuutin tehtävän).

    git stash save

    Tämän jälkeen puu on puhdas, voit vaihtaa toiseen haaraan/isäntään ja niin edelleen, työskennellä ja sitten palauttaa tilan käyttämällä

    git checkout alkuperäinen sivuliike
    git stash pop

    Näin muutoksen tila palautuu.

  6. "Pitkäaikainen muutostilan ylläpito."
    Suoritetaan työpäivän päätteeksi niin, että osittaisetkin muutokset varmuuskopioidaan; tai tarvittaessa siirtyä kiireellisesti toisen tehtävän ratkaisemiseen, mikä voi kestää huomattavasti enemmän kuin 5-10 minuuttia.

    git add .
    git commit -m "Osittainen toimitus"
    git push -alkuperän haaranimi

    Myöhemmin palataksesi samaan tilaan kuin ennen, suorita

    git checkout haaran nimi
    git reset --soft HEAD^
    git reset HEAD.

    Tärkeä! Tällaisen tallennus-/palautustoimenpiteen jälkeen seuraavan kerran

    git push -alkuperän haaran nimi

    Varoitus annetaan, jos muutos on epäjohdonmukainen. Jos haluat pakottaa muutokset lähetettäväksi, sinun on lisättävä -f-vaihtoehto.

    git push -f alkuperä haaran nimi

    Tärkeää: Älä aina lisää -f:ää, sillä se säästää esimerkiksi vahingossa tapahtuvilta kirjoitusvirheiltä haaran nimessä.

  7. "Käiearvostelu."
    Suoritetaan puhtaalle puulle, tallenna tarvittaessa väliaikaisesti muutokset kohdan 5 mukaisesti.

    git checkout mestari
    git vedä
    git haara -D haaran nimi
    git checkout haaran nimi
    git rebase master == haaran tulee olla päällekkäinen ilman ristiriitoja
    git diff master == tutkia eroa masterista tai yleisestä erosta tai
    git log master..HEAD == katso mitkä commits olivat isäntäkoneen ja nykyisen haaran välillä

    Jos kaikki on hyvin, teemme:

    git checkout mestari
    git merge --no-ff haaran nimi
    git push origin master
    git push origin: haaran nimi
    git haara -d haaran nimi

Toivomme, että tiedät, mikä käyttöjärjestelmä sinulla on. Ja varoitamme heti uusia tulokkaita: älä sekoita gitiä ja GitHubia - ne ovat eri asioita. Olemme kiinnostuneita gitistä, ja GitHub (tai vastaavat palvelut, kuten Bitbucket tai GitLab) isännöi pääasiassa gitiä käyttäviä projekteja.

Arkisto

Joten nyt sinulla on git. Nyt meidän on luotava sille versiokauppa. Muista, että tätä tallennustilaa kutsutaan arkisto (englanninkielinen arkisto)- tarvittaessa voit lisätä tämän sanan jonnekin. Riippuen siitä, mikä komentotulkki sinulla on, sopiva komento luo uusi hakemisto, avaa se(komentorivillä eli shellissä, ei Explorerissa tai muussa vastaavassa) ja tehdä:

Git init

Siinä kaikki, paikallinen arkisto on luotu tähän kansioon. Se, mikä on tällä hetkellä tallennettu tähän, on varmuuskopio, joten luomme työkopion, jotta se ei pilaisi (englanniksi check out) paikallinen versio:

Git klooni

Missä on polku kloonatuun arkistoon. Tarkastelemme nyt tapausta, jossa olet luomassa työkopiota omasta arkistostasi, joten tässä sinun on määritettävä polku hakemistoon, jolle suoritimme git init -toiminnon.

Mutta jos olet siisti jätkä ja työskentelet jo etäpalvelimen kanssa, tämä komento on juuri oikea sinulle:

Git klooni käyttäjätunnus@isäntä:/polku/säilöön

Hae metsää

Vähän teoriaa. Git toimii hallitsemalla kolmea puuksi kutsuttua rakennetta. Ensimmäinen on työhakemisto, se tallentaa tiedostot, joiden kanssa työskentelet juuri nyt. No, se toimii, se on loogista. Toinen on Index, eräänlainen tarkistuspiste, jonka avulla voit tehdä muutoksia pilaamatta mitään. Ja kolmas on HEAD, joka viittaa viimeisimpään tekemääsi sitoumukseen. (Jotta et joutuisi hämmentämään terminologiaa: sitoudu (englanniksi commit)- tämä tallentaa projektin tilan arkistoon. Lyhyesti sanottuna, pidä sitä uutena versiona.)

Joten, jotta et eksy näissä kolmessa männyssä, muista kaksi hienoa komentoa: add ja commit. Ne antavat työsi vaeltaa hiljaa Gitin läpi ja säästää sinne, missä se on tallennettava. Jos keksit jotain loistavaa ja teet heti muutoksen projektin työkopioon, älä kiirehdi tekemään sitä heti! Kokeile sitä ensin hakemistossa tehdäksesi tämän ajon:

Git add [tiedostonimi]

jos teit muutoksen vain yhteen tiedostoon, tai

Git add *

jos työskentelit kovasti, vaihdoit useita lähteitä kerralla. Ovatko muutokset positiivisia? Testasitko hyvin? Sitoudu sitten mieluummin:

Git commit -m "Toimita viesti"

Olet tietysti paha kaveri etkä jätä kommentteja koodiisi. Mutta se on eri asia. Älä ole laiska jättämään selittäviä viestejä: voit olla varma, sinulla on tarpeeksi muita ongelmia kuin selvittää, mikä tässä sitoumuksessa on muuttunut edelliseen versioon verrattuna.

Tässä muuten selittävä kuva:

Tiedosto(t) on nyt tiukasti paikallaan toimivan paikallisen kopiosi HEADissa. Et voi karkottaa niitä sieltä, mutta ne eivät silti ole etävarastossasi. Laitetaan ne myös sinne! Käyttää:

Git push origin mestari

Korvaa vain isäntä halutun haaran nimellä. Voi kyllä, et vielä tiedä, mitä oksat ovat. Okei, muista tämä paikka toistaiseksi, ja kun luet haarautumisesta, tule takaisin tänne.

Voi kyllä, palvelimien kanssa työskenteleville hienoille tyypeille (on sopivaa puhua esimerkiksi GitHubista), komento on seuraava:

Git etälisäyksen alkuperä [palvelin]

Haaroittuminen

Englanniksi tätä asiaa kutsutaan haarautuminen- On parempi syventyä tähän asiaan ja lukea haaroittamisesta tarkemmin, esittelen vain sen. Haaroittuminen käytetään samanaikaiseen ja itsenäiseen eri ominaisuuksien kehittämiseen (no, tai enemmän bugeja, koska lähdekoodia on enemmän). Päähaara on hallita- se tulee näkyviin arkistoa luotaessa. Muut haarat ovat hiekkalaatikoita, kun olet pelannut niitä tarpeeksi, yhdistä ne yhdeksi kokonaisuudeksi masterissa. Nyt selitän kuinka tämä tehdään.

Uuden haaran luominen

Joten päätit kehittää jotain uutta ominaisuutta. Luo sille uusi haara:

Git checkout -b [uusi_haara]

Voi kyllä, mielikuvituksesi toimii luultavasti täydellä teholla, mutta maltillinen se haarojen nimeämisessä: voit nimetä haaran vain nimellä, joka on voimassa suosikkikielesi muuttujalle.

Vaihto oksien välillä

Pitäisikö minun pitää tauko tämän ominaisuuden parissa ja vaihtaa toiseen toimipisteeseen? Käytä (jos työskentelet paikallisen arkiston kanssa, sinun ei tarvitse määrittää sen nimeä):

Git checkout [arkisto]/[haara]

No, jos et halua työskennellä sen kanssa ollenkaan, poista se kokonaan:

Git haara -d [haara]

Voit tehdä mitä tahansa sopimatonta haaraasi: kukaan ei näe sitä ennen kuin työnnät sen etävarastoon komennolla:

Git push -alkuperä [haara]

Haarojen yhdistäminen

Voit yhdistää haaran parhaillaan työskentelevään haaraan käyttämällä:

Git merge [haara]

Mutta tietysti tämä kaikki johtaa konflikteihin. Ja tämä on todellinen ongelma. Joten yritä korjata kaikki manuaalisesti suoraan arkistohakemistossa. Älä sitten unohda merkitä, että olet "vuotanut" ne:

Git add [tiedostonimi]

Muuten, oksia voidaan verrata:

Git-diff [yksi_haara] [muu_haara]

Joten nyt ryhdytään päättäväisempiin toimiin. Päivitämme arkistoamme viimeisimmän sitoumuksen mukaisesti. Se on erittäin helppo tehdä (mutta ei ole kovin helppoa palauttaa sitä, joten mieti kahdesti ennen kuin teet tämän kauhean virheen):

Hitto vedä

Tietenkin ymmärrän, että olet liian siisti jättääksesi muistiinpanoja tulevaisuutta varten - pidä kaikki päässäsi - mutta silti suosittelen, että jätät tunnisteet. Ja tämä ei ole minun keksintöni, monet ihmiset tekevät näin:

Git-tagi [first_ten_characters of the_corresponding_commit]

Etkö tiedä mitä ensimmäiset merkit ovat halutun sitoumuksen nimessä? Ei hätää, katso arkiston historiaa - sen lokia:

Tämän hyödyllisen asian käyttämiseen on joukko erilaisia ​​parametreja, googlaa ne itse. Ai niin, kirjoitimme siitä jo kerran

Git GUI

Mukana git - Suorita git gui komentoriviltä ja msysgit Windowsin asennusohjelma lisää sen aloitusvalikkoon.

Git GUI voi tehdä suurimman osan siitä, mitä tarvitset gitin kanssa. Sisältää kohtauksen muutokset, gitin ja arkiston määrittäminen, push muutokset, haarojen luominen/tarkistaminen/poistaminen, yhdistäminen ja paljon muuta.

Yksi suosikkiominaisuuksistani on hiiren kakkospainikkeen valikon "skripti" ja "komentosarja"-pikakuvakkeet, joiden avulla voit jäädyttää tiedoston tiettyjä osia. Voit saavuttaa saman git add -i -sovelluksella, mutta mielestäni sitä on helpompi käyttää.

Se ei ole kaunein sovellus, mutta se toimii melkein kaikilla alustoilla (Tcl/Tk-pohjainen)

GitK

Sisältyy myös gitiin. Tämä on git-historian katseluohjelma, jonka avulla voit visualisoida arkiston historian (mukaan lukien haarat, kun ne luodaan ja yhdistetään). Voit selata ja etsiä.

Sopii hyvin git-guin kanssa.

Gitnub

Mac OS X -sovellus vastaa periaatteessa git-lokia, mutta siinä on jonkin verran github-integraatiota (esim. "Network View").

Näyttää hyvältä ja sopii Mac OS X:lle. Voit etsiä arkistoja. Suurin kritiikki Gitnubia kohtaan on, että se näyttää historian lineaarisesti (haara kerrallaan) - se ei visualisoi haaroittumista ja sulautumista, mikä voi olla tärkeää gitin kanssa, vaikka tämä onkin suunniteltu parannus.

GitX

Suunniteltu "gitk-kloonaukseen OS X:lle".

Se voi visualisoida epälineaarisen haarahistorian, tehdä sitoumuksia, selata ja etsiä, ja siinä on myös joitain muita mukavia ominaisuuksia, kuten kyky "Quickklook" mitä tahansa tiedostoa missä tahansa versiossa (paina välilyöntiä tiedostoluettelonäkymässä) viedä mitä tahansa tiedostoa (vetämällä ja pudota).

Se on paljon paremmin integroitu OS X:ään kuin git-gui/gitk, ja se on nopea ja vakaa jopa poikkeuksellisen suurilla arkistoilla.

Alkuperäistä git pieter -varastoa ei ole päivitetty viime aikoina (yli vuosi tätä kirjoitettaessa). Brotherbard/gitx:stä on saatavilla aktiivisemmin ylläpidetty haara - se lisää "sivupalkki, hae, vedä, työnnä, lisää kaukosäädin, yhdistä, valitse, perusta uudelleen, kloonaa, kloonaa kohteeseen"

SmartGit

Kotisivulla:

SmartGit on käyttöliittymä hajautettuun versionhallintajärjestelmään Git ja se toimii Windowsissa, Mac OS X:ssä ja Linuxissa. SmartGit on suunniteltu kehittäjille, jotka haluavat graafisen käyttöliittymän komentorivisovelluksen kautta ollakseen vieläkin tuottavampia gitin kanssa – tämän päivän tehokkaimman DVCS:n kanssa.

TortoiseGit

TortoiseSVN-gitin versio Windows-käyttäjille.

Se siirtää TortoiseSVN:n TortoiseGitiin. Uusin versio 1.2.1.0. Tämä versio voi suorittaa normaaleja tehtäviä, kuten sitoutua, näyttää lokin, kahden version eron, luoda haaran ja tagin, luoda korjaustiedoston jne. Katso lisätietoja julkaisutiedotteista. Olet tervetullut osallistumaan tähän projektiin.

QGit

QGit on git GUI-katseluohjelma, joka on rakennettu Qt/C++:aan.

Qgitin avulla voit tarkastella muutoshistoriaa, tarkastella korjaustiedostojen sisältöä ja muutettuja tiedostoja graafisesti erilaisten haarakehitysten jälkeen.

gitg

gitg - git-varaston katseluohjelma gtk+/GNOME-suunta. Yksi suurimmista haasteista on tarjota yhtenäisempi käyttökokemus Git-rajapinnoille useilla työasemilla. Tämä ei tarkoita cross-platform-sovellusta, vaan tiivistä yhteistyötä muiden käyttöjärjestelmien vastaavien asiakkaiden kanssa (esim. GitX OS X:lle).

Erikoisuudet

  • Näytä muutoshistoria.
  • Käsittele suuria tietovarastoja (lataa linux-arkiston, 17000+ versiota, alle 1 sekunti).
  • Tee muutokset.
  • Vaiheet/poistetut yksittäiset osat.
  • Peruuta muutokset.
  • Näytä versioiden muutosten väritys.
  • Tarkastele tietyn version puuta.
  • Vie tietyn version puun osia.
  • Anna mikä tahansa komento ymmärtää, kuten "git log", historian rakentamiseksi.
  • Näytä ja vaihda haarojen välillä historianäkymässä.

Gitbox

Gitbox on graafinen Mac OS X -käyttöliittymä git-järjestelmän versionhallintaan. Yhdessä ikkunassa näet hakemiston haarat, historian ja työn tilan.

Päivittäiset toiminnot ovat helppoja: vaiheet ja ohimenevät muutokset valintaruudun kautta. Lukitse, vedä, tyhjennä ja paina yhdellä napsautuksella. Kaksoisnapsauta muutosta Näytä ero FileMerge.appilla.

Gity

Gity-verkkosivustolla ei ole paljon tietoa, mutta siellä olevissa kuvakaappauksissa näkyy täysin toimiva avoimen lähdekoodin OS X git gui.

Meld on visuaalinen rajaus- ja yhdistämistyökalu. Voit verrata kahta tai kolmea tiedostoa ja muokata niitä paikallaan (erot päivittyvät dynaamisesti). Voit verrata kahta tai kolmea kansiota ja suorittaa vertailutiedoston. Voit selata ja tarkastella työkopiota suosituista hallintajärjestelmistä, kuten CVS, Subversion, Bazaar-ng ja Mercurial [ja Git].

Katana

Steve Dekorten git-käyttöliittymä OSX:lle.

Katso, millä etähaaroilla on vetomuutoksia ja paikallisilla repoilla push-muutoksia. Git-toimintoja lisää, sitoudu, työnnä, vedä, merkitse ja nollaa tuetaan, samoin kuin visuaaliset erot ja visuaalinen esikatselu projektihierarkiaan, joka korostaa paikallisia muutoksia ja lisäyksiä.

Ilmainen yhdelle arkistolle, 25 dollaria lisää.

Sprout (aiemmin GitMac)

git build -suuntausta on helppo käyttää. Siinä on natiivi Cocoa (mac-tyyppinen) käyttöliittymä, nopea arkiston selaus, kloonaus, push/pull, fork/merge, visuaalinen ero, etähaarat, helppo pääsy päätteisiin jne.

Tekemällä yleisimmin käytetyistä git-toiminnoista intuitiivisia ja helppoja suorittaa Sprout (aiemmin GitMac) tekee gitistä käyttäjäystävällistä. Yhteensopiva useimpien git-työnkulkujen kanssa, Sprout sopii erinomaisesti kehittäjille ja kehittäjille, tiimiyhteistyölle sekä edistyneille ja aloitteleville käyttäjille.

Torni

Rikas graafinen käyttöliittymä Mac OSX:lle. 30 päivän ilmainen kokeilu, 59 dollaria yhden käyttäjän lisenssistä.