
quindi la conoscenza è la comprensione del potere
va bene così una di quelle cose dove sei
hai visto che tutto è così
prendi e poi fai qualcosa e tutto
va terribilmente orribilmente sbagliato
quindi questo è il punto in cui arrivare
devi imparare un po ‘su come
funziona davvero al di sotto del cofano
capisci che ha delle perdite
astrazioni e hai bisogno di essere sorta
in grado di capire chi realmente ottiene
lavoro svolto vedi il problema è che ce ne sono due
modi di imparare le porte uno è dal
dal basso verso l’alto e poi la gente dirà
cose come questa git sono fondamentalmente a
file system indirizzabile dal contenuto sì
è fantastico
c’è anche bugger che tutti usano se tu
in realtà voglio solo finire il tuo lavoro
su base giornaliera ti lavori tu
alcuni B sono venuti a dire che ci stiamo muovendo
qualche sovversione di flusso movin CVS siamo
entrando nel cancello e saprai cosa
faccio effettivamente ciò che è l’equivalente
della cassa SVN e cosa fa lui
non potrebbe SVN commettere cose del genere
e così questo file di contenuto indirizzabile
sistema grafici aciclici tutto ciò che è schifo
di alcuna utilità per voi a tutti
quando stai cercando di finire il lavoro ora
l’anno scorso ero a git unire in
La Francia insieme a un github che mi ha colpito
o potresti aver sentito davvero mancare
ottenere get up andare avanti abbastanza bene un personal
livello improvvisamente andiamo a bere molto così
ma è diventato molto Emma Jane è stata
wispy ottimo diffusore se si ottiene il
possibilità di Seir ti ho raccomandato
in realtà non l’ha trascinata
a tutti i nostri eventi I’m Alaskan perché
lei è davvero molto brava è interessante
intuizioni ma lavora molto dentro
educare le persone ha imparato a conoscere
come imparare non ottenere e lei arriva con
mi piace molto il punto di vista dall’alto
le persone faranno il loro lavoro qui
come inizi qui è come ottieni
ottieni il tuo codice qui è come te
commettere i suoi piccoli trucchi come lo stato
l’ambiente di staging e stash e
Cose del genere questo è l’elenco dei
i grafici aciclici diretti non ti servono
a quel punto però dopo un po ‘di tempo
iniziare a diventare un po ‘più sicuro dopo
mentre inizi a costruire cose reali e
iniziare a vederlo davvero oh sì
Posso farlo davvero di cui ho sentito parlare
questo concerto viene resettato Ho sentito parlare di lui
sconti guida
suona grande userò quello e quello di
quando le cose cominciano ad andare terribilmente storte
anche la cosa semplice le cose che
ottenere è davvero molto buono come
ramificazione e fusione possono ottenere rapidamente
in ogni caso questo dal modo in cui non lo è
uno scenario da incubo questo è in realtà un
Flusso di lavoro consigliato Io non cacchio
non farlo bene, inizia i bot sono molto
semplice un ramo uno si uniscono se necessario
per diventare più complicato aggiungere in alto come
è necessario questo è completamente tuo
fuori controllo
ma la cosa è che inizi a questo
o scenario che tipo di clone contro
commettere contro tu sai lo stash e tutto il
il riposo non ti aiuterà molto
molto a un certo punto dovrai farlo
districare questo casino e poi c’è
sarà un tizio in quell’organizzazione
chi deve capire diventa così presumibilmente
hai visto tutti questo fumetto xkcd da a
un paio di mesi fa bene per quell’anno
fa ora se è fondamentalmente vero molto questo
fondamentalmente la maggior parte arriverà a questo stadio
dove vanno Donna dice più e
hanno appena fatto saltare via e star
ricominciare potrebbe aver avuto in un tale
pasticcio completo e totale ora sei anche tu
se tu se conosci xkcd c’è il
testo nascosto in esso pure c’è sempre
quel ragazzo che si laverà zitto ma
lui è davvero molto utile tu hai un
cercando oh sì sì sì sì
hai fatto è hai sconti ma tu
non hai ancora ripristinato prima di te
fatto così puoi lavorare nella directory
è ora fuori sincrono hai fatto un git
rebase
morbido è un rischio git rebase difficile ecc
ecc. sai, spiacente reset soft reset hard
anche io lo sto facendo
alla fine otterrai ciò di cui hai bisogno
fare la cosa è questo ragazzo non lo sa
quali sono questi comandi il segreto qui
sono i comandi che ho citato lì lui
non sa che esistono, lui è
supposto che esistano perché se tu
capire il modello sottostante di ottenere
dal basso in alto saprai cosa
i comandi devono esistere logicamente per ottenerti
fuori dai guai
presumi se so che ottengono il modello
funziona così, quindi deve esserci un
comando che lo fa farlo
Non vorrei scendere e trovare il loro comando
e più tardi ti mostrerò letteralmente a
esempio del mondo reale
o come l’ho fatto quando ti mostro
che quello strano trucco è tutto
parlare deve avere ora così dove ulteriormente
Ado andremo a prendere
interni e, si spera entro la fine di
questo discorso lo sarai davvero
ragazzo fastidioso nella tua squadra colui che
capisce che il gating porta fuori le persone
problemi che sono davvero un buon lavoro
la sicurezza tra l’altro così bene ulteriormente indugi
prendi gli interni iniziamo proprio da
il fondo stiamo andando stiamo andando andiamo
di nuovo su un grafico ciclico eppure non lo siamo
continuerò su contenuti indirizzabili
File System Mostrerò piuttosto il percorso
di dire che più tardi te lo dirò
preoccupati in fondo alla pila che è
ottenere è il blob che è davvero tutto
questi blob sono tutti incatenati insieme al
fine della giornata ora cosa c’è nel blob
cambia quindi è un po ‘il suo contestuale
ma il livello più basso è tutto a
blob il blob più semplice è il contenuto
qualcosa che è essenzialmente un binario
blob che Git non ha alcuna idea di che ora
include file di testo
non ha alcuna consapevolezza fondamentale di
file di testo al livello più basso più in alto
quando iniziamo a guardare cose come
la fusione del sì lo capirà
certe cose ai file di testo e lo farà
capire come operare su di loro ma
il suo livello più basso non gli importa
tutto è solo un blob che è un blob
nient’altro che il contenuto di a di
un oggetto compresso ha detto lib
compresso ha un’intestazione bloccata su di esso
solo per aiutare a identificarlo nel file
sistema se ti imbatti in una strada a
e poi è un hash, c’è uno sha-1
hash e che lo identifica è gentile
del modo in cui il contenuto e riposante
il fascismo arriva ma ci arriveremo
non preoccuparti del livello successivo
l’albero un albero è anche un blob ma è così
un modo blob capisce cosa
il contenuto è e in particolare i punti dell’albero
ad altri blob e potenzialmente quali
potrebbero essere altri alberi e gli danno
metadati aggiuntivi per dire che non c’è
obiettivi aziendali associati a questi blob
l’albero gli dà il nome della fattoria ora
gli alberi possono indicare altri alberi o loro
può puntare a BLOB e loro possono dare
loro nomi possono dargli un
dati di data metodo aggiuntivi come il file
autorizzazioni se è eseguibile o
non sembra molto simile a UNIX
file system ricorsivo che non lo è
sorprendente dato che in realtà è stato scritto da
uno sviluppatore del kernel UNIX e nella parte superiore
livello che abbiamo cantato per chiamare a
possiamo impegnare i punti su un albero bene
punta al blob
di solito punterà ad un albero ma possiamo
potremmo manipolarlo in qualsiasi modo vogliamo
quindi impegnare punti su un albero e batteria
definisce un insieme di oggetti ora il fatto
che non ci sono nomi di file associati
con i BLOB di basso livello che cosa abbiamo parlato
su contente è un file system e
Ti faccio vedere che ora così andiamo andiamo
solo fare questo cerchiamo di mostrarlo dal
zero stiamo andando basta andare al
riga di comando e fare get git init
questo ti dà un repository git vuoto
ora in realtà crea un sacco di
caldaia supplementare che non lo è
importante e non ha alcun ruolo inizialmente
che non saprò conoscere
quello ora perché non è non importante
crea un sacco di ganci finti così tu
può abilitare se vuoi ma non lo facciamo
preoccupati per questo ed è bello un alligatore
nido crea un completamente vuoto
deposito di nulla in esso così se noi
guarda che c’è un e come te
probabilmente conosci l’interno del git
repository c’è una directory dot git
e dentro c’è tutto il
informazioni sul tuo repository
una sorta di fuori di quello tuo attuale
file che cos’è un albero di lavoro quando
guarda dentro e ricostruisce il
stato di lavoro di ogni dato commit
tuttavia questo è davvero aggiuntivo per te
può cancellare tutto e solo fingere
arriva a resettare e tirerà a destra
informazioni fuori di nuovo così il reale
le informazioni sono memorizzate all’interno del docket
la directory all’interno della directory del docket è
una directory chiamata oggetti e questo è
dove tutti i nostri BLOB sono memorizzati così
andiamo in là aggiungiamo una mini
collocando la creazione di alcuni contenuti per git
a proposito se salti un po ‘indietro così
entrano è ovvio ma l’albero è
solo un comando che farà a
elenco ricorsivo di una directory così questo
ti sta solo mostrando tramite la colorazione
che non c’è niente in questi
le directory sono due vuote
le informazioni e le confezioni delle cartelle così andremo
ne arrivano altri due
touch touch nel mondo UNIX potrebbe significare due
cose è finita aggiornamenti al
timestamp su un file o è conveniente
modo di creare un file vuoto se uno
non esiste quindi andando a creare un
un file completamente vuoto chiamato un file
e poi lo aggiungeremo, possiamo dire
si prega di tenere traccia di questo file non impegnarsi
ancora solo essere consapevoli questo è qualcosa
vorremmo che i cambiamenti fossero
rintracciato e poi possiamo tornare indietro
e dai un’occhiata ai nostri oggetti gates
albero come puoi vedere ora c’è a
un singolo oggetto lì dentro è detto dal vivo
compresso è sha-1 hash e uno sha-1
l’hash è usato come nome del file che non lo è
il file nome del file il nome del file
è un testo o qualcosa come dimenticare
quello che hai detto ma come puoi vedere siamo noi
all’interno di un’altra directory a6 questo è il
prime due cifre dell’hash 1 sha
il resto di esso è il resto dello sha-1
hash la ragione per cui lo fa
distribuisci il carico attraverso la directory
sistema
Robert ha una directory con tutto il
file hai 255 directory con il
file sparsi su di loro che è
in realtà è il filesystem locale
ottimizzazione e non particolarmente
importante che tu possa farlo tu potresti
implementalo in modo diverso se tu così
il desiderio è così importante ma lo siamo
farò un commit che vogliamo dire bene
ora abbiamo questo stato che abbiamo messo questo
file in là che è vuoto e siamo
andando a commetterlo quindi faremo solo un
git commettere con il primo impegno ora
abbiamo oggetti gratuiti in BLOB gratuiti
il primo è il nostro oggetto vuoto
il secondo file è il nostro albero e il
il terzo è il nostro impegno è questo
è il livello più basso ora fatto interessante
posso parlare di content-addressable
file system che BLOB è vuoto
file ora vado a un altro completamente
repository separato e crearne un altro
file vuoto
quale sarà il nostro hash, sarebbe lo stesso?
se creo un altro repository un altro
il file in questo repository è vuoto e io
potrei aggiungere che cosa accadrà
sarà lo stesso ovunque nel mondo
noto universo matematico in cui il
leggi della matematica applicate o leggi della fisica
applica qualsiasi file vuoto in un repository git
sarà sempre quello ed è quello che a
il file system indirizzabile dal contenuto lo indica
significa qualsiasi oggetto ovunque in tutto il
universo con lo stesso contenuto
abbiamo lo stesso hash contro di esso che possiamo aggiungere
ulteriori dati di metadati su di esso
con quello è tutto negli alberi ma il
gli oggetti sono sempre gli stessi se li avessero
lo stesso contenuto per loro in modo sintetico
questo è in poche parole
il livello più semplice quindi non è quello
complicato con un piccolo avvertimento
commetti i punti di scansione mentre gli alberi si impegnano
potrebbe anche puntare direttamente sugli oggetti
sono usati qualche volta in quel modo
tuttavia possono anche puntare su altri
commette quindi ciò che abbiamo qui è commit
può puntare ad altri commit che puntano
a diversi alberi che puntano a
oggetti diversi e questo è il
il contenuto del repository cambia
nel tempo quindi questo è davvero il nocciolo del
ottenere tutto il resto è costruito sopra
queste astrazioni di base e io ordinerò
weekend in un minuto costruiremo la nostra strada
su quell’albero e parla di alcuni dei
astrazioni di alto livello, ma questo è il motivo
quella persona può denunciare quella persona in questo
file di testo puoi dire oh lo so lì
deve essere un modo per farlo perché è lui
guarda questo e ragiona su come
questi diversi tre diversi tipi di
oggetti potrebbero essere collegamenti per stare insieme
e supponiamo che ci debba essere un comando veloce
da qualche parte che ti permette di manipolare
e cambiare quella relazione solo per
mostraci un altro piccolo aspetto di questo
faremo faremo un minorenne
cambia in quel file che aggiungeremo
commento vuoto o molto semplice
commenteremo aggiungendo quel file
di nuovo e dare un’occhiata al nuovo albero
questo è un blob completamente nuovo questo è il
contenuto indirizzabile di nuovo perché quello
il file non è più vuoto in realtà è un
oggetto completamente separato ora così questo
non è davvero
al suo interno, si tratta solo di oggetti
e oggetti che si indicano l’un l’altro
ma gli oggetti per se stessi sono giusti
hash e hash sull’inferno di molto
di sicuro che puoi, puoi usare il
alberi o punti agli oggetti e tu
può usare il commit il punto del
alberi o altri oggetti o qualsiasi altra cosa
ma devi indicare i commit e
che diavolo è l’uso di tutti loro
hash e quelli non sono molto pratici
quindi penserò un po ‘ di più
su ciò che vogliamo in cima a questo
renderlo un po ‘più utilizzabile nel
mondo reale quindi sono a un livello all’albero
ora vado a vedere gli arbitri
rami e tag così probabilmente hai sentito
di refs super non ne sappiamo molto
molto su di loro forse lo fai
ti credevi quasi certamente
sicuramente sentito parlare di Brandt Brandt
rami e probabilmente serbatoio pure questi
sono tutti molto per dire la stessa cosa
quindi cos’è un riff un ref è solo un
puntatore a un oggetto semplice come
tutto questo è letteralmente un nome dato
a un hash di un oggetto che l’oggetto potrebbe
essere un albero potrebbe essere un blob o altro
probabilmente in termini pratici lo farà
essere un impegno è un modo di dare un
commettere un nome non è altro che un
variabile ora a proposito se ne vedi
somiglianza con i linguaggi di programmazione e
in particolare JVM è un modello abbastanza buono
pensarci davvero in qualche modo
questa è una ragione molto reale per questo
i ref sono fondamentalmente come nomi di variabili
e gli oggetti sono molto simili agli oggetti
memorizzato in memoria con relazioni a
l’un l’altro così come un modo amato da sopportare
in mente anche il resto è solo un
puntatore a un oggetto e noi no
generalmente manipolano i ref direttamente molto
spesso usiamo più spesso l’ alto livello
le astrazioni che usano i ref sono solo
o rami e tag o semplicemente li rif
avere qualche semantica speciale ma lì
questa è convenzione ma rami e tag
sono solo refs un branch è solo un
diverso riferimento in un oggetto diverso
ora un oggetto può avere più bambini
ed è così che si crea un ramo cosa
lo fai è che hai piuttosto che semplicemente
risalendo lungo un percorso lineare
hai creato un nuovo riferimento a un ramo e quello
prende un percorso diverso dai genitori
non sono ancora gli stessi in qualche punto in
la storia, ma si è ora andando su un
percorso del marchio divergente brevemente ciò che è a
tag well tag è solo un ref speciale
usato per contrassegnare un commit nel
la storia di solito questo sarà il più
quello comune è un punto di rilascio, quindi questo è
la versione del codice che era fuori
è uscito con la versione 1.2, quindi è possibile
monitorare il ver voi in quel punto in
la storia non è altro che un pennarello
ci sono tag speciali che puoi allegare a
impegnarsi in un tag e quel tag punta a a
un altro commette un oggetto e quello
ti dà il modo di annotare un dato
tag e darti un modo per firmare tag per
il livello più semplice di un tag è solo un
convenzione un punto nella storia puoi andare
indietro e manipolare effettivamente quelli come
molte cose e lo fanno spedire da un punto di vista
dai sistemi di controllo delle versioni tradizionali
puoi tornare indietro nella storia e modificare
storia
generalmente non dovresti farlo a meno che tu non abbia
una buona ragione per cui puoi tornare indietro e
manipola questi tag se ne hai bisogno
facciamo ancora una volta saltare giù nella
linea di comando come guardare così così
creeremo un tag chiamiamolo a
tag e siamo tocco andando un messaggio a
è solo un tag che faremo anche noi
creare una nuova filiale e stiamo cercando
all’interno di una parte diversa del git git
repository puoi vedere cosa è successo
qui è ora abbiamo una directory
chiamato prende i ref e i negozi Athar lo sono
refs ora li dividiamo in utili
è in due parti diverse di esso
uno per i tag che è ovvio sì
quando le teste sono solo come noi
riferirsi a rami nel complesso è una testa
significherà normalmente una volontà di ramo
in genere punta alla fine di un flusso
di sviluppo un flusso di una stringa di
Impegna quindi queste sono le teste sono le nostre
due rami di muscoli ci sono un ramo e
master-master è il ramo predefinito ma
il guadagno
questa è solo convenzione se
non vuoi che le masse siano l’impostazione predefinita
ramo è possibile creare il proprio valore predefinito
ramo se vuoi e distruggi padroneggiarlo
non prescrive nulla di simile
sono solo le convenzioni e i carri armati noi
avere il tag in là e se facciamo gatti
se non conosci il gatto, fai esplodere il
file da te per default sarà solo
mostra un file come puoi vedere tutto ciò che è
nel ramo c’è l’hash questo è il mio
la ramificazione in git è così incredibilmente veloce
sta letteralmente scrivendo un sacco di
caratteri in un file ma è tutto ciò che è
per creare un ramo è quasi gratis così
conosciamo un po ‘di rami e carri armati
ora e riff parliamo di uno di
le cose che le persone Jenny spesso scopano
in breve cosa è un reset ora c’è
una ragione per far apparire questo nel
contesto di refs e ti mostrerò in a
secondo, ma cos’è un reset quanti?
le persone qui hanno usato reset in passato
Quante persone hanno scopato sì
resto sono distesi tutto bene si tratta di un rito di
passaggio in arrivare a fare un reset hard and go
tutto quello che ho appena fatto
di nuovo a quello ti mostrerò come dire
tu come aggiustarlo se dovessi dare
un indizio pesante da un momento all’altro
ma tutti git fa con ripristino ripristino voi
non avere comandi pesantemente sovraccaricati
nel regalo ma il suo livello più basso
fa tutto ciò che facciamo è prenderemo un tag
un riferimento a un ramo di solito e cambia il suo
afferma quindi cosa faremo qui
nuovo git reset hard è uno come il
parte sovraccaricata quando il git fa il
ripristina e sposta il riferimento più
di solito è il punto finale del ramo
lo fa ha una scelta che cosa sta andando fare
con la directory di lavoro sta cambiando
stato interno ma hai il tuo controllato
copia anche quello che succede a controllato
fuori copia dopo aver fatto quella mossa difficile è
il più estremo che dice dimenticare
tutto ciò che c’era nell’albero funzionante lo soffiò
via resettalo allo stato che sono
dando ora l’ultimo bit della funzione
era la piccola carota con le targhette
alla fine
significa genitore c’è un piccolo sottotitolo intero
la lingua dentro ottiene per referenziare il
relazione tra diversi refs nove
tempi su 10 di cui non avrai bisogno
sapere che è una di quelle cose
è abbastanza utile sapere se lo sei
davvero dentro le erbacce, ma a quel punto
dovresti davvero capire cos’è
andando comunque c’è un po ‘di mini
il linguaggio stava dicendo questo impegno ma a
dietro di esso cose del genere ma il
carota significa solo ciò che è ma questo
sta indicando uno indietro così stiamo andando
tornare indietro al genitore soffiare via la
ultimo commit e sostituirlo con
qualunque sia l’ultimo commit così è
e ora sposterà solo quel tag R
se c’è un livello più semplice ci sono
cose diverse che potresti fare di lato
effetto ma questo è tutto ciò che fa davvero adesso
perché lo stai facendo per questo fruttuoso
non stai andando lì dentro e scrivendo
questi file auricolari lo stai dicendo
Voglio che un arbitro si muova bene
questa è una specie di roba ad alto rischio qui
quando sei nei guai con questo
questo un poco meno capito i piedi
caratteristiche dentro entrare dentro chiamato il
registro di registro ogni volta che si manipola un riferimento no
importa come lo si fa altro che se si
senti di poter entrare e manipolare come
cade direttamente non consiglio di fare
questo ma ogni volta che si manipola o se in
in ogni modo creando un ramo che distrugge a
ramo fare un commit o qualsiasi altra cosa
tutto ciò che muove un ref diventa un
entrata in qualcosa chiamato registro ref
questo è davvero molto utile e lo siamo
andando usare quel piatto più tardi per uscire
guai questo è uno dei più semplici
modi importanti per uscire dai guai
e prendi se fai qualcosa e tu
non so cosa diavolo sia appena successo
vai a guardare nel registro di rif e puoi ottenere
torna allo stato precedente ora è a
coppia come Kathy è qui è locale
solo al locale la strada per il locale
repository non solo hanno spinto quando
fare una spinta non avrebbe alcun senso
e fa un timeout dopo un certo
quantità di tempo novanta giorni per impostazione predefinita
e puoi se non puoi cambiarlo
c’è una data di un file di configurazione git che puoi
nella tua home directory o all’interno del git
repository stesso puoi cambiarlo
puoi signore, voglio essere più corto
qualunque cosa, ma mantiene un registro di riferimento per 90
giorni che è carino, è abbastanza buono
quindi odio queste cose dovrei tornare indietro
a file di testo sanguinanti , ma il più possibile
vedere come abbiamo apportato modifiche all’interno di commit
casse impegna cherry-picks tutto questo
roba che hai sentito di tutto questo
manipola un arbitro verrà inserito in
il registro ref e ti mostrerà anche
l’hash che dà l’abilità a
manipolare direttamente che e uscire
guai e ci arriveremo tra un po ‘
e vi mostrerà come è possibile farlo ora
c’è un altro pasticcio qui questo è
dove fa davvero la parte JVM delle cose
inizia a mostrare ora se ci pensi
un po ‘ crea molto di questi
oggetti e tu fai un annuncio e aggiungi un annuncio
e stai cambiando un personaggio a
tempo e fare un annuncio su un personaggio e
aggiungi un personaggio in un annuncio o uno no
impegnare davvero tutti questi
costruisci nel tempo un sacco di questi se tu
hai un browser temporaneo su cui lavori
buttare via quello che succede a tutti quelli
oggetti ora uno dei fondamentali
intuizioni di regali pubblicitari nel suo originale
forma è cambiato un po ‘da allora
allora ma formerà una delle intuizioni
di quello era che lo spazio del disco è così economico
il cancello originale aveva questa idea di no
memorizzare i delta allo stesso modo di
sovversione farà sovversione ogni
tempo che fai un commit guarda al
cambia e memorizza solo i bit che
hanno cambiato i problemi che rende
manipolazione della storia di sovversione molto
una sovversione molto dura è stata una buona idea
tutti quelli che hanno mai visto qualcuno controllare
tutte le password aziendali in
un deposito pubblico non sarà d’accordo con
che un po ‘ci stato fatto
ripulito il pasticcio sanguinoso era un
incubo così git ha questo concetto di GC
là maledici un certo tempo e tu puoi
fallo manualmente in modo che GC sia effettivamente
notevolmente come GC all’interno della JVM come fare
hai familiarità con come la JVM o
generalmente qualsiasi altra immondizia raccolta
il linguaggio delle macchine virtuali funziona io
presumendo che la maggior parte delle persone qui ne abbia avute
Esposizione ad esso, quindi ciò che accade è
generalmente oggetti da essere un oggetto radice
e molti oggetti indicano l’altro
oggetti e poi cosa farà il GC
occasionalmente stava andando a guardare il
l’oggetto emette su un certo uomo certo
l’età va bene questo abbiamo bisogno di questo più
e risalire attraverso la sua storia
e ad alcuni algoritmi molto elaborati
per farlo, ma è un’idea semplicissima
quindi quello che ho fatto qui è stato replicare questo
così le armi che facciamo per resettarci abbiamo
spostato il nostro tag indietro e abbiamo fatto bene un GC
perché quell’oggetto che ci siamo trasferiti
da non avere più un genitore perché è
non è più un tag quindi di nuovo all’interno della JVM
se hai una variabile che punta a un
l’oggetto è perché lo mantiene
vivo è solo quando quella variabile
scompare il riferimento se lo desideri
questo è l’oggetto che è stato ripulito
GC distruggerà tutti questi vecchi oggetti
ora ci sono alcuni dei gatti un avvertimento
in modo che il principale sia generalmente
ti concede un periodo di grazia di due settimane, quindi se
fai un reset e poi fai un GC non lo farà
effettivamente andare e distruggere le informazioni
subito che sarà aspettare due settimane ho
fatto questo lo forza qui la prugna GC
è uguale a tutte le dice dimenticare che a
il limite debole distrugge tutto adesso
e questo è puramente ai fini di
questa dimostrazione non la consiglierei
facendo di nuovo quello il periodo di grazia
è sintonizzabile all’interno delle tue porte
config, se lo desideri , vuoi più tempo
grande periodo di grazia ce n’è un altro
cosa fa e mi piace quasi
menzionalo perché non è davvero
importante in termini di ottenere il modello ma
è importante se vai a colpire
intorno al tuo get git doc
repository software dovrebbe portarlo su
per te ed è importante se lo sei
guardando i protocolli di rete
che di nuovo probabilmente non vuoi
faccio non ho intenzione di andare in qui perché
valutazione del laboratorio di se stesso, ma l’altra cosa
che l’ottenere GC fa è un pacchetto
ora ho detto che diventa fondamentale
l’idea nei giorni originali era quella di tutti
l’oggetto è tenuto in giro tutto il tempo noi
non andare a salvare delta e cose del genere
quello risulta che funziona grande sul
file system locale non tanto sul
rete e non quando hai qualcosa
la dimensione del kernel di Linux pure e
tu dici il nuovo negozio
e costantemente fondendo tutte queste cose
in questo sta creando una tonnellata di spazzatura
oggetti in loro così che cosa era
introdotto presto e ottiene la storia era
qualcosa chiamato PAC file PAC
il file fa ciò che sovversione fa in anticipo
ma lo fa solo dopo il fatto e
fondamentalmente Delta codifica le cose che dice
questo file qui è quasi lo stesso di
quel file qui, quindi stiamo andando a solo
salvare le differenze tra loro
fa questo in modo abbastanza intelligente dopo il
fatto e non ha fatto un mucchio di extra
compressione ecc tranne ecc questo è
utile per ripulire quando hai un
molti oggetti su disco ed è anche
utile quando si sta inviando roba tutta
la rete che sta andando ovviamente
un po ‘ più limitato del tuo
disco medio al giorno d’oggi la ragione per cui ero
quasi detestato nel parlare di questo
non è davvero importante non lo è
cambiare il sottostante ental non finanziato
la natura dei doni quel modello di oggetti
oggetti puntatore rimane lo stesso e tu
posso prendere quel file PAC, lo farò esplodere
di nuovo fuori in quel enorme davvero dispendioso
sistema di nuovo se lo si desidera, quindi è semplicemente
è come una compressione intermedia
sottolineando che sai che l’HTML può
a volte può essere compresso quando arriva
il filo non è molto importante
capire l’HTML quindi questo non è super
importante capire capire ma è così
importante se hai intenzione di curiosare
all’interno del tuo repository git e tu sei
curioso avrebbe dato una rapida occhiata a
questo è in realtà ciò che accade dopo
ottenere il GC dal modo in cui GC si verificherà
certe volte durante spinte e tiri
e così via ovviamente durante il networking
coinvolto lo fa abbastanza aggressivo in modo
se hai effettivamente qualche background in
il design del database sarà probabilmente questo
abbastanza familiare anche a te
due file qui un file PAC e un indice
file che indica che è utilizzato per cercare
alcuni file spiegano come fondamentalmente
reidratarli da questo compresso
formato e questo è il motivo per cui è possibile
praticamente si spegne e basta riapplicare il
File PAC se lo desideri adesso se lo sei
veramente interessato a questa roba è
un tipo documentato di questo è un negozio di Linna
valvola speciale è altamente formati altamente
ottimizzato per i dischi rotanti in
formato progettato per essere in grado di casualmente
esercitazioni il più velocemente possibile su
vedere Dischi di filatura è documentazione è
molto è fondamentalmente qualcuno ha detto ciò che il
diavolo è andato il suo pacchetto di installazione di palle palle
libbra libbra libbra libbra su in a
messaggio di posta elettronica e che è quindi e-mail
messaggio è stato copiato nella
directory di documentazione di ottenere e quello
è fondamentalmente la tua documentazione per il
pack file è una merda d’arte nera è veloce
cosa per andare a leggere se sei in droga
ottimizzazione del file system di codifica binaria
settori su dischi ecc. ecc. è chiaramente
scritto da un ragazzo di sistemi di file ma come me
dì non importante più non è più
importante della comprensione del
formato di un file HTML che è arrivato
la rete compressa non lo fai
comprimilo è tutto ciò che è
formato di compressione utile ma non super
importante nel nostro modello mentale così
abbiamo parlato di oggetti e commetti e
stringhe di commits e rami brant
che in pratica dice solo che sei tu
un punto diverso e nessuno dei vergini dentro
la storia, naturalmente, storia divergente
è fantastico soprattutto se è davvero
economico da fare ma ad un certo punto lo vuoi
per rimettere quella storia dentro e quello è
dove le cose diventano un po ‘ più complicate
al prossimo livello che è l’unione ora
le fusioni sono piuttosto complesse e io vado
per sfogliare un paio di cose qui
ci sono un sacco di articoli che abbiamo
scritto su di classe sviluppatore di Atlassian
e la calma che spiegano alcuni dei
i dettagli a riguardo non sono usati per il core
metodi di fusione e viene utilizzato il
idee di base, ma ho intenzione di saltare
alcuni bit qui perché il sistema principale
è usato per unire alcuni chiamati
fusione ricorsiva che è stata ottimizzata
per il kernel Linux sono molto
potente ma è un po ‘fuori
lo scopo di questo discorso è l’altra cosa
è anche non è necessario e lo mostrerò
voi uno quindi ciò che è unire è un’unione
la re integrazione di due divergenti
punti nella storia questo è ciò che tu questo
è quello che vuoi quando ti lavi
fai la tua fusione così hai questi due
punti e hanno divagato di qualcuno
tappando via il master non dovrebbero
devono essere portati via ramificati
ma non preoccupiamoci di questo e
qualcuno sta lavorando alla funzione in
parallelamente stanno entrambi facendo cambiamenti e
farà probabilmente ma non necessariamente
apportare modifiche allo stesso file come farlo
risolviamo così bene che usiamo un commit
algoritmo che emerge piuttosto il nostro algoritmo
Ne parlerò brevemente, ma è così
di nuovo è un dettaglio ciò che vogliamo è
perché ci sarà da fare
risolvere questi due gruppi di modifiche che
sovrapposizione creeremo un’unione
impegnarsi questo sta per memorizzare qualsiasi
cambiamenti necessari per risolvere i due
serie di modifiche alle chiamate o ai file di testo
andare così è abbastanza buono
facendo questo e poi andrà a negozio
qualsiasi informazione aggiuntiva di cui abbiamo bisogno
quella interessante una delle cose
memorizza questo è dove i commit sono
abbastanza potente è commit possono avere più
di un genitore quindi abbiamo parlato di te
conoscono ogni commit ha un genitore che
punta indietro a quello precedente
ti restituisce la catena alla storia
nella storia alla creazione originale di
il progetto all’inizio ma i commit possono
avere due genitori per loro in modo da avere un
punto che dice bene questo è stato commit
fatto di giunzione di due altri
si impegna in un ramo della sua storia
ora perché solo due non deve essere
due potrebbe essere che tu stia impazzendo
poi ci sono casi in cui lo fa
no, ne spiegheremo uno, ma spieghiamo
la storia questo è il motivo per cui tu
puoi cancellare un ramo dopo emerge e non
perdere qualsiasi storia molto molto utile
in generale, quindi c’è un po ‘
bitbucket lo fa non è sicuro che mi alzo
e l’ ho visto così e anche lo stash fa
per un server di bit bucket
le armi sono quando chiudi fai un tiro
richiesta e in tal senso chiama il
Unisci puoi opzionalmente dire questa cancellazione
il ramo dopo quello di Deleasa
ramo ma non distrugge il ramo
la storia perché siamo in grado di tornare a piedi attraverso
la nostra storia per l’unione si commette e va
ah quale strada stiamo andando a scendere
giù il maestro o stiamo per guadagnare
per disattivare il ramo delle funzionalità
perché in realtà dirà che noi
abbiamo fuso il ramo lì
quindi anche se distruggi rami che
sono solo solo il punto di riferimento
commetti si soffia via
manterrai comunque il vecchio ramo in giro
perché è stato riferimento il
Unisci commit che ti dice questo
divergente a questo piss tree è stato fuso a
questo punto ora che non è necessariamente
quello che la gente vuole e di cui parlerò
questo in un po ‘ e in realtà no
dicendo che succederà in ogni singolo
caso se si considera il concetto di bene
cosa è successo se ho creato un ramo
ci sono io e ho lavorato ai miei piedi
lontano dal maestro e poi fare unire
di nuovo su maestro e niente è cambiato
su maestro cosa succede allora questo è
dove hai sentito possibilmente di a
avanzamento rapido fondere una unione veloce
è una pratica piccola ottimizzazione e non
piace a tutti quello che fa
guarda se mi sono ramificato e l’ ho fatto
un sacco di cambiamenti ma non è cambiato nulla
sul punto dal punto di Bronk
Bronk si ramifica su a semanticamente
equivalente ora e la risposta è sì
sono così a quel punto che facciamo solo a
piccola hack facciamo finta che non lo faccia mai
successo e stiamo andando a dire
sostituiremo il reggiseno al maestro ora
con o il ramo di destinazione con l’ altro
ramo e non saprai mai cosa no
cosa succede ora questo ha due
effetti collaterali interessanti se lo fai
come dico cancella il reggiseno che il ramo
riferimento perderete la nostra storia
non so mai cosa sia successo alla volontà letteraria
sappiamo che registrare o anche se lo fai
tenerlo in giro anche se non lo saprai mai
cosa indica il ramo si è verificato
non c’è niente che sia lì dentro da dire
che ci siamo ramificati ad un certo punto e
Unisci a un certo punto tutto ciò che sai è
c’è un tag di ramo di riserva ramo
riferimento in giro così c’è un
modo che se si preferisce mantenere un
una storia che contiene la storia completa
anche se ci fosse effettivamente un nulla
operazione lì puoi mettere una bandiera in
chiamato no ffs, vai a farti unire senza ffs
e ciò creerà una fusione fittizia
impegnarsi per questo per te che contengono
sul puntatore del master in
il punto di divergenza e il punto finale
del tuo ramo e puoi fondamentalmente
ricreare che è un modo di memorizzazione
ulteriori dati di metadati come cose
bitbucket lo farà per te
automaticamente tuttavia non tutti
Mi piace che alcune persone vorrebbero un
storia pulita e ti mostrerò come te
può creare una cronologia pulita e rimuovere
tutto si fonde con la tua storia con alcune persone
preferisco avere una storia vera quella
contiene tutti i punti di unione
il modo in cui ora o meno come un bene
è interamente a te Atlassiano che tendiamo
verso la verità abbiamo l’aperto
il motto della società no-bullshit è reale
motivazione e noi siamo anche i più
uno sweary in modo che diciamo sempre si
dovrebbe tenere la storia no
distruggere quell’informazione fa sempre no
avanti veloce e assicurati di avere un
dummy merge commit mostra un ramo
e fusione si è verificato preferiamo la verità
alcune persone per vari motivi
a volte il legittimo che preferiva
che hanno una storia pulita no
mostrare il completo esporre l’intero processo di
l’ ordine del processo di sviluppo completo
a volte se sei un imprenditore di lavoro
per una terza parte nella gestione di
se per questo che è tutte queste filiali in
ecco cosa stai facendo qualcosa di sbagliato
allora lo fai per uno pulito ma uno
infine, e preferiamo una storia vera
ma è solo una questione di noi
delle nostre preferenze personali o nostre
La filosofia ormai ho parlato
Mi sono unito e ho promesso che stavo per farlo
saltarli leggermente così ci sono a
numero di strategie di fusione quando si
unire ci sono modi diversi che tu
puoi risolvere le differenze come vedi
se non ci sono davvero differenze noi
non farò unire affatto e ovviamente se
noi e se diciamo di non andare avanti veloce è un
no op comunque lo stiamo solo sostituendo
pezzo di storia con un altro risolve
però è quando in realtà vieni a fare un
tempo reale quando arrivi a una vera fusione
vorrete avere qualche metodo di
risolvendo le differenze
ora ciò che questo metodo dipende interamente
su quello che stai cercando di unire no
diverse strategie per diversi
esigenze diverse tradizionalmente l’una
è stato risolto quale è normale
È stata utilizzata la strategia di fusione, credo, credo
stava usando la sovversione di altri che
probabilmente non ha funzionato molto bene
che Regis guarda i due punti finali
e va bene vediamo se possiamo ottenere
questi insieme senza conflitti e
se è conflitto perché non posso farlo
qualsiasi cosa e faremo uscire il tuo set di
file con un sacco di voi sanno rumore dentro
loro che non dovevi manualmente
chiarire ricorsivo è leggermente diverso
questo è quello che è stato introdotto con
il kernel sciolto è stato un test di battaglia
con un kernel Linux quello che fa è
usa la storia che conosce GIF
punto di ramificazione che sta indicando più blu
punti di ramificazione e punti di unione così
che cosa si può fare è tornare indietro lungo la
albero piuttosto che solo prendere il
informazioni che hai puoi tornare indietro
al punto in cui si è verificata la divergenza
e dire ah giusto questo è dove loro
cambiato così solo le modifiche che insieme
ecco cosa e una volta devi preoccuparti
su non tutto e poi cammineremo
eseguire il backup dell’albero creando un qualsiasi
commit intermedio e unire punti e
quindi fino alla fine è abbastanza complesso
in sé e ho scelto di saltare
questo è puramente per il tempo e ne introduce alcuni
altre cose interessanti che mi piacerebbe andare
dentro , ma se ne fai uno guarda dentro
abbiamo un sacco di articoli su
sviluppatore di classe e calmo sul
ricorso a diverse strategie di fusione
ricorsivo è il default e lo sarà
lavoro per te 99 volte su cento
perché è stato testato in battaglia su
Kernel Linux se non riesci a risolvere
qualcosa è probabilmente una buona ragione per
che molto interessante è molto
molto ti ha detto che può un commit di fusione
avere due genitori o forse anche di più
ci sono casi in cui ciò avviene effettivamente
avere senso lo usiamo effettivamente per lo sviluppo
relazione calma quindi abbiamo questo statico
generatore del sito che usiamo in modo da finire
far lavorare molte persone
articoli diversi per dollari degli sviluppatori
conosci la calma in momenti diversi ma
in generale, quindi, a collaborare
ora i nostri singoli lavoratori operano da soli
directory ogni articolo esiste in proprio
directory e le persone stanno lavorando tutti
su questo abbiamo anche un certificato di stadiazione
quello dove spingiamo su tutti i cambiamenti
cambia ora ovviamente se faccio un cambiamento
al mio articolo e dico spingere e quello
spinge verso il mio ramo viene spinto
fino agli sviluppi servono la messa in scena
server sto per calpestare qualsiasi cosa
cambiamenti che altre persone hanno fatto perché io
non li ho incorporati nel mio ramo
Sto lavorando nel mio reparto di funzionalità
da un ramo d’articolo nel frattempo Tim
fa la stessa cosa che facciamo noi
impegnarsi a spingere il nostro bambù continuo
il server di integrazione va automaticamente
fuori e lo spinge a battere un po ‘
mio se vai al server di staging
vedrai solo l’ultimo commit non tutti
gli articoli che non possono essere ciò che è
ha funzionato, ma perché ci sono molto
Israele poco o niente si sovrappongono tra il
due portarono tutti questi rami Brandt
queste dozzine di rami degli articoli
non sarà lavorato in un dato momento noi
usa la fusione di polpo diciamo prendi tutto
le attuali filiali non raggruppate
che hanno la parola blog in the tyent
titolo e unirli tutti insieme
il polipo si fonde se si hanno conflitti
o un incubo assoluto da svelare ma
se sai che ne hai un mucchio
codice diverso che non ha oh sovrapposizione o
diversi rami non si sovrappongono
tra loro forse alcune persone che lavorano
su diversi sistemi di moduli e così via
li si può tirare in e hanno una fusione
commettere che ha più genitori
forse anche a dozzine c’è una chiamata
e poi di una grande strategia chiamata ore
ore è quando e sta avendo persone
fatto questo lo vedi occasionalmente
l’hai avuto una o due volte ti chiederà
non non spesso non stai lavorando su a
nuova versione della tua applicazione di strumento e
hai la seconda versione e ora lo sei
lavorando su versione gratuita nel frattempo il tuo
lavoro anche a fare patch e così via
correzioni sulla versione due ma la versione
gratis è completamente diverso il nostro nuovo
set di strumenti utilizzando un completamente diverso
sei passato da iPhone a Android
o il vostro voi completamente siete su GG TK
per sapere se è puro
HTML nativo con esso qualunque sia il seme
applicazione a cui non hanno alcuna relazione
l’un l’altro quando vai a rilasciare
versione gratuita vuoi che diventi il
nuovo maestro vuoi completamente
sostituire un no sovrascrivere il precedente
storia che non distruggi
vecchia storia forse vuoi dire che sono
unirò questo ma non ci provo nemmeno
e fare una fusione reale basta prendere il
è stato questo nuovo ramo di dieci disty
uniti, ma in realtà non provare e fare
due si fondono in modo completamente basico
sovrapponendo uno completamente diverso lui
pezzo di storia in cima a un altro
questo è ciò che il nostro ti dà
capacità di dire creare una fusione ma
fai finta che lo completiamo distrutto
ora puoi farlo manualmente che puoi
letteralmente basta eliminare aggiungi tuo padre
in tutti i tuoi file e poi fai a
commetti ma questo ti dirà tutto
molto quello che vuoi è quello dentro
storia del ramo che ti dice il
i rami si sono verificati rami è stata unita
qui perché abbiamo fatto un rilascio di versione
gratuito
ed è una versione completamente sostituita
due vogliamo la storia della versione due
rimani in giro e lo vuoi
si unisce il punto di fusione e la sottostruttura è
uno interessante ho intenzione di troppo
qui la sovversione aveva extra esterni
extern che ti permette di entrare in altro
repository di sovversione in un romanzo
repository come i ciondoli facilitano il sottoalbero
è la risposta più vicina che il cancello ha due
che puoi prendere un altro repository e
tiralo dentro come una sottodirectory di
il tuo attuale repository è utile io
per esempio, io ho il mio molto
configurazione complessa Emacs e voglio tirare
in vari moduli quando vuoi bloccarli
certo per le versioni, quindi quello che faccio è
in realtà vai al repository git e
dire tirare in questo tag della modalità di chiusura
uno strumento e lo metti sotto le labbra
sottodirectory Sottotitoli di ordinamento Lisp e
poi più tardi, se voglio, posso andare a fare un
tirare da un tag diverso e tirare quello
verso il basso e in modo da ottenere sottostruttura capisce
che non percepisco che ce n’è uno
repository può contare su altri
repository l’ altra cosa però è
questo è come puoi vedere
abbastanza interessante se ne hai un po ‘
formato di file proprietario è binario esso
non lo capisco Non posso unirlo
in questa sostituzione non sarà già cosa
con l’altro, ma se fosse
internamente è un modello di albero dire che è
uno sarà file mkv se lo saprai
c’è un Rosco incontrato , sono
essenzialmente XML binario in realtà
Unisci questi insieme li esplodi
fuori a guardare per guardare due file
esplodili guarda gli endpoint
movimento insieme XML puoi farlo
XML se hai, se lo sono anche loro
generare XML potrebbe sembrare completo dio
buone sciocchezze quando provi e unisci
loro perché hanno tutto e se mai
tutto in posti diversi questi
prova i file di testo dei momenti ma sai
sono file XML li soffiare fuori in
un Dom guarda i punti finali che uniscono il
pezzi di cambiamento e poi scaricare quello indietro
di nuovo così è possibile se tu
avere un formato proprietario di file
può collegare il proprio sistema unito
l’altra cosa di cui parlerò è ciò che è a
ribadisco ancora questo è tutto
tipo di guardato e andato oh questo è
bene, lo farò e poi rovinerò
così rebase Re è una delle cose che uno dei
il rebase è una di quelle cose in get
dove è molto potente ma possiamo usarlo
molto accuratamente, infatti, che cosa farà
dì che vuoi essere veloce
modalità di avanzamento ma un rapido si fonderebbe
si si desidera mantenere una cronologia pulirlo
sembrava come se fosse una linea lineare come fare
fai così bene quello che puoi fare
Io riesco anche a rebase a un certo punto
ma dal momento che la storia non ti ha colpito
i replay si commettono uno sopra l’altro ora
fa una fusione ogni passo lungo la strada
ma è molto molto potente e lo farò
vieni in questo un po ‘perché se lo sei
ripetendo la cronologia puoi cambiare la cronologia
e ti mostrerò come usarlo
un po ‘ora sto davvero ottenendo un
un po ‘fuori dal tempo, quindi mi precipiterò
avanti ma velocemente qui e presenta
voi un paio di corso su concetti di
come possiamo usare questo per uscire
problemi questo è davvero il tipo di
sai pagare alla fine ora è così
Come si esce dai guai in get
usando quello che abbiamo appena imparato che abbiamo
mostrato come ottenere nei guai
beh dal modo in cui questo è un questo è un
Dito in repeat in Australia è
in realtà la pubblicità TV
pubblicità per il principe originale di
Persia sabbie del tempo, quindi hai giocato
quel gioco lo capirai così
presto lascia che ti mostri un paio di modi
che possiamo uscire dai guai che abbiamo
sono riuscito a farcene entrare mostrerò
come entrare ti mostriamo come
uscire a posto
resit heart abbiamo spazzato via il nostro a
albero di lavoro abbiamo spostato una storia oh
merda non avrei dovuto fare quello che volevo
che in realtà commetto come faccio a uscire
qualcuno sa nope ref lock hai un
registrazione di ciò che hai appena visto
che li ripristiniamo ad un passo indietro
ma possiamo guardare a ciò che è il precedente
commettere è stato possibile vedere dove siamo
spostato da così possiamo annullare quella strada
per uscire da quello che facciamo solo a
diverso ripristino mettiamo la nostra ripristino di nuovo a
dove è usato per essere quindi cerchiamo di dimostrare che
di nuovo abbiamo fatto un reset del cuore qui
spostato l’ albero sposta il Rif e che noi
non ho modo di farmi capire
a che cosa serve quel magico incantesimo di quell’oggetto
la fine non ha più nulla di velenoso
abbiamo bisogno di scoprire cos’è l’hash
per resettarlo bene va bene perché noi
averlo nel registro ref e dobbiamo solo fare un
resettare di nuovo hard ma usiamo l’hash di
l’uno di quell’oggetto fine per noi
cercalo nel livello log di registro uno
se hai mai fatto re rebase e
in qualche modo il rebase ha rotto le bollette
a che punto si è verificata la rottura
da qualche parte lungo la storia ripetuta
qualcosa è andato storto cosa è andato storto come
scopriamo dove si trova la rottura
successo bene sappiamo come tornare a
lo stato precedente eravamo nel pre
stato rebasato perché abbiamo ottenuto il registro Rif
quindi un piccolo registro di riff e guarda cosa
era prima che facessimo la base RiRi cosa fosse nostra
il ramo chiamato tag di un ramo stava puntando
al nostro ramo un riferimento, quindi lo guardiamo
e poi spingiamo indietro al passato
ora possiamo fare un reef possiamo provarlo di nuovo
ma questa volta lo faremo
qualcosa nel comando che sta per
essere chiamato exec perché sta riproducendo
storia possiamo effettivamente in ogni punto in
la storia come la ripetiamo che possiamo fare
tutto ciò che vogliamo possiamo unire diversi
si impegna a
cose del genere ed è lì che tu
vuoi rebase interattivo non lo siamo
entrerò in questo che possiamo anche fare
questo potremo eseguire qualsiasi venire
su vogliamo come il rebase sta giocando così
una delle cose che è molto utile da fare
viene eseguito tutti i nostri test dopo ogni passaggio
del rebase se i nostri test falliscono il
rebase si fermerà e possiamo andare e
esamina cosa è successo così è così
fondamentalmente è un modo di guardarli
unire il punto e assicurare che l’unione
il punto è lo stesso ora non c’è niente da fare
mostra che questo è il tuo non tanto usato
in progetti sani tuttavia è usato
nel kernel Glynnis abbastanza estesamente
per non dire che non è malsano ma
Il kernel di Linux ha diversi vincoli
ha un manico molto resistente all’usura
Todd facciamo cambiare nel tempo
fa sei mesi fino a quando una regressione è
notato così qualcuno doveva tornare in
storia e scopri cosa non può essere rotto
replay una cosa o possiamo perché è
geta possiamo tornare sguardo in qualsiasi punto
la storia quindi prendi una cosa chiamata bisettrice
bisettrice che ti dà la possibilità di
dico che so che l’auto ha fatto questo ma il
punto attuale stiamo guardando la testa
è rotto ma lo so di nuovo qui
versione 1.2 c’erano quella regressione
non è successo quello che è successo, così diciamo
git questo è il buon punto e questo è
il punto negativo per favore vai a cercarmi
il punto medio tra questi due commit
e ora puoi farlo manualmente se
stai facendo il kernel di Linux che tu
può andare manualmente e controllare queste cose
hai praticamente bisogno di se lo stai facendo
Test di regressione hardware ma in a
caso se hai una suite di test automatizzata
che spero che voi ragazzi lo gestiate
suite di test automatizzata ogni passo lungo il
modo e ottenere farà tutto automaticamente
per te quello che farà tornerà indietro
e trova il punto medio e dì è questo
punto medio rotto ben corriamo correre
i test per scoprire non c’è ragione in questo
caso la rottura deve essere da qualche parte dentro
il futuro fammi trovare il prossimo punto centrale
tra questi due punti quindi
modo automatico di farlo anche se facendo
test di regressione quindi ora stiamo riparando
le cose ora ne parlerò una
cosa molto molto velocemente perché io sono
ufficialmente fuori dal tempo, che sta per
venire
gridando un po ‘lo introduci
modi per ingannare i poteri di invisibilità ora noi
sapere di oggetti in modo che sappiamo su
gli alberi possono esistere oggetti all’interno
per mantenere repository perché hanno a
essere parte di un albero di ciò che può essere parte di
un altro albero perché non può esistere
in se stessi
è possibile nascondere file all’interno vengono fatte
a meno che tu non conosca il suo nome
il file è invisibile per te non lo è
parte di qualsiasi storia ti mostrerò come
fallo velocemente
ora è un esempio di dove, se lo sai
come funziona git devi sapere che questo è
possibile non sapevo nessuno dei
comandi qui, ma sapevo che doveva essere così
possibile e sono uscito e ho trovato cosa
i comandi sono perché ho capito
il sottostante modello get come facciamo
una cosa del genere ben sappiamo che
oggetti i nostri hash quindi deve essere un hash
comando oggetto per cercare l’hash di a
file teoricamente in modo che possiamo prendere qualsiasi
file è dentro qui abbiamo un nascosto
file ed è creato quindi distruggeremo
in seguito ottiene oggetti hash e quello
mi dirà l’hash di un dato oggetto
o cosa sarebbe se lo inserissi nel
inserire nel repository ora ho fatto
anche un meno W che dice in realtà fare
che l’ha messa nel repository creare
un oggetto da questo file non dà fastidio
è di gran lunga il nome o qualcosa del genere giusto
metti il contenuto di questo file nel
repository ed è appena seduto lì
galleggiante non fa parte di alcuna catena di
non commette alberi e nulla ora è così
non è un grande uso per te perché
quello che succederà è ovviamente in due
le settimane in cui GC arriverà e se ne andrà
ah non viene indicato da
qualsiasi cosa lo distruggerà
a meno che non diamo un nome in questo caso a
taggalo potrebbe essere solo un ref ma noi siamo
userò un tag che sembra appropriato
così quando l’hash è stato creato che abbiamo avuto
l’hash quando usiamo ora l’hash
crea un tag chiamato hidden e ora andiamo
fuori e cancelliamo quel file e andiamo
torniamo al nostro ramo principale
sul ramo principale che
l’oggetto è fluttuante e non lo sarà mai
distrutto e non avrà record in
là oltre Z nel registro di rif
non ci sono commit associati ad esso no
alberi no niente è un blob di
informazioni nascoste in là come facciamo
tiralo fuori bene, abbiamo il tag se
Sappiamo che il nome sappiamo che deve essere
un modo per ottenere questo fuori tutto
deve essere in qualche modo un aspetto carino
attraverso i manuali ci vai
abbiamo il file cat cat cat che prenderemo
qualsiasi riferimento o hash e tirerà
fuori quella informazione e scaricarla
sullo schermo quindi eseguiamo quello e
qui abbiamo quello che è il corrente
contenuto di quello che è il vecchio Smith
ricetta di famiglia per il Chien gonna irlandese
sfondo e alcuni dei suoi altamente
sospetto, ecco perché il mio nome è Smith
ora pensavo di credere che fossero su
l’uomo del fisco in Irlanda
ora questo sembra ci fossero teorica è
interessante è un po ‘di divertimento tuttavia
in realtà è usata una storia divertente quando loro
se lo aggiungessi allo sport un po ‘
secchio ha continuato a far saltare in aria quando loro
ho provato a tirare nel deposito del cancello il
la ragione era che qualcuno aveva un aiuto nascosto
oggetto in là e non erano che avevamo
non avevo idea di ciò che succede
all’interno dello stesso repository di regali
repository git di proprietà Junio chi è il
manutentore ha scaricato la sua chiave PGP così da te
può effettivamente verificare il repository
contro se stesso e verificare la storia
è appena nascosto lì dentro e si è fatto saltare in aria
bit bucket quando stiamo cercando di aggiungere get
supporto ad esso così è così sto bene
e veramente fuori dal tempo ora si prega di utilizzare il
App per valutare e ci sarà un
la clinica del parlatore dall’altra parte
non ho visto dov’è ma me ne andrò
e trovalo se io se riesco a trovarlo ne sono sicuro
puoi farlo ma solo per ricapitolare che è
entrare nei suoi oggetti elemento fondamentale
ci sono alberi che possono essere commessi
punto a vicenda e si può catena
il tuo impegno è quello di stare insieme e quello
ti dà la cronologia, quindi ora è un buon inizio
e fai in modo che i repository vadano via
curiosare per vedere cosa succede e farlo
anche sulla tua produzione
bene non ti preoccupare
quindi divertiti grazie, ci vediamo dopo bene
tu
va bene così una di quelle cose dove sei
hai visto che tutto è così
prendi e poi fai qualcosa e tutto
va terribilmente orribilmente sbagliato
quindi questo è il punto in cui arrivare
devi imparare un po ‘su come
funziona davvero al di sotto del cofano
capisci che ha delle perdite
astrazioni e hai bisogno di essere sorta
in grado di capire chi realmente ottiene
lavoro svolto vedi il problema è che ce ne sono due
modi di imparare le porte uno è dal
dal basso verso l’alto e poi la gente dirà
cose come questa git sono fondamentalmente a
file system indirizzabile dal contenuto sì
è fantastico
c’è anche bugger che tutti usano se tu
in realtà voglio solo finire il tuo lavoro
su base giornaliera ti lavori tu
alcuni B sono venuti a dire che ci stiamo muovendo
qualche sovversione di flusso movin CVS siamo
entrando nel cancello e saprai cosa
faccio effettivamente ciò che è l’equivalente
della cassa SVN e cosa fa lui
non potrebbe SVN commettere cose del genere
e così questo file di contenuto indirizzabile
sistema grafici aciclici tutto ciò che è schifo
di alcuna utilità per voi a tutti
quando stai cercando di finire il lavoro ora
l’anno scorso ero a git unire in
La Francia insieme a un github che mi ha colpito
o potresti aver sentito davvero mancare
ottenere get up andare avanti abbastanza bene un personal
livello improvvisamente andiamo a bere molto così
ma è diventato molto Emma Jane è stata
wispy ottimo diffusore se si ottiene il
possibilità di Seir ti ho raccomandato
in realtà non l’ha trascinata
a tutti i nostri eventi I’m Alaskan perché
lei è davvero molto brava è interessante
intuizioni ma lavora molto dentro
educare le persone ha imparato a conoscere
come imparare non ottenere e lei arriva con
mi piace molto il punto di vista dall’alto
le persone faranno il loro lavoro qui
come inizi qui è come ottieni
ottieni il tuo codice qui è come te
commettere i suoi piccoli trucchi come lo stato
l’ambiente di staging e stash e
Cose del genere questo è l’elenco dei
i grafici aciclici diretti non ti servono
a quel punto però dopo un po ‘di tempo
iniziare a diventare un po ‘più sicuro dopo
mentre inizi a costruire cose reali e
iniziare a vederlo davvero oh sì
Posso farlo davvero di cui ho sentito parlare
questo concerto viene resettato Ho sentito parlare di lui
sconti guida
suona grande userò quello e quello di
quando le cose cominciano ad andare terribilmente storte
anche la cosa semplice le cose che
ottenere è davvero molto buono come
ramificazione e fusione possono ottenere rapidamente
in ogni caso questo dal modo in cui non lo è
uno scenario da incubo questo è in realtà un
Flusso di lavoro consigliato Io non cacchio
non farlo bene, inizia i bot sono molto
semplice un ramo uno si uniscono se necessario
per diventare più complicato aggiungere in alto come
è necessario questo è completamente tuo
fuori controllo
ma la cosa è che inizi a questo
o scenario che tipo di clone contro
commettere contro tu sai lo stash e tutto il
il riposo non ti aiuterà molto
molto a un certo punto dovrai farlo
districare questo casino e poi c’è
sarà un tizio in quell’organizzazione
chi deve capire diventa così presumibilmente
hai visto tutti questo fumetto xkcd da a
un paio di mesi fa bene per quell’anno
fa ora se è fondamentalmente vero molto questo
fondamentalmente la maggior parte arriverà a questo stadio
dove vanno Donna dice più e
hanno appena fatto saltare via e star
ricominciare potrebbe aver avuto in un tale
pasticcio completo e totale ora sei anche tu
se tu se conosci xkcd c’è il
testo nascosto in esso pure c’è sempre
quel ragazzo che si laverà zitto ma
lui è davvero molto utile tu hai un
cercando oh sì sì sì sì
hai fatto è hai sconti ma tu
non hai ancora ripristinato prima di te
fatto così puoi lavorare nella directory
è ora fuori sincrono hai fatto un git
rebase
morbido è un rischio git rebase difficile ecc
ecc. sai, spiacente reset soft reset hard
anche io lo sto facendo
alla fine otterrai ciò di cui hai bisogno
fare la cosa è questo ragazzo non lo sa
quali sono questi comandi il segreto qui
sono i comandi che ho citato lì lui
non sa che esistono, lui è
supposto che esistano perché se tu
capire il modello sottostante di ottenere
dal basso in alto saprai cosa
i comandi devono esistere logicamente per ottenerti
fuori dai guai
presumi se so che ottengono il modello
funziona così, quindi deve esserci un
comando che lo fa farlo
Non vorrei scendere e trovare il loro comando
e più tardi ti mostrerò letteralmente a
esempio del mondo reale
o come l’ho fatto quando ti mostro
che quello strano trucco è tutto
parlare deve avere ora così dove ulteriormente
Ado andremo a prendere
interni e, si spera entro la fine di
questo discorso lo sarai davvero
ragazzo fastidioso nella tua squadra colui che
capisce che il gating porta fuori le persone
problemi che sono davvero un buon lavoro
la sicurezza tra l’altro così bene ulteriormente indugi
prendi gli interni iniziamo proprio da
il fondo stiamo andando stiamo andando andiamo
di nuovo su un grafico ciclico eppure non lo siamo
continuerò su contenuti indirizzabili
File System Mostrerò piuttosto il percorso
di dire che più tardi te lo dirò
preoccupati in fondo alla pila che è
ottenere è il blob che è davvero tutto
questi blob sono tutti incatenati insieme al
fine della giornata ora cosa c’è nel blob
cambia quindi è un po ‘il suo contestuale
ma il livello più basso è tutto a
blob il blob più semplice è il contenuto
qualcosa che è essenzialmente un binario
blob che Git non ha alcuna idea di che ora
include file di testo
non ha alcuna consapevolezza fondamentale di
file di testo al livello più basso più in alto
quando iniziamo a guardare cose come
la fusione del sì lo capirà
certe cose ai file di testo e lo farà
capire come operare su di loro ma
il suo livello più basso non gli importa
tutto è solo un blob che è un blob
nient’altro che il contenuto di a di
un oggetto compresso ha detto lib
compresso ha un’intestazione bloccata su di esso
solo per aiutare a identificarlo nel file
sistema se ti imbatti in una strada a
e poi è un hash, c’è uno sha-1
hash e che lo identifica è gentile
del modo in cui il contenuto e riposante
il fascismo arriva ma ci arriveremo
non preoccuparti del livello successivo
l’albero un albero è anche un blob ma è così
un modo blob capisce cosa
il contenuto è e in particolare i punti dell’albero
ad altri blob e potenzialmente quali
potrebbero essere altri alberi e gli danno
metadati aggiuntivi per dire che non c’è
obiettivi aziendali associati a questi blob
l’albero gli dà il nome della fattoria ora
gli alberi possono indicare altri alberi o loro
può puntare a BLOB e loro possono dare
loro nomi possono dargli un
dati di data metodo aggiuntivi come il file
autorizzazioni se è eseguibile o
non sembra molto simile a UNIX
file system ricorsivo che non lo è
sorprendente dato che in realtà è stato scritto da
uno sviluppatore del kernel UNIX e nella parte superiore
livello che abbiamo cantato per chiamare a
possiamo impegnare i punti su un albero bene
punta al blob
di solito punterà ad un albero ma possiamo
potremmo manipolarlo in qualsiasi modo vogliamo
quindi impegnare punti su un albero e batteria
definisce un insieme di oggetti ora il fatto
che non ci sono nomi di file associati
con i BLOB di basso livello che cosa abbiamo parlato
su contente è un file system e
Ti faccio vedere che ora così andiamo andiamo
solo fare questo cerchiamo di mostrarlo dal
zero stiamo andando basta andare al
riga di comando e fare get git init
questo ti dà un repository git vuoto
ora in realtà crea un sacco di
caldaia supplementare che non lo è
importante e non ha alcun ruolo inizialmente
che non saprò conoscere
quello ora perché non è non importante
crea un sacco di ganci finti così tu
può abilitare se vuoi ma non lo facciamo
preoccupati per questo ed è bello un alligatore
nido crea un completamente vuoto
deposito di nulla in esso così se noi
guarda che c’è un e come te
probabilmente conosci l’interno del git
repository c’è una directory dot git
e dentro c’è tutto il
informazioni sul tuo repository
una sorta di fuori di quello tuo attuale
file che cos’è un albero di lavoro quando
guarda dentro e ricostruisce il
stato di lavoro di ogni dato commit
tuttavia questo è davvero aggiuntivo per te
può cancellare tutto e solo fingere
arriva a resettare e tirerà a destra
informazioni fuori di nuovo così il reale
le informazioni sono memorizzate all’interno del docket
la directory all’interno della directory del docket è
una directory chiamata oggetti e questo è
dove tutti i nostri BLOB sono memorizzati così
andiamo in là aggiungiamo una mini
collocando la creazione di alcuni contenuti per git
a proposito se salti un po ‘indietro così
entrano è ovvio ma l’albero è
solo un comando che farà a
elenco ricorsivo di una directory così questo
ti sta solo mostrando tramite la colorazione
che non c’è niente in questi
le directory sono due vuote
le informazioni e le confezioni delle cartelle così andremo
ne arrivano altri due
touch touch nel mondo UNIX potrebbe significare due
cose è finita aggiornamenti al
timestamp su un file o è conveniente
modo di creare un file vuoto se uno
non esiste quindi andando a creare un
un file completamente vuoto chiamato un file
e poi lo aggiungeremo, possiamo dire
si prega di tenere traccia di questo file non impegnarsi
ancora solo essere consapevoli questo è qualcosa
vorremmo che i cambiamenti fossero
rintracciato e poi possiamo tornare indietro
e dai un’occhiata ai nostri oggetti gates
albero come puoi vedere ora c’è a
un singolo oggetto lì dentro è detto dal vivo
compresso è sha-1 hash e uno sha-1
l’hash è usato come nome del file che non lo è
il file nome del file il nome del file
è un testo o qualcosa come dimenticare
quello che hai detto ma come puoi vedere siamo noi
all’interno di un’altra directory a6 questo è il
prime due cifre dell’hash 1 sha
il resto di esso è il resto dello sha-1
hash la ragione per cui lo fa
distribuisci il carico attraverso la directory
sistema
Robert ha una directory con tutto il
file hai 255 directory con il
file sparsi su di loro che è
in realtà è il filesystem locale
ottimizzazione e non particolarmente
importante che tu possa farlo tu potresti
implementalo in modo diverso se tu così
il desiderio è così importante ma lo siamo
farò un commit che vogliamo dire bene
ora abbiamo questo stato che abbiamo messo questo
file in là che è vuoto e siamo
andando a commetterlo quindi faremo solo un
git commettere con il primo impegno ora
abbiamo oggetti gratuiti in BLOB gratuiti
il primo è il nostro oggetto vuoto
il secondo file è il nostro albero e il
il terzo è il nostro impegno è questo
è il livello più basso ora fatto interessante
posso parlare di content-addressable
file system che BLOB è vuoto
file ora vado a un altro completamente
repository separato e crearne un altro
file vuoto
quale sarà il nostro hash, sarebbe lo stesso?
se creo un altro repository un altro
il file in questo repository è vuoto e io
potrei aggiungere che cosa accadrà
sarà lo stesso ovunque nel mondo
noto universo matematico in cui il
leggi della matematica applicate o leggi della fisica
applica qualsiasi file vuoto in un repository git
sarà sempre quello ed è quello che a
il file system indirizzabile dal contenuto lo indica
significa qualsiasi oggetto ovunque in tutto il
universo con lo stesso contenuto
abbiamo lo stesso hash contro di esso che possiamo aggiungere
ulteriori dati di metadati su di esso
con quello è tutto negli alberi ma il
gli oggetti sono sempre gli stessi se li avessero
lo stesso contenuto per loro in modo sintetico
questo è in poche parole
il livello più semplice quindi non è quello
complicato con un piccolo avvertimento
commetti i punti di scansione mentre gli alberi si impegnano
potrebbe anche puntare direttamente sugli oggetti
sono usati qualche volta in quel modo
tuttavia possono anche puntare su altri
commette quindi ciò che abbiamo qui è commit
può puntare ad altri commit che puntano
a diversi alberi che puntano a
oggetti diversi e questo è il
il contenuto del repository cambia
nel tempo quindi questo è davvero il nocciolo del
ottenere tutto il resto è costruito sopra
queste astrazioni di base e io ordinerò
weekend in un minuto costruiremo la nostra strada
su quell’albero e parla di alcuni dei
astrazioni di alto livello, ma questo è il motivo
quella persona può denunciare quella persona in questo
file di testo puoi dire oh lo so lì
deve essere un modo per farlo perché è lui
guarda questo e ragiona su come
questi diversi tre diversi tipi di
oggetti potrebbero essere collegamenti per stare insieme
e supponiamo che ci debba essere un comando veloce
da qualche parte che ti permette di manipolare
e cambiare quella relazione solo per
mostraci un altro piccolo aspetto di questo
faremo faremo un minorenne
cambia in quel file che aggiungeremo
commento vuoto o molto semplice
commenteremo aggiungendo quel file
di nuovo e dare un’occhiata al nuovo albero
questo è un blob completamente nuovo questo è il
contenuto indirizzabile di nuovo perché quello
il file non è più vuoto in realtà è un
oggetto completamente separato ora così questo
non è davvero
al suo interno, si tratta solo di oggetti
e oggetti che si indicano l’un l’altro
ma gli oggetti per se stessi sono giusti
hash e hash sull’inferno di molto
di sicuro che puoi, puoi usare il
alberi o punti agli oggetti e tu
può usare il commit il punto del
alberi o altri oggetti o qualsiasi altra cosa
ma devi indicare i commit e
che diavolo è l’uso di tutti loro
hash e quelli non sono molto pratici
quindi penserò un po ‘ di più
su ciò che vogliamo in cima a questo
renderlo un po ‘più utilizzabile nel
mondo reale quindi sono a un livello all’albero
ora vado a vedere gli arbitri
rami e tag così probabilmente hai sentito
di refs super non ne sappiamo molto
molto su di loro forse lo fai
ti credevi quasi certamente
sicuramente sentito parlare di Brandt Brandt
rami e probabilmente serbatoio pure questi
sono tutti molto per dire la stessa cosa
quindi cos’è un riff un ref è solo un
puntatore a un oggetto semplice come
tutto questo è letteralmente un nome dato
a un hash di un oggetto che l’oggetto potrebbe
essere un albero potrebbe essere un blob o altro
probabilmente in termini pratici lo farà
essere un impegno è un modo di dare un
commettere un nome non è altro che un
variabile ora a proposito se ne vedi
somiglianza con i linguaggi di programmazione e
in particolare JVM è un modello abbastanza buono
pensarci davvero in qualche modo
questa è una ragione molto reale per questo
i ref sono fondamentalmente come nomi di variabili
e gli oggetti sono molto simili agli oggetti
memorizzato in memoria con relazioni a
l’un l’altro così come un modo amato da sopportare
in mente anche il resto è solo un
puntatore a un oggetto e noi no
generalmente manipolano i ref direttamente molto
spesso usiamo più spesso l’ alto livello
le astrazioni che usano i ref sono solo
o rami e tag o semplicemente li rif
avere qualche semantica speciale ma lì
questa è convenzione ma rami e tag
sono solo refs un branch è solo un
diverso riferimento in un oggetto diverso
ora un oggetto può avere più bambini
ed è così che si crea un ramo cosa
lo fai è che hai piuttosto che semplicemente
risalendo lungo un percorso lineare
hai creato un nuovo riferimento a un ramo e quello
prende un percorso diverso dai genitori
non sono ancora gli stessi in qualche punto in
la storia, ma si è ora andando su un
percorso del marchio divergente brevemente ciò che è a
tag well tag è solo un ref speciale
usato per contrassegnare un commit nel
la storia di solito questo sarà il più
quello comune è un punto di rilascio, quindi questo è
la versione del codice che era fuori
è uscito con la versione 1.2, quindi è possibile
monitorare il ver voi in quel punto in
la storia non è altro che un pennarello
ci sono tag speciali che puoi allegare a
impegnarsi in un tag e quel tag punta a a
un altro commette un oggetto e quello
ti dà il modo di annotare un dato
tag e darti un modo per firmare tag per
il livello più semplice di un tag è solo un
convenzione un punto nella storia puoi andare
indietro e manipolare effettivamente quelli come
molte cose e lo fanno spedire da un punto di vista
dai sistemi di controllo delle versioni tradizionali
puoi tornare indietro nella storia e modificare
storia
generalmente non dovresti farlo a meno che tu non abbia
una buona ragione per cui puoi tornare indietro e
manipola questi tag se ne hai bisogno
facciamo ancora una volta saltare giù nella
linea di comando come guardare così così
creeremo un tag chiamiamolo a
tag e siamo tocco andando un messaggio a
è solo un tag che faremo anche noi
creare una nuova filiale e stiamo cercando
all’interno di una parte diversa del git git
repository puoi vedere cosa è successo
qui è ora abbiamo una directory
chiamato prende i ref e i negozi Athar lo sono
refs ora li dividiamo in utili
è in due parti diverse di esso
uno per i tag che è ovvio sì
quando le teste sono solo come noi
riferirsi a rami nel complesso è una testa
significherà normalmente una volontà di ramo
in genere punta alla fine di un flusso
di sviluppo un flusso di una stringa di
Impegna quindi queste sono le teste sono le nostre
due rami di muscoli ci sono un ramo e
master-master è il ramo predefinito ma
il guadagno
questa è solo convenzione se
non vuoi che le masse siano l’impostazione predefinita
ramo è possibile creare il proprio valore predefinito
ramo se vuoi e distruggi padroneggiarlo
non prescrive nulla di simile
sono solo le convenzioni e i carri armati noi
avere il tag in là e se facciamo gatti
se non conosci il gatto, fai esplodere il
file da te per default sarà solo
mostra un file come puoi vedere tutto ciò che è
nel ramo c’è l’hash questo è il mio
la ramificazione in git è così incredibilmente veloce
sta letteralmente scrivendo un sacco di
caratteri in un file ma è tutto ciò che è
per creare un ramo è quasi gratis così
conosciamo un po ‘di rami e carri armati
ora e riff parliamo di uno di
le cose che le persone Jenny spesso scopano
in breve cosa è un reset ora c’è
una ragione per far apparire questo nel
contesto di refs e ti mostrerò in a
secondo, ma cos’è un reset quanti?
le persone qui hanno usato reset in passato
Quante persone hanno scopato sì
resto sono distesi tutto bene si tratta di un rito di
passaggio in arrivare a fare un reset hard and go
tutto quello che ho appena fatto
di nuovo a quello ti mostrerò come dire
tu come aggiustarlo se dovessi dare
un indizio pesante da un momento all’altro
ma tutti git fa con ripristino ripristino voi
non avere comandi pesantemente sovraccaricati
nel regalo ma il suo livello più basso
fa tutto ciò che facciamo è prenderemo un tag
un riferimento a un ramo di solito e cambia il suo
afferma quindi cosa faremo qui
nuovo git reset hard è uno come il
parte sovraccaricata quando il git fa il
ripristina e sposta il riferimento più
di solito è il punto finale del ramo
lo fa ha una scelta che cosa sta andando fare
con la directory di lavoro sta cambiando
stato interno ma hai il tuo controllato
copia anche quello che succede a controllato
fuori copia dopo aver fatto quella mossa difficile è
il più estremo che dice dimenticare
tutto ciò che c’era nell’albero funzionante lo soffiò
via resettalo allo stato che sono
dando ora l’ultimo bit della funzione
era la piccola carota con le targhette
alla fine
significa genitore c’è un piccolo sottotitolo intero
la lingua dentro ottiene per referenziare il
relazione tra diversi refs nove
tempi su 10 di cui non avrai bisogno
sapere che è una di quelle cose
è abbastanza utile sapere se lo sei
davvero dentro le erbacce, ma a quel punto
dovresti davvero capire cos’è
andando comunque c’è un po ‘di mini
il linguaggio stava dicendo questo impegno ma a
dietro di esso cose del genere ma il
carota significa solo ciò che è ma questo
sta indicando uno indietro così stiamo andando
tornare indietro al genitore soffiare via la
ultimo commit e sostituirlo con
qualunque sia l’ultimo commit così è
e ora sposterà solo quel tag R
se c’è un livello più semplice ci sono
cose diverse che potresti fare di lato
effetto ma questo è tutto ciò che fa davvero adesso
perché lo stai facendo per questo fruttuoso
non stai andando lì dentro e scrivendo
questi file auricolari lo stai dicendo
Voglio che un arbitro si muova bene
questa è una specie di roba ad alto rischio qui
quando sei nei guai con questo
questo un poco meno capito i piedi
caratteristiche dentro entrare dentro chiamato il
registro di registro ogni volta che si manipola un riferimento no
importa come lo si fa altro che se si
senti di poter entrare e manipolare come
cade direttamente non consiglio di fare
questo ma ogni volta che si manipola o se in
in ogni modo creando un ramo che distrugge a
ramo fare un commit o qualsiasi altra cosa
tutto ciò che muove un ref diventa un
entrata in qualcosa chiamato registro ref
questo è davvero molto utile e lo siamo
andando usare quel piatto più tardi per uscire
guai questo è uno dei più semplici
modi importanti per uscire dai guai
e prendi se fai qualcosa e tu
non so cosa diavolo sia appena successo
vai a guardare nel registro di rif e puoi ottenere
torna allo stato precedente ora è a
coppia come Kathy è qui è locale
solo al locale la strada per il locale
repository non solo hanno spinto quando
fare una spinta non avrebbe alcun senso
e fa un timeout dopo un certo
quantità di tempo novanta giorni per impostazione predefinita
e puoi se non puoi cambiarlo
c’è una data di un file di configurazione git che puoi
nella tua home directory o all’interno del git
repository stesso puoi cambiarlo
puoi signore, voglio essere più corto
qualunque cosa, ma mantiene un registro di riferimento per 90
giorni che è carino, è abbastanza buono
quindi odio queste cose dovrei tornare indietro
a file di testo sanguinanti , ma il più possibile
vedere come abbiamo apportato modifiche all’interno di commit
casse impegna cherry-picks tutto questo
roba che hai sentito di tutto questo
manipola un arbitro verrà inserito in
il registro ref e ti mostrerà anche
l’hash che dà l’abilità a
manipolare direttamente che e uscire
guai e ci arriveremo tra un po ‘
e vi mostrerà come è possibile farlo ora
c’è un altro pasticcio qui questo è
dove fa davvero la parte JVM delle cose
inizia a mostrare ora se ci pensi
un po ‘ crea molto di questi
oggetti e tu fai un annuncio e aggiungi un annuncio
e stai cambiando un personaggio a
tempo e fare un annuncio su un personaggio e
aggiungi un personaggio in un annuncio o uno no
impegnare davvero tutti questi
costruisci nel tempo un sacco di questi se tu
hai un browser temporaneo su cui lavori
buttare via quello che succede a tutti quelli
oggetti ora uno dei fondamentali
intuizioni di regali pubblicitari nel suo originale
forma è cambiato un po ‘da allora
allora ma formerà una delle intuizioni
di quello era che lo spazio del disco è così economico
il cancello originale aveva questa idea di no
memorizzare i delta allo stesso modo di
sovversione farà sovversione ogni
tempo che fai un commit guarda al
cambia e memorizza solo i bit che
hanno cambiato i problemi che rende
manipolazione della storia di sovversione molto
una sovversione molto dura è stata una buona idea
tutti quelli che hanno mai visto qualcuno controllare
tutte le password aziendali in
un deposito pubblico non sarà d’accordo con
che un po ‘ci stato fatto
ripulito il pasticcio sanguinoso era un
incubo così git ha questo concetto di GC
là maledici un certo tempo e tu puoi
fallo manualmente in modo che GC sia effettivamente
notevolmente come GC all’interno della JVM come fare
hai familiarità con come la JVM o
generalmente qualsiasi altra immondizia raccolta
il linguaggio delle macchine virtuali funziona io
presumendo che la maggior parte delle persone qui ne abbia avute
Esposizione ad esso, quindi ciò che accade è
generalmente oggetti da essere un oggetto radice
e molti oggetti indicano l’altro
oggetti e poi cosa farà il GC
occasionalmente stava andando a guardare il
l’oggetto emette su un certo uomo certo
l’età va bene questo abbiamo bisogno di questo più
e risalire attraverso la sua storia
e ad alcuni algoritmi molto elaborati
per farlo, ma è un’idea semplicissima
quindi quello che ho fatto qui è stato replicare questo
così le armi che facciamo per resettarci abbiamo
spostato il nostro tag indietro e abbiamo fatto bene un GC
perché quell’oggetto che ci siamo trasferiti
da non avere più un genitore perché è
non è più un tag quindi di nuovo all’interno della JVM
se hai una variabile che punta a un
l’oggetto è perché lo mantiene
vivo è solo quando quella variabile
scompare il riferimento se lo desideri
questo è l’oggetto che è stato ripulito
GC distruggerà tutti questi vecchi oggetti
ora ci sono alcuni dei gatti un avvertimento
in modo che il principale sia generalmente
ti concede un periodo di grazia di due settimane, quindi se
fai un reset e poi fai un GC non lo farà
effettivamente andare e distruggere le informazioni
subito che sarà aspettare due settimane ho
fatto questo lo forza qui la prugna GC
è uguale a tutte le dice dimenticare che a
il limite debole distrugge tutto adesso
e questo è puramente ai fini di
questa dimostrazione non la consiglierei
facendo di nuovo quello il periodo di grazia
è sintonizzabile all’interno delle tue porte
config, se lo desideri , vuoi più tempo
grande periodo di grazia ce n’è un altro
cosa fa e mi piace quasi
menzionalo perché non è davvero
importante in termini di ottenere il modello ma
è importante se vai a colpire
intorno al tuo get git doc
repository software dovrebbe portarlo su
per te ed è importante se lo sei
guardando i protocolli di rete
che di nuovo probabilmente non vuoi
faccio non ho intenzione di andare in qui perché
valutazione del laboratorio di se stesso, ma l’altra cosa
che l’ottenere GC fa è un pacchetto
ora ho detto che diventa fondamentale
l’idea nei giorni originali era quella di tutti
l’oggetto è tenuto in giro tutto il tempo noi
non andare a salvare delta e cose del genere
quello risulta che funziona grande sul
file system locale non tanto sul
rete e non quando hai qualcosa
la dimensione del kernel di Linux pure e
tu dici il nuovo negozio
e costantemente fondendo tutte queste cose
in questo sta creando una tonnellata di spazzatura
oggetti in loro così che cosa era
introdotto presto e ottiene la storia era
qualcosa chiamato PAC file PAC
il file fa ciò che sovversione fa in anticipo
ma lo fa solo dopo il fatto e
fondamentalmente Delta codifica le cose che dice
questo file qui è quasi lo stesso di
quel file qui, quindi stiamo andando a solo
salvare le differenze tra loro
fa questo in modo abbastanza intelligente dopo il
fatto e non ha fatto un mucchio di extra
compressione ecc tranne ecc questo è
utile per ripulire quando hai un
molti oggetti su disco ed è anche
utile quando si sta inviando roba tutta
la rete che sta andando ovviamente
un po ‘ più limitato del tuo
disco medio al giorno d’oggi la ragione per cui ero
quasi detestato nel parlare di questo
non è davvero importante non lo è
cambiare il sottostante ental non finanziato
la natura dei doni quel modello di oggetti
oggetti puntatore rimane lo stesso e tu
posso prendere quel file PAC, lo farò esplodere
di nuovo fuori in quel enorme davvero dispendioso
sistema di nuovo se lo si desidera, quindi è semplicemente
è come una compressione intermedia
sottolineando che sai che l’HTML può
a volte può essere compresso quando arriva
il filo non è molto importante
capire l’HTML quindi questo non è super
importante capire capire ma è così
importante se hai intenzione di curiosare
all’interno del tuo repository git e tu sei
curioso avrebbe dato una rapida occhiata a
questo è in realtà ciò che accade dopo
ottenere il GC dal modo in cui GC si verificherà
certe volte durante spinte e tiri
e così via ovviamente durante il networking
coinvolto lo fa abbastanza aggressivo in modo
se hai effettivamente qualche background in
il design del database sarà probabilmente questo
abbastanza familiare anche a te
due file qui un file PAC e un indice
file che indica che è utilizzato per cercare
alcuni file spiegano come fondamentalmente
reidratarli da questo compresso
formato e questo è il motivo per cui è possibile
praticamente si spegne e basta riapplicare il
File PAC se lo desideri adesso se lo sei
veramente interessato a questa roba è
un tipo documentato di questo è un negozio di Linna
valvola speciale è altamente formati altamente
ottimizzato per i dischi rotanti in
formato progettato per essere in grado di casualmente
esercitazioni il più velocemente possibile su
vedere Dischi di filatura è documentazione è
molto è fondamentalmente qualcuno ha detto ciò che il
diavolo è andato il suo pacchetto di installazione di palle palle
libbra libbra libbra libbra su in a
messaggio di posta elettronica e che è quindi e-mail
messaggio è stato copiato nella
directory di documentazione di ottenere e quello
è fondamentalmente la tua documentazione per il
pack file è una merda d’arte nera è veloce
cosa per andare a leggere se sei in droga
ottimizzazione del file system di codifica binaria
settori su dischi ecc. ecc. è chiaramente
scritto da un ragazzo di sistemi di file ma come me
dì non importante più non è più
importante della comprensione del
formato di un file HTML che è arrivato
la rete compressa non lo fai
comprimilo è tutto ciò che è
formato di compressione utile ma non super
importante nel nostro modello mentale così
abbiamo parlato di oggetti e commetti e
stringhe di commits e rami brant
che in pratica dice solo che sei tu
un punto diverso e nessuno dei vergini dentro
la storia, naturalmente, storia divergente
è fantastico soprattutto se è davvero
economico da fare ma ad un certo punto lo vuoi
per rimettere quella storia dentro e quello è
dove le cose diventano un po ‘ più complicate
al prossimo livello che è l’unione ora
le fusioni sono piuttosto complesse e io vado
per sfogliare un paio di cose qui
ci sono un sacco di articoli che abbiamo
scritto su di classe sviluppatore di Atlassian
e la calma che spiegano alcuni dei
i dettagli a riguardo non sono usati per il core
metodi di fusione e viene utilizzato il
idee di base, ma ho intenzione di saltare
alcuni bit qui perché il sistema principale
è usato per unire alcuni chiamati
fusione ricorsiva che è stata ottimizzata
per il kernel Linux sono molto
potente ma è un po ‘fuori
lo scopo di questo discorso è l’altra cosa
è anche non è necessario e lo mostrerò
voi uno quindi ciò che è unire è un’unione
la re integrazione di due divergenti
punti nella storia questo è ciò che tu questo
è quello che vuoi quando ti lavi
fai la tua fusione così hai questi due
punti e hanno divagato di qualcuno
tappando via il master non dovrebbero
devono essere portati via ramificati
ma non preoccupiamoci di questo e
qualcuno sta lavorando alla funzione in
parallelamente stanno entrambi facendo cambiamenti e
farà probabilmente ma non necessariamente
apportare modifiche allo stesso file come farlo
risolviamo così bene che usiamo un commit
algoritmo che emerge piuttosto il nostro algoritmo
Ne parlerò brevemente, ma è così
di nuovo è un dettaglio ciò che vogliamo è
perché ci sarà da fare
risolvere questi due gruppi di modifiche che
sovrapposizione creeremo un’unione
impegnarsi questo sta per memorizzare qualsiasi
cambiamenti necessari per risolvere i due
serie di modifiche alle chiamate o ai file di testo
andare così è abbastanza buono
facendo questo e poi andrà a negozio
qualsiasi informazione aggiuntiva di cui abbiamo bisogno
quella interessante una delle cose
memorizza questo è dove i commit sono
abbastanza potente è commit possono avere più
di un genitore quindi abbiamo parlato di te
conoscono ogni commit ha un genitore che
punta indietro a quello precedente
ti restituisce la catena alla storia
nella storia alla creazione originale di
il progetto all’inizio ma i commit possono
avere due genitori per loro in modo da avere un
punto che dice bene questo è stato commit
fatto di giunzione di due altri
si impegna in un ramo della sua storia
ora perché solo due non deve essere
due potrebbe essere che tu stia impazzendo
poi ci sono casi in cui lo fa
no, ne spiegheremo uno, ma spieghiamo
la storia questo è il motivo per cui tu
puoi cancellare un ramo dopo emerge e non
perdere qualsiasi storia molto molto utile
in generale, quindi c’è un po ‘
bitbucket lo fa non è sicuro che mi alzo
e l’ ho visto così e anche lo stash fa
per un server di bit bucket
le armi sono quando chiudi fai un tiro
richiesta e in tal senso chiama il
Unisci puoi opzionalmente dire questa cancellazione
il ramo dopo quello di Deleasa
ramo ma non distrugge il ramo
la storia perché siamo in grado di tornare a piedi attraverso
la nostra storia per l’unione si commette e va
ah quale strada stiamo andando a scendere
giù il maestro o stiamo per guadagnare
per disattivare il ramo delle funzionalità
perché in realtà dirà che noi
abbiamo fuso il ramo lì
quindi anche se distruggi rami che
sono solo solo il punto di riferimento
commetti si soffia via
manterrai comunque il vecchio ramo in giro
perché è stato riferimento il
Unisci commit che ti dice questo
divergente a questo piss tree è stato fuso a
questo punto ora che non è necessariamente
quello che la gente vuole e di cui parlerò
questo in un po ‘ e in realtà no
dicendo che succederà in ogni singolo
caso se si considera il concetto di bene
cosa è successo se ho creato un ramo
ci sono io e ho lavorato ai miei piedi
lontano dal maestro e poi fare unire
di nuovo su maestro e niente è cambiato
su maestro cosa succede allora questo è
dove hai sentito possibilmente di a
avanzamento rapido fondere una unione veloce
è una pratica piccola ottimizzazione e non
piace a tutti quello che fa
guarda se mi sono ramificato e l’ ho fatto
un sacco di cambiamenti ma non è cambiato nulla
sul punto dal punto di Bronk
Bronk si ramifica su a semanticamente
equivalente ora e la risposta è sì
sono così a quel punto che facciamo solo a
piccola hack facciamo finta che non lo faccia mai
successo e stiamo andando a dire
sostituiremo il reggiseno al maestro ora
con o il ramo di destinazione con l’ altro
ramo e non saprai mai cosa no
cosa succede ora questo ha due
effetti collaterali interessanti se lo fai
come dico cancella il reggiseno che il ramo
riferimento perderete la nostra storia
non so mai cosa sia successo alla volontà letteraria
sappiamo che registrare o anche se lo fai
tenerlo in giro anche se non lo saprai mai
cosa indica il ramo si è verificato
non c’è niente che sia lì dentro da dire
che ci siamo ramificati ad un certo punto e
Unisci a un certo punto tutto ciò che sai è
c’è un tag di ramo di riserva ramo
riferimento in giro così c’è un
modo che se si preferisce mantenere un
una storia che contiene la storia completa
anche se ci fosse effettivamente un nulla
operazione lì puoi mettere una bandiera in
chiamato no ffs, vai a farti unire senza ffs
e ciò creerà una fusione fittizia
impegnarsi per questo per te che contengono
sul puntatore del master in
il punto di divergenza e il punto finale
del tuo ramo e puoi fondamentalmente
ricreare che è un modo di memorizzazione
ulteriori dati di metadati come cose
bitbucket lo farà per te
automaticamente tuttavia non tutti
Mi piace che alcune persone vorrebbero un
storia pulita e ti mostrerò come te
può creare una cronologia pulita e rimuovere
tutto si fonde con la tua storia con alcune persone
preferisco avere una storia vera quella
contiene tutti i punti di unione
il modo in cui ora o meno come un bene
è interamente a te Atlassiano che tendiamo
verso la verità abbiamo l’aperto
il motto della società no-bullshit è reale
motivazione e noi siamo anche i più
uno sweary in modo che diciamo sempre si
dovrebbe tenere la storia no
distruggere quell’informazione fa sempre no
avanti veloce e assicurati di avere un
dummy merge commit mostra un ramo
e fusione si è verificato preferiamo la verità
alcune persone per vari motivi
a volte il legittimo che preferiva
che hanno una storia pulita no
mostrare il completo esporre l’intero processo di
l’ ordine del processo di sviluppo completo
a volte se sei un imprenditore di lavoro
per una terza parte nella gestione di
se per questo che è tutte queste filiali in
ecco cosa stai facendo qualcosa di sbagliato
allora lo fai per uno pulito ma uno
infine, e preferiamo una storia vera
ma è solo una questione di noi
delle nostre preferenze personali o nostre
La filosofia ormai ho parlato
Mi sono unito e ho promesso che stavo per farlo
saltarli leggermente così ci sono a
numero di strategie di fusione quando si
unire ci sono modi diversi che tu
puoi risolvere le differenze come vedi
se non ci sono davvero differenze noi
non farò unire affatto e ovviamente se
noi e se diciamo di non andare avanti veloce è un
no op comunque lo stiamo solo sostituendo
pezzo di storia con un altro risolve
però è quando in realtà vieni a fare un
tempo reale quando arrivi a una vera fusione
vorrete avere qualche metodo di
risolvendo le differenze
ora ciò che questo metodo dipende interamente
su quello che stai cercando di unire no
diverse strategie per diversi
esigenze diverse tradizionalmente l’una
è stato risolto quale è normale
È stata utilizzata la strategia di fusione, credo, credo
stava usando la sovversione di altri che
probabilmente non ha funzionato molto bene
che Regis guarda i due punti finali
e va bene vediamo se possiamo ottenere
questi insieme senza conflitti e
se è conflitto perché non posso farlo
qualsiasi cosa e faremo uscire il tuo set di
file con un sacco di voi sanno rumore dentro
loro che non dovevi manualmente
chiarire ricorsivo è leggermente diverso
questo è quello che è stato introdotto con
il kernel sciolto è stato un test di battaglia
con un kernel Linux quello che fa è
usa la storia che conosce GIF
punto di ramificazione che sta indicando più blu
punti di ramificazione e punti di unione così
che cosa si può fare è tornare indietro lungo la
albero piuttosto che solo prendere il
informazioni che hai puoi tornare indietro
al punto in cui si è verificata la divergenza
e dire ah giusto questo è dove loro
cambiato così solo le modifiche che insieme
ecco cosa e una volta devi preoccuparti
su non tutto e poi cammineremo
eseguire il backup dell’albero creando un qualsiasi
commit intermedio e unire punti e
quindi fino alla fine è abbastanza complesso
in sé e ho scelto di saltare
questo è puramente per il tempo e ne introduce alcuni
altre cose interessanti che mi piacerebbe andare
dentro , ma se ne fai uno guarda dentro
abbiamo un sacco di articoli su
sviluppatore di classe e calmo sul
ricorso a diverse strategie di fusione
ricorsivo è il default e lo sarà
lavoro per te 99 volte su cento
perché è stato testato in battaglia su
Kernel Linux se non riesci a risolvere
qualcosa è probabilmente una buona ragione per
che molto interessante è molto
molto ti ha detto che può un commit di fusione
avere due genitori o forse anche di più
ci sono casi in cui ciò avviene effettivamente
avere senso lo usiamo effettivamente per lo sviluppo
relazione calma quindi abbiamo questo statico
generatore del sito che usiamo in modo da finire
far lavorare molte persone
articoli diversi per dollari degli sviluppatori
conosci la calma in momenti diversi ma
in generale, quindi, a collaborare
ora i nostri singoli lavoratori operano da soli
directory ogni articolo esiste in proprio
directory e le persone stanno lavorando tutti
su questo abbiamo anche un certificato di stadiazione
quello dove spingiamo su tutti i cambiamenti
cambia ora ovviamente se faccio un cambiamento
al mio articolo e dico spingere e quello
spinge verso il mio ramo viene spinto
fino agli sviluppi servono la messa in scena
server sto per calpestare qualsiasi cosa
cambiamenti che altre persone hanno fatto perché io
non li ho incorporati nel mio ramo
Sto lavorando nel mio reparto di funzionalità
da un ramo d’articolo nel frattempo Tim
fa la stessa cosa che facciamo noi
impegnarsi a spingere il nostro bambù continuo
il server di integrazione va automaticamente
fuori e lo spinge a battere un po ‘
mio se vai al server di staging
vedrai solo l’ultimo commit non tutti
gli articoli che non possono essere ciò che è
ha funzionato, ma perché ci sono molto
Israele poco o niente si sovrappongono tra il
due portarono tutti questi rami Brandt
queste dozzine di rami degli articoli
non sarà lavorato in un dato momento noi
usa la fusione di polpo diciamo prendi tutto
le attuali filiali non raggruppate
che hanno la parola blog in the tyent
titolo e unirli tutti insieme
il polipo si fonde se si hanno conflitti
o un incubo assoluto da svelare ma
se sai che ne hai un mucchio
codice diverso che non ha oh sovrapposizione o
diversi rami non si sovrappongono
tra loro forse alcune persone che lavorano
su diversi sistemi di moduli e così via
li si può tirare in e hanno una fusione
commettere che ha più genitori
forse anche a dozzine c’è una chiamata
e poi di una grande strategia chiamata ore
ore è quando e sta avendo persone
fatto questo lo vedi occasionalmente
l’hai avuto una o due volte ti chiederà
non non spesso non stai lavorando su a
nuova versione della tua applicazione di strumento e
hai la seconda versione e ora lo sei
lavorando su versione gratuita nel frattempo il tuo
lavoro anche a fare patch e così via
correzioni sulla versione due ma la versione
gratis è completamente diverso il nostro nuovo
set di strumenti utilizzando un completamente diverso
sei passato da iPhone a Android
o il vostro voi completamente siete su GG TK
per sapere se è puro
HTML nativo con esso qualunque sia il seme
applicazione a cui non hanno alcuna relazione
l’un l’altro quando vai a rilasciare
versione gratuita vuoi che diventi il
nuovo maestro vuoi completamente
sostituire un no sovrascrivere il precedente
storia che non distruggi
vecchia storia forse vuoi dire che sono
unirò questo ma non ci provo nemmeno
e fare una fusione reale basta prendere il
è stato questo nuovo ramo di dieci disty
uniti, ma in realtà non provare e fare
due si fondono in modo completamente basico
sovrapponendo uno completamente diverso lui
pezzo di storia in cima a un altro
questo è ciò che il nostro ti dà
capacità di dire creare una fusione ma
fai finta che lo completiamo distrutto
ora puoi farlo manualmente che puoi
letteralmente basta eliminare aggiungi tuo padre
in tutti i tuoi file e poi fai a
commetti ma questo ti dirà tutto
molto quello che vuoi è quello dentro
storia del ramo che ti dice il
i rami si sono verificati rami è stata unita
qui perché abbiamo fatto un rilascio di versione
gratuito
ed è una versione completamente sostituita
due vogliamo la storia della versione due
rimani in giro e lo vuoi
si unisce il punto di fusione e la sottostruttura è
uno interessante ho intenzione di troppo
qui la sovversione aveva extra esterni
extern che ti permette di entrare in altro
repository di sovversione in un romanzo
repository come i ciondoli facilitano il sottoalbero
è la risposta più vicina che il cancello ha due
che puoi prendere un altro repository e
tiralo dentro come una sottodirectory di
il tuo attuale repository è utile io
per esempio, io ho il mio molto
configurazione complessa Emacs e voglio tirare
in vari moduli quando vuoi bloccarli
certo per le versioni, quindi quello che faccio è
in realtà vai al repository git e
dire tirare in questo tag della modalità di chiusura
uno strumento e lo metti sotto le labbra
sottodirectory Sottotitoli di ordinamento Lisp e
poi più tardi, se voglio, posso andare a fare un
tirare da un tag diverso e tirare quello
verso il basso e in modo da ottenere sottostruttura capisce
che non percepisco che ce n’è uno
repository può contare su altri
repository l’ altra cosa però è
questo è come puoi vedere
abbastanza interessante se ne hai un po ‘
formato di file proprietario è binario esso
non lo capisco Non posso unirlo
in questa sostituzione non sarà già cosa
con l’altro, ma se fosse
internamente è un modello di albero dire che è
uno sarà file mkv se lo saprai
c’è un Rosco incontrato , sono
essenzialmente XML binario in realtà
Unisci questi insieme li esplodi
fuori a guardare per guardare due file
esplodili guarda gli endpoint
movimento insieme XML puoi farlo
XML se hai, se lo sono anche loro
generare XML potrebbe sembrare completo dio
buone sciocchezze quando provi e unisci
loro perché hanno tutto e se mai
tutto in posti diversi questi
prova i file di testo dei momenti ma sai
sono file XML li soffiare fuori in
un Dom guarda i punti finali che uniscono il
pezzi di cambiamento e poi scaricare quello indietro
di nuovo così è possibile se tu
avere un formato proprietario di file
può collegare il proprio sistema unito
l’altra cosa di cui parlerò è ciò che è a
ribadisco ancora questo è tutto
tipo di guardato e andato oh questo è
bene, lo farò e poi rovinerò
così rebase Re è una delle cose che uno dei
il rebase è una di quelle cose in get
dove è molto potente ma possiamo usarlo
molto accuratamente, infatti, che cosa farà
dì che vuoi essere veloce
modalità di avanzamento ma un rapido si fonderebbe
si si desidera mantenere una cronologia pulirlo
sembrava come se fosse una linea lineare come fare
fai così bene quello che puoi fare
Io riesco anche a rebase a un certo punto
ma dal momento che la storia non ti ha colpito
i replay si commettono uno sopra l’altro ora
fa una fusione ogni passo lungo la strada
ma è molto molto potente e lo farò
vieni in questo un po ‘perché se lo sei
ripetendo la cronologia puoi cambiare la cronologia
e ti mostrerò come usarlo
un po ‘ora sto davvero ottenendo un
un po ‘fuori dal tempo, quindi mi precipiterò
avanti ma velocemente qui e presenta
voi un paio di corso su concetti di
come possiamo usare questo per uscire
problemi questo è davvero il tipo di
sai pagare alla fine ora è così
Come si esce dai guai in get
usando quello che abbiamo appena imparato che abbiamo
mostrato come ottenere nei guai
beh dal modo in cui questo è un questo è un
Dito in repeat in Australia è
in realtà la pubblicità TV
pubblicità per il principe originale di
Persia sabbie del tempo, quindi hai giocato
quel gioco lo capirai così
presto lascia che ti mostri un paio di modi
che possiamo uscire dai guai che abbiamo
sono riuscito a farcene entrare mostrerò
come entrare ti mostriamo come
uscire a posto
resit heart abbiamo spazzato via il nostro a
albero di lavoro abbiamo spostato una storia oh
merda non avrei dovuto fare quello che volevo
che in realtà commetto come faccio a uscire
qualcuno sa nope ref lock hai un
registrazione di ciò che hai appena visto
che li ripristiniamo ad un passo indietro
ma possiamo guardare a ciò che è il precedente
commettere è stato possibile vedere dove siamo
spostato da così possiamo annullare quella strada
per uscire da quello che facciamo solo a
diverso ripristino mettiamo la nostra ripristino di nuovo a
dove è usato per essere quindi cerchiamo di dimostrare che
di nuovo abbiamo fatto un reset del cuore qui
spostato l’ albero sposta il Rif e che noi
non ho modo di farmi capire
a che cosa serve quel magico incantesimo di quell’oggetto
la fine non ha più nulla di velenoso
abbiamo bisogno di scoprire cos’è l’hash
per resettarlo bene va bene perché noi
averlo nel registro ref e dobbiamo solo fare un
resettare di nuovo hard ma usiamo l’hash di
l’uno di quell’oggetto fine per noi
cercalo nel livello log di registro uno
se hai mai fatto re rebase e
in qualche modo il rebase ha rotto le bollette
a che punto si è verificata la rottura
da qualche parte lungo la storia ripetuta
qualcosa è andato storto cosa è andato storto come
scopriamo dove si trova la rottura
successo bene sappiamo come tornare a
lo stato precedente eravamo nel pre
stato rebasato perché abbiamo ottenuto il registro Rif
quindi un piccolo registro di riff e guarda cosa
era prima che facessimo la base RiRi cosa fosse nostra
il ramo chiamato tag di un ramo stava puntando
al nostro ramo un riferimento, quindi lo guardiamo
e poi spingiamo indietro al passato
ora possiamo fare un reef possiamo provarlo di nuovo
ma questa volta lo faremo
qualcosa nel comando che sta per
essere chiamato exec perché sta riproducendo
storia possiamo effettivamente in ogni punto in
la storia come la ripetiamo che possiamo fare
tutto ciò che vogliamo possiamo unire diversi
si impegna a
cose del genere ed è lì che tu
vuoi rebase interattivo non lo siamo
entrerò in questo che possiamo anche fare
questo potremo eseguire qualsiasi venire
su vogliamo come il rebase sta giocando così
una delle cose che è molto utile da fare
viene eseguito tutti i nostri test dopo ogni passaggio
del rebase se i nostri test falliscono il
rebase si fermerà e possiamo andare e
esamina cosa è successo così è così
fondamentalmente è un modo di guardarli
unire il punto e assicurare che l’unione
il punto è lo stesso ora non c’è niente da fare
mostra che questo è il tuo non tanto usato
in progetti sani tuttavia è usato
nel kernel Glynnis abbastanza estesamente
per non dire che non è malsano ma
Il kernel di Linux ha diversi vincoli
ha un manico molto resistente all’usura
Todd facciamo cambiare nel tempo
fa sei mesi fino a quando una regressione è
notato così qualcuno doveva tornare in
storia e scopri cosa non può essere rotto
replay una cosa o possiamo perché è
geta possiamo tornare sguardo in qualsiasi punto
la storia quindi prendi una cosa chiamata bisettrice
bisettrice che ti dà la possibilità di
dico che so che l’auto ha fatto questo ma il
punto attuale stiamo guardando la testa
è rotto ma lo so di nuovo qui
versione 1.2 c’erano quella regressione
non è successo quello che è successo, così diciamo
git questo è il buon punto e questo è
il punto negativo per favore vai a cercarmi
il punto medio tra questi due commit
e ora puoi farlo manualmente se
stai facendo il kernel di Linux che tu
può andare manualmente e controllare queste cose
hai praticamente bisogno di se lo stai facendo
Test di regressione hardware ma in a
caso se hai una suite di test automatizzata
che spero che voi ragazzi lo gestiate
suite di test automatizzata ogni passo lungo il
modo e ottenere farà tutto automaticamente
per te quello che farà tornerà indietro
e trova il punto medio e dì è questo
punto medio rotto ben corriamo correre
i test per scoprire non c’è ragione in questo
caso la rottura deve essere da qualche parte dentro
il futuro fammi trovare il prossimo punto centrale
tra questi due punti quindi
modo automatico di farlo anche se facendo
test di regressione quindi ora stiamo riparando
le cose ora ne parlerò una
cosa molto molto velocemente perché io sono
ufficialmente fuori dal tempo, che sta per
venire
gridando un po ‘lo introduci
modi per ingannare i poteri di invisibilità ora noi
sapere di oggetti in modo che sappiamo su
gli alberi possono esistere oggetti all’interno
per mantenere repository perché hanno a
essere parte di un albero di ciò che può essere parte di
un altro albero perché non può esistere
in se stessi
è possibile nascondere file all’interno vengono fatte
a meno che tu non conosca il suo nome
il file è invisibile per te non lo è
parte di qualsiasi storia ti mostrerò come
fallo velocemente
ora è un esempio di dove, se lo sai
come funziona git devi sapere che questo è
possibile non sapevo nessuno dei
comandi qui, ma sapevo che doveva essere così
possibile e sono uscito e ho trovato cosa
i comandi sono perché ho capito
il sottostante modello get come facciamo
una cosa del genere ben sappiamo che
oggetti i nostri hash quindi deve essere un hash
comando oggetto per cercare l’hash di a
file teoricamente in modo che possiamo prendere qualsiasi
file è dentro qui abbiamo un nascosto
file ed è creato quindi distruggeremo
in seguito ottiene oggetti hash e quello
mi dirà l’hash di un dato oggetto
o cosa sarebbe se lo inserissi nel
inserire nel repository ora ho fatto
anche un meno W che dice in realtà fare
che l’ha messa nel repository creare
un oggetto da questo file non dà fastidio
è di gran lunga il nome o qualcosa del genere giusto
metti il contenuto di questo file nel
repository ed è appena seduto lì
galleggiante non fa parte di alcuna catena di
non commette alberi e nulla ora è così
non è un grande uso per te perché
quello che succederà è ovviamente in due
le settimane in cui GC arriverà e se ne andrà
ah non viene indicato da
qualsiasi cosa lo distruggerà
a meno che non diamo un nome in questo caso a
taggalo potrebbe essere solo un ref ma noi siamo
userò un tag che sembra appropriato
così quando l’hash è stato creato che abbiamo avuto
l’hash quando usiamo ora l’hash
crea un tag chiamato hidden e ora andiamo
fuori e cancelliamo quel file e andiamo
torniamo al nostro ramo principale
sul ramo principale che
l’oggetto è fluttuante e non lo sarà mai
distrutto e non avrà record in
là oltre Z nel registro di rif
non ci sono commit associati ad esso no
alberi no niente è un blob di
informazioni nascoste in là come facciamo
tiralo fuori bene, abbiamo il tag se
Sappiamo che il nome sappiamo che deve essere
un modo per ottenere questo fuori tutto
deve essere in qualche modo un aspetto carino
attraverso i manuali ci vai
abbiamo il file cat cat cat che prenderemo
qualsiasi riferimento o hash e tirerà
fuori quella informazione e scaricarla
sullo schermo quindi eseguiamo quello e
qui abbiamo quello che è il corrente
contenuto di quello che è il vecchio Smith
ricetta di famiglia per il Chien gonna irlandese
sfondo e alcuni dei suoi altamente
sospetto, ecco perché il mio nome è Smith
ora pensavo di credere che fossero su
l’uomo del fisco in Irlanda
ora questo sembra ci fossero teorica è
interessante è un po ‘di divertimento tuttavia
in realtà è usata una storia divertente quando loro
se lo aggiungessi allo sport un po ‘
secchio ha continuato a far saltare in aria quando loro
ho provato a tirare nel deposito del cancello il
la ragione era che qualcuno aveva un aiuto nascosto
oggetto in là e non erano che avevamo
non avevo idea di ciò che succede
all’interno dello stesso repository di regali
repository git di proprietà Junio chi è il
manutentore ha scaricato la sua chiave PGP così da te
può effettivamente verificare il repository
contro se stesso e verificare la storia
è appena nascosto lì dentro e si è fatto saltare in aria
bit bucket quando stiamo cercando di aggiungere get
supporto ad esso così è così sto bene
e veramente fuori dal tempo ora si prega di utilizzare il
App per valutare e ci sarà un
la clinica del parlatore dall’altra parte
non ho visto dov’è ma me ne andrò
e trovalo se io se riesco a trovarlo ne sono sicuro
puoi farlo ma solo per ricapitolare che è
entrare nei suoi oggetti elemento fondamentale
ci sono alberi che possono essere commessi
punto a vicenda e si può catena
il tuo impegno è quello di stare insieme e quello
ti dà la cronologia, quindi ora è un buon inizio
e fai in modo che i repository vadano via
curiosare per vedere cosa succede e farlo
anche sulla tua produzione
bene non ti preoccupare
quindi divertiti grazie, ci vediamo dopo bene
tu
Please follow and like us: