ANNA WHITNEY: Taigi, aš ruošiuosi kalbėti apie tai, kaip naudoti Git, ir kodėl jums turėtų rūpintis. Git yra versija, kontrolės priemonė. Jūs tikriausiai susipažinęs su kažkas panašaus į "Google Docs" arba Dropbox, kitų dalykų, kurie leidžia jums pasidalinti versijas dalykų ir sekti pokyčius jūs atlikote, kad įvairių dokumentų. Apie GitHub dalykas yra kad jis optimizuotas kodas ir ji suteikia jums didžiulį kiekį kontroliuoti, ką keičia išlaikyti ir kokie pokyčiai jums atsikratyti ir kurio pakeitimai įtraukti. Taigi, kad didelis, kodėl iš Kodėl jūs norite naudoti git. Kadangi jūs tikrai negali kodas labai gerai "Google Docs". Jūs tik tuo sąsajos. Tai šiek tiek sunkiau įtraukti, kaip ir OK, kažkas šį pakeitimą ir kažkas kitas atliko šį kitokį pakeitimą. Ir jūs norite išlaikyti pirmosios pusės pirmosios kaitos ir antroji pusė antrosios kaitos ir turi visa kita lieka tos pačios. Git leidžia jums padaryti tiems, viskas labai tiksliai. Ir todėl, jei jūs dirbate programinę įrangą, tai gana įprasta naudoti git darbe. Ir tai gana daug geriausias būdas daryti bendradarbiavimą su programine įranga. Yra keletas kitų versijų kontrolės įrankiai, kad galėtumėte naudoti vietoj, bet kažkas panašaus į tai bus būtina. Nes vėl, "Google" Dokumentai tikrai ne nukopijuokite jį, kai jūs bandote rašyti kodą bendradarbiaujant su kitomis programuotojai. Mes turėjome šią naują XKCD kad buvo gana svarbi. Taigi, tikiuosi, iki pabaigos šio pristatymo, ji bus clear-- truputį clearer-- ne tik komandų sąrašas kad jūs galite paleisti gauti viską dirbti, bet šiek tiek daugiau iš loginis kodėl šios komandos darbą. Taigi leiskite pereiti į tai, kaip mes iš tikrųjų naudoti git. Ir iš tikrųjų, aš ruošiuosi trumpai pop čia. Jei turite nešiojamąjį kompiuterį, norite ištraukite jį ir atverti CS50 IDE. Mes daugiausia bus dirba terminalą, ne tiek daug, mes tik daro šiek tiek į failus. Taigi, ką jūs ketinate nori daryti, tik gauti įsteigti čia pirmiausia jūs ketinate atidaryti savo SSH raktas file-- viešojo rakto failą. Aš nežinau, jei jūs kalbėjo labai daug apie SSH raktus, bet tai, ką norite daryti ar tai. GERAI? Ir tai bus pop-up tai ilgą eilutę simbolių, ir jūs tiesiog norite nukopijuoti juos. Nukopijuokite visa tai. Tiesiog tai padaryti. Ir tada, jei jūs einate į savo profilyje GitHub, galite pereiti prie Redaguoti profilį, ir tada pagal SSH raktus, jūs ketinate pridėti SSH raktą. Ir jūs galite Pavadinimas ji CS50 IDE. Ar tai prasminga? Ar visi gauti šį žingsnį? Tai tik todėl, kad tada, kai mes naudojant kapinyną IDE, mes galime jį pasiekti tiesiogiai ir neturi nerimauti rašyti mūsų slaptažodžiu kiekvieną kartą, kai mes jį naudoti. GERAI. Taigi dabar mes uždaryti, kad. Jei kas nors nori man pridėti juos į GitHub saugykloje, jei tik gavo čia, aš galiu padaryti, kad dabar. Jei turite GitHub sąskaitą ir jums ne man pasakė savo GitHub vardą, dabar pats laikas. Niekas? GERAI. Tada aš ir toliau bus. Gerai. Taigi, pirmiausia pakalbėkime apie kaip kapinynas veikia. Jūs turite nuotolinio visuomenės saugyklą. Tai yra tai, ką buvau tik rodo jums GitHub. Aš sukūriau saugyklą. Tai vyko kažkur GitHub serverių. Ir jos visuomenei, kiekvienas gali jį pamatyti. Tada, ką mes ketiname padaryti, tai mes ketiname sukurti vietos privataus versiją tai mūsų atskirus kompiuterius. Ir iš tiesų, jūs galite turėti daugelis tų, kad visi atkreipti dėmesį į pačios visuomenės saugykloje. Ir iš tiesų, tai taip pat galima turėti kelis viešuosius saugyklas kad jums patinka, jūs gaunate kai iš čia informacija o kai iš čia informacija. Bet tai neturėtų būti reikšmingi Jūsų galutinių projektų ar whatever. Taigi, aš nesiruošia eiti į tą dabar. Bet taip, kaip jūs gaunate nuo to, ši Nuotolinio viešojo saugykloje, kad iš tikrųjų turintys tą vietinį kopiją? Galite naudoti komandą, pavadintą git klonas, kuris pažodžiui reiškia tiesiog padaryti kopiją, kaip tai skamba kaip. Ir taip, ką jūs ketinate padaryti, tai eiti į kapinyną puslapį GitHub. Jūs ketinate kopijuoti klonas URL SSH klonas URL, nes mes tik įsteigė SSH raktus. Jei jų neturite, galite paspausti vietoj to HTTPS ir jūs galite naudoti, kad. Ir tada čia jūsų darbo vietos katalogas, nauja git klonas, o tada pasta. Kai jis paklaus, ar norite nuolat daro jį ir pasakyti "taip". Ir dabar, jei pamatysite, ten katalogas su duomenų saugykloje pavadinimu, kaip ir kodėl, už seminarą. Ir jei mes sąrašą failai čia jūs galite matyti, kad jie tuos pačius failus kad yra įtrauktos į tinklalapį. Taigi, dabar jūs turite vietos kopija saugykloje. Tarkime, jūs norite iš tikrųjų keisti jį. Visi jūsų pokyčių Git yra stored-- kaip pagrindinio vieneto vadinamas įsipareigoti. Įsipareigoti yra tik riekė darbas, kad jūs kartu sudėjus, ir jūs papasakojo GitHub, noriu Išsaugoti kaip, aš taupyti savo darbą, iš esmės. Ir tai identifikuojama, kas vadinamas įsipareigoti maišos, kuris iš esmės yra tik unikalus ID. Bet kaip ji manimi generuoja yra iš tikrųjų, GitHub turi tam tikrą formatą, kaip ataskaitų visus pakeitimus, kad iš tikrųjų išvyko į tą padaryti, o tada tai maišos, kad pokyčių rekordą. Taigi įsipareigoti maišos iš tikrųjų sako, Jums tai, kas atsitiko, kad įsipareigoti, ką keičia jūs padarėte. Taigi, norint padaryti įsipareigoti, tegul eiti čia ir jei jūs tiesiog atverti failą, names.txt, kuris jūs galite padaryti iš komandinės eilutės su opennames.txt ir ji bus pop up čia. Tada galite pridėti savo vardą. Ir tada išsaugokite jį. Ir dabar, jei įvedate GIT statusas, jūs galite pamatyti kad filenames.txt buvo pakeistas. Taigi Gita žino, kad jūs atlikote pakeitimus. Nieko manimi buvo padarytas dar. Taigi pasakyti Git, tai yra failas, kuris yra jos pakeitimų kad aš noriu jums iš tikrųjų išsaugoti, jūs gitaddnames.txt. Ir dabar, jei jūs darote git statusą, jums matyti, kad ji vis dar nebuvo padarytas. Bet dabar jis žino, kad tai yra pakeisti, kad norite padaryti. Iš esmės tai, kas vyksta yra jūs turite savo direktoriją, ir Git turi ką indeksą atsitiko su darbo katalogą, yra pasirengusi būti padarytas. Ir todėl, kai jūs padarote pakeitimus, jie savo darbo kataloge. Jie savo kompiuteryje. Bet jie nebuvo įdėti į šio indekso dar. Ir todėl, kai mes darome git add, jis juda dalykų iš darbo kataloge. Na, jie dar darbo katalogas. Bet tai kopijos visiems pasikeičia į šį indeksą. Ir taip, tada, kai jūs do git commit-- kuris yra kitas dalykas, mes ketina do-- ji iš tikrųjų įsipareigoja juos ir iškelia juos į Nuolatinė istorija savo saugykloje. Ir kai jums įsipareigoja, turėtumėte visada įdėti informatyvų įsipareigoti pranešimą. Taigi dabar, jei mes darome git statusas, sako, kad nieko padaryti, nes visi pokyčius, Aš padariau jau buvo padarytas. Aš ruošiuosi išmesti atsitiktinio keičiasi, kad aš padariau, kad. Taigi, dabar jūs galite pamatyti, tegul sakyti, kad mes iš esmės tik padarė violetinė įsipareigoti, tiesa? Užtenka tik pridedant jį šios istorijos pabaiga kad anksčiau, kai aš padariau failą, names.txt, kai aš pirmą kartą ją sukūrė, gal tai buvo oranžinis įsipareigoti. Ir taip, tada tai padaryti maišos po purpurine deimantas kažkaip indicate-- nėra žmogaus skaitymo form-- bet kažkaip nurodyti, į GitHub vidus kad mes padarėme tai konkretus pakeisti failo names.txt. Taigi, dabar jūs turite ant savo vietinio kaita privatus versija saugykloje. Dabar galite matyti klaida eina abi puses, ir, žinoma, ji nebūtų labai naudinga jei galėtume tik kada nors patinka imtis pokyčių, kurie buvo nuotolinio saugykloje, bet mes neturėjo būdas kad mūsų pačių pakeitimus. Taigi mes norime stumti mūsų pakeitimus prie nuotolinio saugykloje. Bet prieš jums stumti savo pakeitimai saugykloje, Jūs visada turite traukti įsitikinkite, kad nebuvo jokių naujų pakeitimų, atliktų laikas, nes jūs pirmą kartą tapo tą pakeitimą. Taigi, aš ruošiuosi daryti git trauką, ir ji sako jau iki šiol, nes matyt niekas iš jūsų stumiama, o aš darau tai. Bet taip ir dabar aš galiu padaryti git stumti. Ir dabar, jei aš einu čia, galiu matyti, kad naujausias įsipareigoti tai vienas, kad aš padariau. Kad pokyčiai dabar nuotolinio saugykloje. Taigi kiekvienas, kuris turi savo kompiuterį iš, eiti į priekį ir pridėti savo vardą. Įsitikinkite, kad traukti prieš stumti, ir tada stumti į nuotolinio saugykloje. Ir todėl mes turėtų galėti pamatyti. Taigi dėl to, kad jūs visada nori ištraukti prieš stumti yra todėl, kad jei bandysite stumti ir ne, ir jūs trūksta kai įsipareigoti tai ant nuotolinio valdymo pulto serveris, jis bus tiesiog suteikti jums klaidą. Bet jei ji nesuteikia jums klaida, tai perrašys ką Ankstesnis asmuo buvo stumiama. Ir jūs nenorite prarasti savo darbą. Taigi pažiūrėkime. Ar kas nors Dotarłeś Ši darbo? Auditorija: [nesigirdi]. ANNA WHITNEY: Kas atsitinka, kai you-- Auditorija: [nesigirdi]. ANNA WHITNEY: Taigi jūs problemų traukos. Kas yra klaida pasakyti kai bandote traukti? Auditorija: [nesigirdi]. ANNA WHITNEY: Yra ne klaida, kai jūs traukite. Tai nieko nesako, kai jūs traukite? Auditorija: [nesigirdi]. ANNA WHITNEY: Gerai. Taigi, aš nežinau, labai apie jūsų aplinkoje kad jūs turite teisę ten. Bet taip, kas yra klaida, kad jūs gaunate, kai jūs bandote stumti? Auditorija: [nesigirdi]. ANNA WHITNEY: Gerai. Pabandykite git trauka kilmės kapitonas. Taigi, kaip šis. Auditorija: [nesigirdi]. ANNA WHITNEY: Vėlgi, aš nežinau, labai daug apie jo kūrimo aplinka specialiai. Bet kai aš ką tik buvo rašyti git trauką, tai šiek tiek įvardinant exactly-- jūs paprastai pasakyti, Arba jūs galite paprastai nėra, tačiau galite pasakyti, git, kur tiksliai ištraukti iš. Taigi, ką nuotolinio serverio traukti iš. Nes kaip jau sakiau, galėtų būti daugiau negu vienas, nors jis pasireiškia ne paprastai tik rūšiuoti kiekvieną dieną plėtros praktikoje. Ir mes kalbame A Šiek tiek apie šakų. Štai iš tikrųjų Kitą vieta mes ketiname. Ir taip meistras būtų filialo pavadinimas. Ar tai padės? Nėra? Aš vis dar neveikia? Ar kas nors gavo jį dirbti? GERAI. Taigi aš galiu apsimesti. Galiu apsimesti, kad aš esu " Papildomas asmuo, bet jūs teks man duoti antra, jei norite gauti išsidėstymą aikštelėje. Taigi, ką aš darau yra aš creating-- aš klonavimas užmaukite ant mano kompiuterio saugykloje. Bet pirmiausia turiu pridėti dar vieną rinkinį SSH raktų, kad galėčiau tai padaryti. GERAI. Taigi, dabar, taip? Auditorija: Taigi žalias taškas šalia kai kurie iš jų, ką tai reiškia? ANNA WHITNEY: Šalia SSH raktus? Tai tiesiog reiškia, kad aš naudojamas tas SSH raktus neseniai. Taigi padarykime tą patį. Jis veikia šiuo metu? GERAI. Auditorija: [nesigirdi]. ANNA WHITNEY: Gerai. Taigi dabar, jei aš atidarau names.txt, Aš turėtų galėti see-- todėl jūs turėjo peržiūrėti konfliktą. Gerai. Taigi tegul tiesiog atsikratyti jų. Mes kalbame apie suliejimo konfliktai tik sekundę, bet tai kodėl jūs visada nori įsitikinti, kad traukos dirbo prieš bandant stumti. Ir nustatyti bet kokius konfliktus, kol jūs stumti. GERAI. Bet kad čia pavyzdys ką jūs tada daryti. Jei aš einu į čia, įsitikinkite, kad Aš turėti naujausių pakeitimų Gerai, dabar aš tik ketina naudoti tai. Teisė, Gerai. Taigi aš padariau kaitą čia. Aš turiu būti atsargūs. Aš turiu iš tikrųjų išsaugoti tai. Now-- Gerai. Taigi ten kažkokiam keistam Daiktai vyksta čia, bet nesijaudinkite per daug apie tai. GERAI. Taigi dabar, jei aš atidarau names.txt ir aš pridėti mano vardą vėl, dabar galiu padaryti tą patį čia. Ir jūs pastebėsite, kad vietoj daryti pridėti ir tada įsipareigoti, Aš jau daro darbalaukyje tiesiog daro git įsipareigoti-a, tuomet m. Kuris, jei turite failą, jau existed-- kitaip tariant, tu negali sukurti naują file-- jūs neturite iš tikrųjų turi atskirai įtraukti jį. Jūs galite tiesiog pasakykite Git, kai aš įsipareigoti, noriu tiesiog pridėkite ją tiesiogiai. Bet jei jūs sukūrėte naują failą, turite specialiai pridėti jį, nes kitaip Git nebus stebėti jį kol Ypač svarbu pasakyti jį. Atsiprašome? Auditorija: [nesigirdi]. ANNA WHITNEY: Taigi dalykas apie Git yra tai, kad, siekiant suteikti jums tiek daug kontroliuoti ką keičia jūs naudojate ir tuos, kurie nesate, tai kartais šiek tiek nėra patogi, kuris yra, kodėl aš čia. Kadangi niekas poreikius, gaunant pristatymas apie tai, kaip naudotis "Google" dokumentus. Auditorija: Tai priklauso nuo auditorijos. ANNA WHITNEY: Gerai. Niekas reikia duoti ant kiek pristatymas naudoti "Google Docs iki A krūva CS50 studentams. Taigi minėjau trumpai kad yra šakos. Ir pačioje pradžioje, kad komiška, kad aš parodžiau kalbėjo apie Git turintys medžio modelį. Taigi, ką tai reiškia, tarkime kad saugyklos, pavyzdžiui, kaip aš jį dabar, yra raudona linija. Ir žinote, jis pagamintas sudaryta iš įsipareigoja krūva. Įsivaizduokite, kaip kai išilgai tos ilgio linija yra lygiaverčiai, kaip nustatyti įsipareigoti. Ar kažkas panašaus, ten krūva Įvairių įsipareigoja tai ten. Tikrai ne klausimas, kiek. Bet taip galime pasakyti, kad dabar aš turiu darbinis gabalas programinės įrangos, kad tai vyksta ten. Vietoj atstovaujanti mūsų mažai kapinynas tai tik bandymas, gal tai tikrasis projektas. Gal tai jūsų galutinis projektas. Gal tai programinė įranga, tai kaip iš tikrųjų naudojamas prekyboje. Jei norite pridėti naują funkciją, nenoriu nutraukti savo esamą kodą. Taigi užuot šie pakeitimai teisė į savo darbo kodekso viduryje, galite sukurti tai, kas vadinama filialas. O kur filialui pradedant, viskas yra identiška Jūsų regioninis filialas, kuris vadinamas meistras, pagal nutylėjimą. Ir tada, kaip jūs pridėti daugiau įsipareigoja, jie skiriasi. Ir jūs galite galų gale, turintys daugiau įsipareigoja nuo vienos šakos, nei kito. Jūs netgi galite turėti posistemes filialus nuo kitų šakų. Ir todėl, jei norite sukurti filialas ir filialai gali būti local-- tai reiškia, kad jie tiesiog savo kompiuteryje, jie kaip tik jums asmeniškai dirba toje feature-- arba jei gali stumti juos nuotolinio saugykloje ir jūs ir kažkas gali bendradarbiauti tos šakos, bendradarbiauti tą ypatybę būdas, kad jūs darytumėte kapitonas. Taigi dabar aš šiuo metu ant pagrindinio filialas. IDE yra pakankamai protingas, kad pasakyti man ne tik tai, ką katalogo aš, bet ką konkrečiai filialas aš. Taigi dabar, jei aš noriu sukurti naujas filialas, komanda yra šiek tiek unintuitively GIT kasos -b, už filialo. Ir tada vardas, kad aš noriu duoti filialą. Taigi, aš ruošiuosi padaryti filialas vadinama Anna filialas. Ir dabar ji sako aš ant anna filialas. Ir jei aš ieškoti šiuose failai, tada jums matyti, kad jie tiksliai tas pats, kaip jie buvo. Aš nieko nekeičia kreipdamiesi į filialą. Bet dabar leiskite man pasakyti, kad aš noriu padaryti tam tikrus šios šakos pokyčius. Taigi turiu tai kita failą, loremipsum.txt, jis ką tik gavo krūva svaičiojimas žodžiai jame. Taigi, jei aš atidarau tai, tarkim, kad aš noriu pakeisti pirmąjį žodį mano vardu. Jūs galite tai padaryti savo. Ir tada aš išsaugokite jį. Dabar aš ruošiuosi jį uždaryti todėl aš nelaikome netyčia redaguoti failus, kai aš nenoriu pasakyti, kad. Taigi dabar galiu padaryti tai. Ir aš nesiruošia stumti tai padaryti. Tai tik bus vietos dabar. Nes šiuo metu, yra ne filialas čia vadinamas anna filialas. Galėčiau sukurti. Jei aš norėjau pasidalinti savo darbą Anna filialas su visais jumis vaikinai, Galėčiau sukurti, galėčiau stumti ir Git būtų pasakyti, kaip sukurti filialas vadinama Anna filialas ant nuotolinio saugykloje. Bet jei jūs tik darbo funkcija ir jūs esate vienintelis, su juo dirbti, tai jūsų bruožas, tada ten jokios ypatingos priežasties stumti jį į nuotolinį saugykloje. Jis gali veikti kaip atsarginės kopijos. Bet jei jūs esate gana saugus, kad kompiuteris nesiruošia mirti, tada yra keletas privalumų tiesiog laikyti jį savo kompiuteryje. Nors aš neisiu į tuos, nebent mes turime šiek tiek pabaigoje laiką. Taigi dabar turiu filialą vadinama Anna filialas. Ir leiskite man tiesiog sukurti failą. Tai yra sukurti tuščia būdas failą su tam tikru pavadinimu Unix tik su jutikliniu komandą. Taigi, aš tik ketina paliesti failą pavadinimu Ana. Dabar, jei I-- ir jūs galite pamatyti kad failas yra there-- ji sako, kad ten yra nestebimo failą. Taigi, dabar aš jums reikia padaryti, git add. Ir dabar jis žino, kad Šis naujas failas egzistuoja. Auditorija: [nesigirdi]. ANNA WHITNEY: Apie anna filialas. Taip. Vos per sekundę, mes pamatysime, kad kai Aš einu atgal į šeimininko, jo ten nėra. Komanda pamatyti esamas šakos yra git filialas, ir tai rodo jums, kurie vienas esate. Yra daug įvairių kitas komandas susietas su tuo, kad jums padaryti skirtingi dalykai, filialams, bet tik git filialas savo valią parodyti, ką filialas esate, ir ką kiti filialai kurie yra jūsų vietiniame kompiuteryje. Taigi dabar grįžti prie šeimininko, aš GIT kasos meistras, be -B. Galite naudoti -B jei esate kuriant filialą. Ir jei esate ne sukuriant šaka, tada komandą vardas daro šiek tiek daugiau prasmės, nes kaip leiskite man eiti patikrinti meistras ir pamatyti, kas vyksta ten. Taigi dabar, jei aš tai padaryti, nėra failą Ana. Jei aš atidaryti šį failą, jūs galite pamatyti kad ten nėra jo pakeitimai. Ir taip, dabar aš galiu padaryti kai Čionai pokyčiai. Taigi aš galiu pasinaudoti tai, pavyzdžiui. Ir aš galiu paliesti kitą failas, vadinamas meistras. Ir taip, dabar jūs galite pamatyti Turiu Kai kurie pakeitimai, kad aš ne Režisūros kurie yra loremipsum, ir aš turiu šią naują failą. Taigi, dabar aš ruošiuosi pridėti naują failą. Ir aš ruošiuosi padaryti. Ir vėl, nors aš pridėjo vienas failas konkrečiai ir nebuvo pridėti failą, kuris jau egzistavo, nes aš naudoju -a, Visi failai, kurie jau egzistavo gaus pasirūpinta. GERAI. Taigi dabar filialai yra vis dar ten. Ir filialas vis dar egzistuoja. Galėčiau grįžti į anna filialą ir parodyti jums, kad mano pokyčiai čia meistras neturėjo įtakos tai, bet aš jums išsiaiškinti gavo iš kai nuėjau įvaldyti idėją ir jis dirbo, kad taip. Dabar tarkime, kad aš noriu, kad iš tikrųjų įtraukti šiuos pakeitimus į šeimininko. Aš baigiau savo funkciją. Tai veikia. Aš išbandyti jį, jis veikia. Ir dabar aš noriu įtraukti šią funkciją į pagrindinį gabalas programinės įrangos. Jūs baigė Paprasčiausias versija galutinį projektą, bet tada jūs iš tikrųjų turėjo šiek tiek papildomo laiko todėl jūs sugrįžo ir sukūrė šią naują funkciją, ir dabar norite sujungti jį taip, kad jūs iš tikrųjų galite parodyti jį savo TF. Nenuostabu, kad ši vadinamas git suliejimo. Ir matėte anksčiau, kaip jūs gali turėti suliejimo konfliktus, ir jūs ketinate turi juos išspręsti. Taigi, jei aš einu čia ir iš master-- dabar aš ant šeimininko ir aš noriu sujungti į pokyčiai iš Anna branch-- todėl aš ruošiuosi daryti GIT suliejimo Anna filialas. Ir tai pirmiausia bando automerge. Ir jei ten buvo ne prieštaringi pokyčiai, jei aš ką tik sukurtas byla anna apie anna filialas, ir ką tik sukūrėte failą meistras ant master filialas, tada ji tiesiog padaryti auto sujungti ir įsipareigotų rezultatą automatiškai. Bet jei jūs turite sujungti konfliktai, tada jūs turi nustatyti konfliktų prieš suliejimą galite eiti į priekį. Taigi dabar, jei aš einu į loremipsum, matome tą patį kad mes matėme anksčiau, kur yra dviejų skirtingų pasikeitimai. Ir aš galiu pritarti nei vienas iš jų. Aš netgi galite turėti juos būti vienas virš kito, jei tai prasminga, ką darau. Be kodas, paprastai jūs ketinate nori vieną versiją arba kita jei jūs abu padarė pakeitimus, kad. Atrodo, kad ten tikriausiai, kad Ši sąsaja, kai išgalvotas būdas man priimti vieną rinkinį pakeitimai ar kita. Bet kadangi aš ne iš tikrųjų žinau, kaip tai veikia, Aš tiesiog einu bandyti tai padaryti ranka, kuri yra ne darbo, taip pat. Taigi leiskite man tai padaryti taip, kaip aš padaryti žinoti, kaip, kuris yra [nesigirdi]. Ir tegul imasi vienas ant Meistras, nes mano vardu tikrai nėra, kad svarbu, kad jį reikia eiti į viską. Dabar tiesiog parodyti jums, kad iš tikrųjų padarė tai, ką aš pasakiau tai būtų, ten yra. Taigi dabar, jei aš git status-- ir jūs galite matyti žino, kad tai į merge-- todėl, kad aš pakeičiau šį failą kuris turėjo suliejimo konfliktų jame, Turiu pridurti, kad vėl taip, kad jis žino, kad tai saugu įsipareigoti. Taigi, aš ruošiuosi jį pridėti. Ir tada aš tik ketina padaryti įsipareigoti užuot žinute, nes jis bus automatiškai generuoti įsipareigoti pranešimą, kad kažkas apie tai, ką konfliktai buvo. Dabar sujungti įsipareigoti pranešimus ne visada yra super naudingas, bet jei ten nebuvo jokių konfliktų, ją tiesiog auto generuoti tą pranešimą ir jūs nebūtinai turi galimybę ją redaguoti. Tai būtų tiesiog automatiškai pereiti į Jūsų įsipareigoti istoriją šiuo pranešimu. Aš ne iš tikrųjų nežino, kaip, ah taip. Čia mes eiti. Tai tiesiog, ji ​​atidaro automatiškai teksto redaktoriumi, kad atsitinka būti nustatyti kaip numatytoji. Galėjau vietoj Done git įsipareigoti -m ir tada tiesiog tuščia citata eilutė. Ir tai būtų automatiškai padaryti suliejimo pranešimą be manęs turintys susidoroti su bet kokios redaktorius jis mano, kad tai turėtų naudoti už įvykdyti pranešimą. Gerai. Taigi, tai buvo komandų daug ir iš tik bitai daug informacijos labai greitai. Ar kas nors turite klausimų? Aš žinau, kad dauguma iš jūsų ne iš tikrųjų turi tai ir veikia. Auditorija: Taigi nėra Annos filialas vis dar egzistuoja šiuo metu [nesigirdi]? ANNA WHITNEY: Taigi, jei aš tai padaryti Git branch-- todėl klausimas buvo, veikia Anna filialas vis dar egzistuoja dabar, kad aš susijungė jį į šeimininko. Taip, tai daro, bet aš galiu jį ištrinti. Taigi tipiškas dalykas yra, taip, jei jūs sukūrė funkcija filialas ir funkcija turi buvo visiškai sujungti į master, ir jūs neplanuoja daryti daugiau dirbti tą funkciją, Jei sukūrėte naują funkciją, arba jei norėjau pradėti kurti naują funkciją, Jums būtų sukurti naują filialą tik sake švaros ir organizacijos. Taigi, ką aš galiu padaryti, kad ištrinti Filialas yra Git filialo -D Anna filialas. Ir jei nebūčiau susijungė anna filialas, kol aš bandžiau tai padaryti, jis man duotų sakydamas, kad klaidą Anna filialas nėra visiškai sujungtos. Kitaip tariant, pokyčių, kurie buvo nuo anna filialas nėra niekur kitur. Taigi, jei jūs ištrinti filialas, jūs prarasite tuos pakeitimus. Bet kadangi aš turėjau tik susijungė ją, Git pakankamai protingas žinoti, kad Anna filialas visiškai įtraukta į šeimininko. Ir tai yra iš tikrųjų galima ištrinti filialą, jei jūs tikrai noriu išmesti pakeitimus. Tai įmanoma ištrinti šaka, kuri yra ne sujungtos. Viskas ko jums iš tikrųjų reikia padaryti, tai keisti mažosiomis r ten į didžiąsias D. Bet tai paprastai nėra gera idėja, kuris yra, kodėl jūs gaunate klaida, kai bandote padaryti. Kitas klausimas? Auditorija: [nesigirdi]. ANNA WHITNEY: Taigi, jei jūs turėjote testas ir gamybos aplinkose, kaip jums gali būti susiję filialus tiems? Taigi, tai buvo tik pavyzdys filialas tai už funkcija ir tada jums atsikratyti tai kai jis susijungė. Taip pat galima jau seniai veikia filialai kad jūs naudojate tam tikrą dalį savo vystymosi procesą. Taigi jums gali gerai turėti bandymų stendo. Ir ten visokiais būdais integruoti kitas paslaugas Pajungti ir bendrauti su Git. Taigi jums gali turėti savo bandymo filialas automatiškai paleisti bandymus su šiuo kodu. Taigi, kaip jūs turite savo plėtra filialas, ir tada jūs turite savo produkciją filialas, ir jūs turite savo bandymo stende. Ir jūs imtis savo pakeitimus nuo vystymo filialo, kažkaip įtraukti juos į bandymų stendo naudojant tam tikrą eigą, kuri gali būti sujungti, kaip aš ką tik parodė. Ir tada jūs iš būtų, ten, tai būtų paleisti testus. Jūs galite turėti ją įsteigti tai padaryti automatiškai, net. Ir tada galima įtraukti jį į savo gamybos padalinyje. Ar tai atsakyti į jūsų klausimą? Visi kiti klausimai? Nes iš čia, mes einame nuo standartinių git komandas kad jūs tikrai naudoti bet laikas bandote daryti projektą ir gauti kažką, kad šiek tiek daugiau ezoterikos ir daugiau kaip kitą būdą daro kai kurie iš to paties, kad mes jau kalbėjome apie tai. Auditorija: [nesigirdi]. ANNA WHITNEY: Ne, kaip daugiau neįprasta. GERAI. Taigi yra visi gana aišku, apie tai? Apie tai, kas nutiko iki šiol ir Kodėl tai, kaip mes norėtume daryti dalykus? Ar tai prasminga? Puikus. Taigi vietoj jungiant arba kartais be to, sujungimo, yra ir kitas būdas įtraukiant pasikeičia iš vienos šakos į kitą, ir tai vadinama rebasing. Ir tai beveik kaip ā suliejimo priešinga. Taigi rebasing skiriasi nuo viskas, mes kalbėjome apie šiol nes ji iš tikrųjų perrašo savo istoriją. Ir kai kurie žmonės galvoja, kad tai yra kažkas, Jūs niekada neturėtų kada daryti Git. Bet tai yra funkcija, kuri Git pasiūlymų, todėl aš nuomonės , kad jis yra visiškai gerai tol, kol kaip žinote, kaip tai padaryti tinkamai. Tai tikrai tas atvejis, kad jus niekada neturėtų perrašyti visuomenės istoriją. Taigi tai, kas man buvo kalbame apie anksčiau, kai Sakiau yra keletas privalumų , turintys filialą, kad yra tik vietos jūsų kompiuteryje. Tai reiškia, kad galite naudoti triukus kaip tai ir aš eisiu į šiek tiek daugiau kodėl jūs galbūt norėsite tai padaryti per sekundę. Bet tik masinis Atsakomybės apribojimas pradėti su, niekada perrašyti visuomenės istoriją. Kadangi matėte anksčiau, kas atsitinka, jei jums nereikia daryti suliejimą teisingai, kai jūs traukite. Jei perrašė, jei aš turėjo perrašyti istoriją ir tada bando traukti, git būtų going crazy su 1000 klaidas sakydamas yra commits misting čia, kad patinka, jūs turite. Bet tada ten kitas įsipareigoja Jūs neturite kad esate čia. Taigi manyčiau, kad viskas buvo Manoma, kad jau įvyko. Būtų nesutampa ką buvo jūsų mašina. Niekada negalima padaryti, kad Jūsų bendradarbiai. Niekada perrašyti visuomenės istoriją. Bet jūs galite perrašyti vietos istoriją, ir keletas gerų priežasčių tai padaryti. Taigi, pirmiausia, kas atsitinka, kai jūs perskaičiuoja? Tarkime, kad turiu kapitonas filialas raudonai, ir tada mėlyna filialas mėlynai. Nors aš esu mėlyną filialas Galėčiau tipo git Rebase meistras, todėl rūšiuoti atvirkščiai kryptis susijungti. Aš rebasing prie šeimininko. Ir tai pažodžiui reiškia kad aš vartojate įsipareigoja kad aš padariau mėlyną filialas ir išleisti magistro pabaigą kaip savo bazę. Taigi, iš esmės, ką jis Ar tai apima visi įsipareigoja, kad nutikę nuo šeimininko, nes filialo taško tarsi jie būtų buvę visi įsipareigoja, kad yra ant mėlynos filialas. Ar tai konceptualiai prasmės? Taigi pagrindinė priežastis tai padaryti kad ji leidžia savo įsipareigoja faktiškai Rūšiuoti of-- individualus įsipareigoti gali būti darbo vienetas ir kad gali būti aišku, istorijos. Ir jūs neturite šių sujungti įsipareigoja, jei tai nėra akivaizdu, Kokias funkcijas, mes buvo sujungtos arba kokie pokyčiai iš tikrųjų buvo padaryta, nes jūs neturite prieigos faktines įsipareigoja, kad buvo priimti prieš suliejimą, tiesa? Tai ne tai ne visada akivaizdu, iš žurnalo, kuris iš tikrųjų, tai kažkas pažvelgti. Jei aš tai padaryti, jūs galite pamatyti žurnalą. Komanda yra tiesiog gauti žurnalą, ir jūs galite ieškoti per visus ankstesnius įsipareigoja. Taigi, kaip matote yra dar vienas sujungti įsipareigoti čia. Tai, kas nutiko, kai jums kyla Bėda traukiant ir anksčiau stumti. Taigi kai kurie iš jų yra gana aiški, tai pranešimai, kad kaip aš pridėjo failą, Scott įdėti savo vardą į failą. Dalykų, pavyzdžiui, kad. Bet tada mes turime šias suliejimą įsipareigoja ir tai tikrai ne akivaizdu, kas vyksta. Rebasing leidžia išvengti. Taigi, net jei jūs vis dar norite sujungti, net jei jūs vis dar noriu padaryti tiksli Tas pats, galite išvengti turintys suliejimą įsipareigoti, nes tarkim that-- tad tai padaryti. Aš ruošiuosi kurti naują filialą. Ir dabar aš dėl šios naujos šakos. Ir aš ruošiuosi padaryti kai kuriuos pakeitimus čia, Tiesiog sukurkite naują failą. Gerai. Ir dabar, kai aš sujungti, todėl aš vis dar tik ketina susijungti įprastu būdu. Aš ruošiuosi grįžti į šeimininko. Ir aš ruošiuosi sujungti naują filialą. Ir jūs pamatysite, kad ji sako greitai pirmyn. Tai reiškia, kad ten buvo tik pokyčiai vienos pusės suliejimo. Taigi ji neturi jaudintis kuris keičia turėčiau priimti. Ji nėra net turi Auto išspręsti konfliktus. Jis net neturi galvoti apie tai, ar yra konfliktų. Nes jis žino, kad buvo commits buvo tik pridėta ant vienos pusės sujungimo. Taigi aš galiu tiesiog perkelti galvos kitos šakos iki po šių įsipareigoja. Taigi, ką jūs galite padaryti, su rebasing yra užtikrinti, kad visi commits-- Atsiprašome, kad visi susilieja yra pirmyn susilieja. Taigi, jei turite vietos filialas tiesiog kompiuteryje ir jūs atlikote krūva pokyčių nėra, kitas plėtra vyksta nuo šeimininko. Visi jūsų bendradarbiai, visi jūsų bendradarbiai, visi jūsų projekto nariai buvo, kad jų pačių pokyčiai įsisavinti. Gal jie iš pradžių prasidėjo jų pokyčius šakų bet tada jie susijungė juos arba kažką. Bet pasikeitimas įvyko kapitonas. Ir jūs dirbate funkcija ir tai būtų visiškai atskirame faile, todėl nėra jokių konfliktų. Galite perskaičiuoja savo filialą tai tik vietos jums, kad kapitonas. Taigi, kai jūs sujungti jį, jums neturite jaudintis bet apie tai. Tai tiesiog pirmyn suliejimo. Ir tai nėra net sukurti suliejimo įsipareigoti. Tai tiesiog tiesiog sako, gerai, galėjau įdėti visus šiuos įsipareigoja šiame filialas taip pat. Ar tai prasminga? Ar tai prasminga, kodėl jūs norėtumėte tai padaryti, ir kaip jūs norėtumėte tai padaryti? Auditorija: Taigi kita žodžiai, jūs sakote imtis visą darbą, kad buvo padaryta įvaldyti [nesigirdi]. ANNA WHITNEY: Taip, tiksliai. Taigi tai gali atrodyti šiek tiek kvaila nes tai daugiausia apie estetika. Taip pat šiek tiek apie tai, kas aiškesnis. Bet tai ne padaryti didelį skirtumą kaip jūs iš tikrųjų rašyti savo kodą. Kažkas, kad gali būti daugiau Naudinga reguliariai praktika yra, kai jūs darote git trauką, Jūs galite pridėti šią parinktį į jį. Ak. Taigi dėl to, aš krūva Daiktai, turiu konfliktą. Bet kai jūs darote Rebase, Jūs galite turėti konfliktų kaip jūs turite į suliejimą, ir galite išspręsti jas taip pat. Bet taip pagrindinė idėja yra tai, kad, kai aš tai padaryti, ji sako pirmąjį pervyniojimas galvą žaisti savo darbą ant jo. Ir tai tiesiog ketinate judėti atgal, ji ketina imtis visų įsipareigoja kad aš tiesiog ištrauktas iš kur aš iškedentas juos, iš nuotolinio valdymo pulto kapinynas, tada tai žaisti mano naujas įsipareigoja ant jo. Kitaip tariant, jis ketina taikyti visus pakeitimus. Taigi, jei aš tiesiog nustatyti this-- įdomu. Gal tai sistema skirtumas. Tai gerai. Taigi pagrindinė idėja yra ta, kad Dabar, jei aš pažvelgti į žurnalą, Aš pamatysite, kad ši papildoma mano vardą dar kartą. Taigi tai buvo tikrai ne before-- atsiprašau, aš padariau tai. Palaukite. Aš šiek tiek supainioti apie čia tvarka. Bet esmės, Idėja yra, kad ten buvo kai įsipareigoja, kad buvo ant nuotolinio valdymo pulto kapinynas, kad nebuvo čia padarė. Kažkas, kad aš stumdosi, tai atrodo gal aš netyčia stumiama iš Anna filialas. Bet kuriuo atveju, kai aš ištrauktas bet įsipareigoja, kad were-- taip. Žr tam tikru momentu, aš netyčia stumiama iš Anna filialas, nes aš turėti įsipareigoti pridėtinę failo Ana. Jūs pastebėsite, kad dabar ten anksčiau. Ne, palauk. Štai nuo suliejimo. Kartais tai yra šiek tiek Sunku samprotauti apie, nes aš iš tikrųjų nesu tikras kodėl ji davė man prieštarauja ten. Tačiau pagrindinė prielaida yra, kad jei Turėjau commits-- Atsiprašome krūva. Jei kiti žmonės padarė krūva komandos kapitonas ir jie nuvažiavę stumiama per nuotolinio saugykloje, ir aš turėjo keletą vietinių įsipareigoja, kad aš nebuvo stumiama dar, ir aš Git traukti --- perskaičiuoja, tada, kai jis išsitraukia, vietoj bando sujungti, tai bandysiu perskaičiuoja. Ir vienintelis skirtumas yra tas, kad tada baigti su siurbliu įsipareigoti istoriją, ir šiuo atveju, ji iš tikrųjų daro daug daugiau skirtumu. Nes jei kaskart traukti jūs įvedant suliejimo įsipareigoti, tada jis pradeda gauti tikrai negraži, tikrai greitai. Ir jis labai neaiškus Ką jūs iš tikrųjų daro. Taigi, aš nebūtinai rekomenduojame, kad jūs pradėti bando perskaičiuoja visus savo filialai vietoj juos sujungti, arba prieš sujungiant juos. Bet aš tikrai rekomenduojame kad, kaip jūs darote tai, Jūs gal bandyti gauti Git jaustis traukti su Rebase variantą, --rebase, nes tai bus pereiti ilgą kelią link Making Your įsipareigoti istorija aiškesnė, kad ji taptų akivaizdu, ką tu darai. GERAI. Ar kas nors turite paskutinius klausimus Prieš mes tiesiog baigti. Taip? Auditorija: [nesigirdi]. ANNA WHITNEY: Tai ne mano asmeninė konvencija, bet tai tarsi Konvencija apskritai. Ir aš nemanau, kad tai faktinis Lotynų. Taip, taip, kai ji yra reali Lotynų, bet tai tarsi like-- Auditorija: [nesigirdi]. ANNA WHITNEY: Gerai. Leiskite pamatyti, jei aš galiu tai padaryti teisingai. Ir tada git žurnalas turėtų iš tikrųjų parodyti kažką naudingo. Dabar gerai. Auditorija: Gerai, kad atrodo graikų į mane. ANNA WHITNEY: Gerai. Taigi dabar leiskite man pamatyti, jei git Prisijungti rodo nieko daugiau naudinga. Taigi taip. Tai buvo, kai aš merged-- taip. Taigi pokyčiai buvo, kai aš sujungė Naujas filialas, o aš sukūriau naują failą. Ir aš paskutinį kartą buvo stumiama, aš vis dar galvą savo vardą loremipsum failą. Taigi, kai aš fiksuoto, kad tada jie buvo taikomas po, nes jei jie iš pradžių buvo padaryta vėliau. Ar tai prasminga? Jei aš įsteigė savo filialus Iš pradžių pabandykite iliustruoti ši sąvoka, ji galėjo dirbo. Bet aš nebuvau tikras, ar mes buvo net ketina gauti tai. Bet paskutiniai klausimai? Auditorija: [nesigirdi]. ANNA WHITNEY: Taip. Ji neturi būti sugebėti skaityti dalykus išsaugoti juos į git saugykloje. Taigi, aš atsitikti, kad čia PDF. Taigi jūs visi, net jei jūs neturite pasirašyti už Git, galite naudoti šį ruošinį. Tai ant kapinyno puslapyje. Vėlgi, jūs galite skaityti kapinynas, net jei esate ne ant saugykloje bendradarbis. Bet taip, aš ne specialiai redaguoti PDF formatu, tiesa? Bet jei aš išsaugoti naują PDF ten, pagal tas pavadinimas, galiu padaryti šiuos pakeitimus ir stumti juos į saugyklą. Tai dažnai standartinė praktika neturi savo dvejetainiai failai gyventi Jūsų saugykloje, jeigu jie ketina be-- jei tai kažkas, kad yra kaip jūsų paraiška statyti, tikriausiai atsikratyti prieš įsipareigojant arba įdėti tai ne saugykloje. Kadangi ypač, kaip ir Git negali dirbti labai didelius failus, arba specialiai GitHub nebus jums įkelti labai didelis failus, nes jis yra per daug apkrovos savo serveriuose. Taip pat galima naudoti Git nenaudojant GitHub, tokiu atveju galite naudoti savo, jums gali būti sugebėjo išlaikyti didelius failus ten jei turėjo savo serverį. Bet kad daugiau problema dydžio kaip ir aiškumo. Klausimas? Auditorija: [nesigirdi]. ANNA WHITNEY: Teisė. Taigi aš pirmyn sujungti yra viena, kai visi jūs darote tiesiog turėkite įsipareigoja iš vienos pusės suliejimo ir išleisti jas į kitą. Taigi, jei jūs esate kapitonas, jums nepasikeitė meistras ne visiems. Jūs padarė keletą pakeitimų krūva Jūsų funkcija filialas, ir jūs sujungti į vaidybinis filialas. Nes ten buvo ne pokyčiai meistras, jums gali galvoti apie tai, kaip iš tikrųjų ieško kaip šio paveikslo ant dugno. Raudona rodyklė ne progresavo, todėl visi jūs darote esmės yra skinti tai padaryti. Ir dabar sako, Gerai, tai yra tik raudona rodyklė. Ar tai prasminga? Ir tai gerai, nes nėra sujungti įsipareigoti. Jūs žinote, kad nesiruošia būti bet pagal apibrėžimą konfliktai. Jei yra kokių nors konfliktų, Jūs jau nori išspręsti juos jei tu kažką panašaus į tai. Auditorija: [nesigirdi]. ANNA WHITNEY: Taigi, kitaip tariant, jei turite, kaip šią nuotrauką ir tu labai greitai pirmyn suliejimą pareikšti visą šį stuff up čia tai tipo sunku parodyti jį į Kaip aš atkreipė šių diagramų, nes jus būtų vis dar dviejų atskirų padalinių, bet jie nebūtų išsiskyrė dar. Jūs galite galvoti apie tai, kaip iš esmės patinka, jei turite raudoną rodyklę, kad eina visą kelią į čia, bet jis turi raudonos ir mėlynos Arrowhead, ir todėl jūs galite pridėti daugiau įsipareigoja nuo vienos iš jų, ir tada jie skiriasi dar kartą. Bet jie tas pats iki to taško. Bet daugiau klausimų? Gerai. Na, labai ačiū.