
Git - with Jesse Liberty and James World
Durée: 74m30s
Date de sortie: 11/09/2021
In this episode, I was joined by Jesse Liberty and James World to chat about a topic I'm also personally very passionate about - the Git source control system.Jesse is a fellow podcast host, as well as an author of a book about Git.James is a Solution Architect who has done many a talk on Git and likes to delve a bit deeper into what goes on under the hood (as you'll see in this episode!).For a full list of show links, see the website here
Salut à tous et bienvenue au podcast de l'Unhandled Exception et à la chaîne d'Anclac,
et c'est l'épisode 23.
Et aujourd'hui, nous avons un autre épisode de groupe qui sera tout à l'heure sur GIT,
un de mes préférés pour GIT.
Nous allons donner à tous les guests une bonne introduction.
James World, qui est le nom de Mike Ringer Bell,
depuis l'épisode 16, qui me joint à parler de la développement de l'éducation et de la self-development.
James est la solution à l'architecte et on va prendre un bon temps ici.
Microsoft a certifié que l'expert de l'architecte Azure,
c'est un twister de temps, et il a fait un tonneau de parler,
en particulier à l'expert de l'architecte Azure,
et nous avons aussi co-foundé un autre groupe d'architectes Azure.
Bienvenue au show, James.
Merci, Dan.
Je suis content d'avoir vous mis au premier temps.
J'ai aimé. C'est bien. Je suis en train de vous donner.
C'est bien.
Et nous sommes aussi joined par Jesse Liberty,
qui vous connaît d'un autre podcast.
Il est un développeur principal et un MVP de Microsoft.
Il a aussi récemment écrit un livre sur GIT.
Bienvenue au show, Jesse.
Il doit être étrange d'être un guest,
plutôt que d'un host, je pense.
C'est un peu mal. Merci pour votre welcome.
Je suis content d'être sur cette page de la table.
Je vais vous dire que si je commence à me dire que je suis imitéant,
je dois avoir cette disorder,
si je suis avec quelqu'un avec un accent pour plus de 5 minutes,
je vais commencer à me dire comme ça.
Ne vous faites pas attention à ça.
Vous ne vous faites pas entendre comme moi.
C'est pour sûr.
Je suis en Angleterre, New Ireland,
pour deux semaines.
Et quand je me suis dépassé,
je suis allé à un shop,
j'ai des coups de chocs et des tigres pour les prendre.
Elle m'a dit quelque chose.
Je ne sais pas, je n'ai pas de luggage.
Elle m'a dit, où vous allez?
Je me suis dit, je suis de retour au pays.
Elle m'a dit, mais vous êtes là-bas.
C'était un grand compliment.
Je trouve que même juste localement,
si vous vous en avez mis à un endroit ou d'autre,
je suis originalement d'une location,
qui est un peu ennemi,
et quand je suis en Angleterre,
quand vous allez à un shop,
vous pouvez dire que vous pouvez prendre des coups de chocs
et ils vont savoir ce que vous voulez.
Donc, des coups de chocs et des tigres,
je suis en train de faire des coups de chocs.
Et ça fait quelques heures.
C'est incroyable pour un pays comme ça,
quelles sont les distances
entre des changements signifiaires
dans l'accès régional et la terminologie.
Oui, dans les États,
vous avez un grand accent,
mais pas trop de terminologies.
Je veux que vous en aiez un,
mais on est un peu plus grand.
Je pense que nous sommes en train de pincher
votre terminologie, parce que même mes deux enfants,
parce qu'ils regardent beaucoup de programmes américains,
ils sont venus avec tous les trucs,
c'est certainement une terminologie américaine.
Vous devez le tourner.
Oui, on l'a essayé.
Alors, avant de nous dévouer,
je vais faire ce épisode,
et celui-là va à Laurent Kem,
qui est, je pense,
de France ou de Switzerland,
donc, je ne pouvais pas prononcer
son nom correctement,
mais il dit
« Un épisode fantastique de
l'Unhandled Exception podcast
par Dracan, je suis Dracan sur Twitter,
Martin Barrio et Kuhl Skrygan,
en parler de JetBrains Rider
et de JetBrains Code avec moi.
J'ai voulu avoir un plus grand look
à la communication de réactive
et distribuée pour ça pour longtemps.
Merci pour votre tweet,
et il a referé le dernier épisode.
Parce que c'est un épisode group,
tous les 3 sont
très expériences
et je pense que nous avons tous
parlé de JetBrains,
je pensais que ça serait un bon
discussion de la table
sur ce qu'il y a de bon,
ce qu'il y a de mauvais,
ce qu'il y a de la vie,
et tout ça.
Je dirais pas que ça soit un bon,
mais on a
une grande partie de Google Docs
avec beaucoup d'idées que nous avons toutes
les données, donc je pense que
il y a beaucoup d'interessants
pour le coureur. Mais je pense que
on devrait peut-être assumer que les
listeners connaissent déjà ce qu'est le contrôle de la source,
parce que je pense que ça peut être un peu trop basé,
je pense que les listeners auraient utilisé
une forme de contrôle de la source,
si pas de la source, mais je pense que
un point très bon peut être
ce qui fait qu'il y a de la différence
entre les systèmes de contrôle de la source non distributifs.
Je pense que
si on a des choses qui sont différentes
de la contrôle de la source,
c'est que c'est distribué,
et ça a beaucoup d'advantages,
pas les mêmes, mais si
le crash est repository,
c'est possible de réécreer
cela à l'autre.
Mais je pense que c'est un bon point,
et l'autre est la vitesse,
et on peut parler de la vitesse
avantageée en Viet,
qui est, je pense,
ce qui a finalement fait
le victime, si vous voulez,
dans le contexte
du contrôle de la source,
et la facture que les enfants collés sont là.
Je pense que
la nature distribuée est aussi
une des choses qui fait qu'il y a
plus de complication que les systèmes de contrôle de la source.
Je pense que, par exemple,
quand je m'ai appris
les gens de Git,
avant de commencer,
avant d'arriver aux branches explicites,
comme les branches feature,
on peut encore se faire des diverses branches
entre les mêmes branches, les locales et les réformes,
comme main versus originale.
Les développeurs doivent vraiment comprendre
les branches depuis le début.
Et, sans doute, je ne pense que beaucoup de développeurs
se font.
Oui, je pense que Git a des branches
dans un peu de différentes manières
que beaucoup de ses préassets.
Et c'est partie de sa force,
la facture que les branches sont très
facile à faire et très vite.
Mais ça peut aussi vous déterrir, je pense,
dans beaucoup de trouble, car si vous commencez
à créer des branches dans une façon très disorganisée,
particulièrement les branches que vous avez
séduit, vous pouvez en arriver
dans un peu d'hommes.
J'ai vécu dans le programme
dans le espace Microsoft, et le premier système de contrôle de la source
que j'ai commencé à utiliser était la source saine.
C'est un nom ironique,
je pense, un nom plus sourcil et
faible, ça aurait probablement été un nom
meilleur. Je peux certainement
remercier plus d'une fois que
j'ai été corrupté. Exactement,
comme Jesse a dit, vous avez seulement
un copier versus un copier distribué.
Ça pourrait vous déterrir dans un peu de trouble.
Oui, Git fait des branches
plus facile et plus vite.
Mais vous devez avoir
je pense, le modèle mental correct
sur comment Git fonctionne.
C'est probablement quelque chose qui est plus
plus important que la première fois que vous avez
passé un peu de temps, si vous avez sorti
par les bases.
En fait, quand vous étiez
Git, comment vous
commencez ?
Parce que le premier chose que je dis à des gens
c'est que vous ne pensez pas sur un liste de
commits et pensez sur un graph,
presque comme un liste de links.
Je tend à faire des graphes
qui sont des exemples, et c'est
très bien comme un graph.
Je pense que beaucoup de personnes qui ne sont pas
n'ont pas l'habitude de
Git, peuvent juste penser
à un liste de check-ins ou de commits.
Oui, je pense que
la phrase qui est la même chose, c'est
un peu académique et très évident, mais c'est
ce que vous appelez le directeur
un graphe acyclic
ou un DAG, qui est un
terme de fancier pour une idée vraiment simple.
Donc,
chaque note dans votre graph
dans Git est un commit.
Et chaque commit, except
votre premier commit,
va avoir
un autre commit à sa parent.
Et c'est le sort de les arrows
dans votre graphe acyclic.
Et le part acyclic
juste signifie qu'il n'y a pas de loops.
Donc, si vous followz
toutes les parents, vous allez finir
en arrivant au premier commit.
Et les commits sont immutables.
C'est une partie très importante.
Si vous avez fait un commit, vous ne
n'aurez jamais changé ou édité.
Qu'une action que vous faites
sur Git, vous créez
un nouveau commit
avec une nouvelle parent.
Et en faisant ce model dans votre tête,
je pense que ça fait beaucoup plus facile
d'understand ce que les commandes
sont en train de faire.
Mais je suis absolument avec vous,
quand je vous le dis, je vous
poste toutes les déscres
avec des diagrams graphes
où je représente
chaque commande en termes de comment
vous avez changé le graphe de commits.
Vous avez ajouté le graphe de commits.
C'est très intéressant parce que je prends
une très, très différente approach.
Et vous pouvez voir ça dans beaucoup de choses.
Je ne fais pas le
dég.
En fait, je ne commence
pas tout de suite. Je commence par
parler de commits,
sur une partie.
Donc, je ne fais pas de branching.
Et ensuite,
le next thing est de parler de la différence
entre la vécuère qui est sur votre machine
et la vécuère
qui est sur un potentiellement
central de la vécuère, comme la vécuère
et ce qui est là.
Et ensuite, après tout ça,
c'est tout bon.
Et nous avons parlé de la checker
dans cette partie.
C'est quand je le prends dans la deuxième partie.
Donc, c'est vraiment un peu
l'élection de la façon dont vous vous appréciez.
Oui, et je pense que
quand je l'ai expliqué, je suis généralement
un point où les gens ont déjà
utilisé un peu
et ont pu se faire
faire la très basse workflow.
Mais ensuite, ils ont peut-être commencé
à se faire des problèmes
où ils tentent de partager la code
ou de faire des codes pour la vécuère
ou de travailler avec les autres développeurs
qui travaillent sur la même branch.
Je pense que
avoir ce modèle dans votre tête
de la commettissement de la vécuère est important
parce que ça vous aide, je pense,
que, à votre tête,
c'est un modèle très simple
qui a un set
de commandes qui font
vraiment compliquer pour voir
ce modèle simple.
Quand vous vous en vous en vous enziez
de la vécuère et de la vécuère
de la vécuère,
tout ce que vous faites
est de l'exchanger des commettements
que l'autre côté n'a pas encore.
Si vous créez un commettement,
ou un nombre de commettements,
ou un nombre de branches,
tout ce que vous faites
est de l'exchanger des commettements
et quand vous vous enziez
tout ce que vous faites est de l'exchanger
des commettements que vous n'avez pas encore.
Vous vous enziez un graphe
avec les remords de la vécuère
que vous n'avez pas.
Ce n'est pas une édité,
c'est juste une édité.
Je me demande si c'est pour les listeners
que je n'ai pas utilisé le GIT,
peut-être en taking un step back a bit
et juste expliquer
que quand vous faites des changements locales
en GIT, quand vous créez un commettement,
c'est local.
Je vais en faire un plus.
Le place où j'ai commencé
c'est quand j'étais affaire
de perdre ma cote,
je ferais un bon copie de cette direction.
Et puis je fais du plus de travail
et je ferais un bon copie de cette direction.
Et la purpose de GIT
ou d'autres contrôles source c'est de
faire ce que vous faites
avec cette sécurité.
Maintenant
on peut parler de GIT,
ce qui est un copie,
la première façon de penser à ce copie
c'est de dire
que je prends tout ce code
et le exact status que j'ai
et de le mettre dans mon repository.
Et puis on peut parler des subtleties de ça.
Je pense que je vais aussi
penser à la
fonction générale, juste pour que
un nouveau développeur ne soit pas habitué
à la GIT. Et pour le temps de
être un peu ignoré,
juste temporairement.
Mais juste pour remercier James' point
de ce que, quand vous faites un commit,
comme vous avez fait un peu de changements en un projet existant
que vous faites un commit,
c'est un concept important
pour savoir que c'est local,
et que James utilise le terme push and pull
jusqu'à vous mettre
pour être shared avec les autres.
Oui, absolument.
Je pense que c'est difficile de ne pas parler
de cet area de staging,
parce que un commit est un complet snapshot
de l'application de l'application
du fil de l'application.
Quand vous faites un commit,
vous allez faire un copier de tous les changements
que vous voulez passer et mettre dans le commit.
Donc le processus de ajouter
quelque chose dans un repository local
est que vous allez ajouter
une série de nouveaux files,
des édites pour des files existants,
ou peut-être la délétion des files existants.
Et ces commandes,
les commandes GitAd ou GitRM
ne changent pas le repository
à ce point.
Ils sont préparés pour les changements
dans un area de staging.
Et quand vous issuez le commit,
c'est quand vous faites un nouveau record
et vous le commit dans le repository.
Et ce commit est logique,
c'est un complet snapshot
du fil de l'application, et c'est un point
qui distingue vraiment le Git
de beaucoup d'autres systèmes de source control
où ils récordent leurs changements
d'incrémente d'autres files.
Et c'est l'une des choses
qui fait que le Git est très rapide
parce que quand vous changez un branch
et que vous faites
votre système local
réflecse le nouveau branch,
c'est capable de très rapidement
travailler sur ce que vous avez à faire,
plutôt que de replier
ou de faire une série de files,
ça peut aller directement
au commit que vous avez essayé de vérifier
sur le système de file.
Oui, je trouve ça utile.
Je sais que vous allez probablement parler de la goutte
et des choses plus tard, mais un peu de gouttes
vont vous faire cliquer
à un moment de commettie
et avoir une paix
qui est la file de la logique
et vous pouvez naviguer le projet
comme c'était à ce point en temps.
Donc, comme vous le disiez, c'est super puissant
pour pouvoir tomber à un point en temps.
Oui, et en fait, quand je parle de ça,
on sort du niveau de la place
où je commence à échanger
ce que je pense est le plus fundamental
du goutte, qui est celui que vous n'aurez jamais utilisé.
C'est le goutte-objet.
Et ce que ça commande, c'est que vous vous donnez
un file
et que ça va créer
un hash, un hash char-1 de ce file.
Et c'est ce sort de string de lettres
et de numéros qui est un identif unique
pour ce file.
Et l'interesse qui me fait est que
il ne importa pas où vous êtes dans le monde,
quel computer vous êtes, si vous échiez ce command
contre un file avec le même contenu
que quelqu'un d'autre, vous avez le même numéro.
Et ça est utilisé
pour détenir un blob
dans le database
qui représente
le contenu de ce file.
Il est nommé pour le blob.
Et c'est le leaf de toute la information
dans ce goutte-objet.
Donc, un set de blobs
sera collecté ensemble pour créer
un goutte.
Et le goutte contient
les noms
des files
que vous avez entre vos blobs et les haches
de ces blobs. Et puis,
en soi-même, c'est hash.
Ce liste de blobs et leurs noms
est hash pour créer un hash pour le goutte.
Et le goutte peut contacter
blobs et autres gouttes.
Et quand vous vous rendez à la route
de la pièce, la route de votre workings,
le goutte se pointe
à un goutte et se s'est
hashé. Et sa parent
est inclus dans la création
du hash de la pièce. Tout est lié
à la structure.
Cette structure mathématique qui a un nom
appelé le mercal.
C'est la même structure que l'on utilise
pour créer des blocs.
Et c'est ce modèle qui donne
l'intégrité. C'est impossible
de corrupter parce que tout est
étendu ensemble. Et c'est la structure
de la technologie.
Et pour moi,
les files, les folders
et les comités, ils sont tous
partie de cette même chambre.
C'est la simplicité élegante
de la structure de la pièce
que l'on utilise pour décrire
toute la structure.
Et je dirais
que
vous n'aurez pas besoin de savoir
que ceci est
très efficace.
C'est utile
de savoir que si vous êtes curieux
de comment la pièce est maintenue,
vous pouvez aller très loin
dans la route avec le GIT,
incluant beaucoup de commandes
et de vous faire sortir de la
chambre sans savoir
quelles sont les blocs,
sans savoir quelles sont les passages
et juste de la
interface entre vous
et la répositoire,
sans comprendre ce qui s'est passé
dans la répositoire.
Je pense que nous voulons de
faire ça de différentes manières,
et je pense que
vous pouvez
aller très loin
sans savoir
ces choses.
Mais je me suis trouvé
comme la lumière
qui a sorti pour moi.
J'ai été frustré
parce que j'ai eu des problèmes
où je voulais peut-être essayer
de faire une rébase ou une merge
et de terminer avec des commits que je n'avais pas
expérimente.
Je me suis dit, qu'est-ce qui se passe?
Et si,
en enversant un extra niveau
d'entraînement,
d'entraînement des modèles,
ça a suddenly
été plus facile
pour résolver la confusion.
Les commandes ont commencé
à faire les choses que j'ai prévenus.
Je pense que vous êtes bien,
que ce n'est pas le cas où vous vous sortez.
Je suis là, quand j'ai commencé
à faire des difficultés occasionnelles
et j'ai besoin de comprendre ce qui s'est passé.
Et ça m'a aidé à résolver ces problèmes.
Pour moi, c'est assez intéressant.
Je suis en train de vous dire, Jesse,
que je vais avoir besoin de résolver
beaucoup de conflits de merge
et de choses.
Je ne me ressens pas que j'ai dû
comprendre tout ça.
Mais, une question
que je suis vraiment intéressée.
Quand vous vous sentez ça,
vous pouvez probablement trouver
des non-orthodoxes, non standard,
des manières de l'utiliser pour d'autres choses.
Je suis très intéressé,
si vous avez utilisé votre knowledge de la deep
pour faire quelque chose qui n'est pas standard.
Je pense que c'est
une application qui a été
créée avec la source de contrôle en mind.
Mais ça fonctionne
pour quelque chose où vous voulez
faire des versions de choses
et les développer en parallèle.
Je l'ai utilisé dans un système de software
qui a été créé
et qui a été créé.
On a utilisé des contracts, des contracts légaux
où ils ont été développés
dans la industrie de la maritime.
Ils sont compliqués, ils sont évolués
et ont été développés en temps de développement.
Les gens doivent savoir très clairement
que les lines individuelles ont changé
et que ce n'est pas changé.
Et ça a travaillé très bien
pour utiliser le modèle de file de stock
dans ce système.
Je pense que c'est des autres applications,
mais 99,9% de ce que j'utilise
pour la source de contrôle.
Quand vous faites ça,
vous utilisez le commande de l'objectif
et vous utilisez ça pour interagir
à la hauteur de la ligne basée.
Non, c'est vraiment la compréhension.
Je pense que les commandes
que vous et moi utilisons tous les jours
sont parfaitement fine pour travailler avec ça.
Je vous remercie.
Je pense que c'était Donat Dockx
il y a quelques années, un talk on git
en parlant de tout ceci.
C'est fascinant car, comme je vous dis,
j'utilise le lot git et je me sens
que c'est très bien.
Mais quand vous allez plus loin,
je ne sais pas très bien.
Je vous ai trouvé le talk fascinant.
Je vous include un lien dans les notes.
C'est intéressant.
Je fais un dialogue avec
un développeur qui parle
de rebase et dit que
rebase s'éteint
et c'est pas vrai.
Vous ne pouvez pas éteindre les commets.
Vous pouvez les copying s'il vous plaît.
Mais localement, si vous faites
un rebase,
vous faites quelque chose d'intéressant.
Vous faites un nouvel commet.
Vous vous mobilisez un branch.
C'est ce que je trouve
que ce modèle interne
fait que c'est très obvious.
Vous trouvez
que je comprends
que ce n'est pas vraiment le commet.
Mais pour pouvoir
comprendre
d'un niveau conceptuel,
plutôt que d'implementation,
de la détail de la production,
de ce que le rebase fait,
je trouve que quand je fais ces diagrams,
même si ce n'est pas un commet,
je trouve que le branch
qui est rebase
est en train de replacer le commet.
Mais en faisant le comme ça,
ça aide à comprendre.
Même si on ne peut pas comprendre
comment cela fonctionne sous la coude correctement.
Comment utiliser ça?
Je pense que, à Jesse's point,
je n'aurais pas nécessairement
de comprendre le complexe
du fait que ce n'est pas un commet.
Parce que
pour avoir les bases,
il ne faut pas avoir de la difficulté.
Mais la première fois que vous vous mettez
ce problème classique,
où vous travaillez sur un branch avec quelqu'un
et vous vous partez par un rebase,
et vous faites un rebase,
et puis ils se défendent
et le prochain moment, ils se défendent
avec un commet du duplicat.
Ils se demandent pourquoi ça a été arrivé.
C'est le diagramme qui montre
le fait que vous faites un commet
et ne vous mettez pas en train
de changer le commet.
Je dirais que si vous avez fait ça,
vous avez fait quelque chose d'inconstitut.
C'est à dire que vous avez fait un rebase
sur le service, sur la coude correcte.
Et le moyen que je ne vous aide
est que je ne fais que mon rebase
sur mon repos local
et puis vous mettez les changements.
Parce que sinon, vous avez effectivement
ré-written une histoire
pour que vous soyez entreprenant
le personnel que vous étiez en train de partager
cette coude.
Et cela vous fera un problème.
En fait, cela peut vous faire un cycle
de repos en repos
et puis de rebase en bas
dans le temps que vous allez.
Je vous fais un distinction
en plus d'abord,
et je commence à parler de rebases,
c'est que vous mergez
dans un autre branch,
mais vous rebasez sur le autre branch.
Et puis, c'est plus facile de parler
de pourquoi vous voulez faire ça
et de quel aspect ça ressemble
et comment ça devient
un bol totem.
À ce point, je dirais
que vous ne faites pas
rien, vous n'avez pas de tout
de ce que vous faites
en faisant des copies
et en détenuant
cette nouvelle relation.
Je pense que vous pouvez y aller,
mais je ne commence pas
avec le fait que c'est un copie.
Je pense que, par
la formation d'un nouveau
tigette, il y a peut-être un ordre
logique pour expliquer les choses, mais je ne sais pas
que vous, mais j'ai travaillé avec des
développeurs qui ont utilisé
et je vais vous parler de ces quotes,
mais ils ont utilisé pour des années,
mais ils font vraiment
de la poignée et ne comprennent pas
les choses comme rebase.
Personnellement, je considère que
les rebases sont
fondamentaux et je trouve
que les dévices qui
n'aiment pas les choses
qui n'ont pas eu le temps
d'understand, donc ils
sont en train de se battre en courant
quand quelque chose de différent s'occupe.
Je pense que, Jesse, dans votre note, vous avez
mis que 90% des développeurs sont utilisés.
D'après le stack overflow,
je ne m'en souviens pas de la numéro 2,
le 93 ou le 97.
C'est la vaste majorité
de développeurs qui utilisent
des quotes, à un certain
degré ou d'autre. Et ça peut être
juste pour éteindre ça,
ça peut être 90% des gens
qui utilisent le contrôle source
tout. Mais je voudrais argument
que vous voulez utiliser le contrôle source
même si vous travaillez en même temps.
Oui, absolument, absolument.
Oui, j'y ai toujours.
Tout le temps que je travaille localement,
le premier chose est de le mettre en place.
Parce que c'est tellement facile
de créer un repository
et de avoir une histoire version
même si vous vous êtes en même temps.
C'est tellement incroyable de perdre le travail.
Il n'y a rien que j'ai plus de travail
que de faire redouer
quelque chose que j'ai déjà fait.
Je ne m'en souviens pas de prendre
le challenge de quelque chose de nouveau.
Mais si je fais un certain nombre de travail et que je la perds,
et que je dois redouer,
je suis un grand believer. Et c'est un autre place
qu'on peut ou on ne peut pas y conclure.
Je suis un grand believer et je commette souvent.
Commette, commette, commette.
Et puis,
si vous voulez une histoire de clean,
utilisez l'interactive rebase,
squash down all those commits,
combinez la message
qui sera dédiée
avant que vous puissiez.
Comment ça se fait pour simplifier?
Je suis complètement d'accord
avec Commit Often.
Pour aller pour une histoire de clean,
je dirais que je ne squash down
généralement pas pour un commet single,
mais nécessairement, je vais tendre à organiser
la information logiquement.
Parce que,
avec la histoire, je vais essayer de
raconter une histoire qui est facile pour les gens
d'understand.
En termes de développeurs,
nous existons pour mettre les codes,
pour s'acheter des problèmes de business,
pour donner des valeurs à des entreprises.
Nous créons des programmes,
les programmes de production qui sont importants,
mais ils doivent être volables,
ils doivent être maintenables.
Et comprendre comment ils ont évolué
et maintenir, est un
important moyen
d'en faire plus facile pour
comprendre et lire.
Et en fait, je pense que nous ne
probablement ne nous dévouons pas
de pouvoir en faire comme nous pouvons,
pour aider à comprendre les bases de codes
que nous travaillons et à maintenir.
Et parfois, c'est parce que
la histoire est un défi.
Nous sommes dans un agreement 100%
de l'agriculture.
Je n'ai pas d'inquiétude que je
dévouisse le document à un seul défi,
mais exactement comme vous le disiez,
à un sérieux défi qui dit la histoire,
dévouissant le défi
juste de la sécurité.
Oui.
Je pense que l'un des choses que vous avez mentionnée,
qui était assez intéressant, c'est la phrase
de la histoire de ré-writing.
Et si ou pas,
c'est une bonne ou une bonne chose.
Et évidemment, nous parlons
maintenant de la histoire de ré-writing
sur votre machine locale, avant que
c'est séparé sur le service.
Et je pense que cette question
de si ou pas vous ré-write la histoire,
je vous mets un éco-sauve, vous ne pouvez pas
voir cela sur le service,
est-ce que vous devez faire ou pas.
C'est un point contentieux,
parce que je pense que c'est ok
de faire ça, si vous le faites
dans un de l'autre façon.
Donc, la question
de si vous devez mérir ou ré-bâtir
a beaucoup de choses. Et je pense que l'un des choses
que je voudrais toujours vous rappeler,
c'est que vous devez mérir en même temps.
Ré-bâtir ne peut pas
intégrer votre code.
Donc, même si vous êtes ré-bâtir,
vous allez toujours suivre
l'application avec un mètre
en arrière. Et si vous
faites un branch
pour créer un pour-réquest,
et que vous avez des changements,
ré-bâtir
fait deux choses.
Tout d'abord, si vous le faites interactuellement,
vous avez l'opportunité de créer
une histoire d'application.
Mais aussi, si vous
ré-bâtez un branch
pour dire master, vous vous
incorporez toutes les changements
qui ont appris sur master,
depuis que vous avez créé votre branch
dans ce branch.
Et puis, évidemment, ça vous
permet de tester que les changements
que vous avez faits travaillent contre
les plus récits changements qui existent
sur la main-line. Et je serais certain
que vous abriquiez
pour régulièrement
ré-updater
que vous ayez forcé à faire
un branch long-délevé
que vous avez créé.
Vous devez vérifier que
cela fait un changement
sur le contexte des autres changements
qui ont été pour-réquest,
depuis que vous avez créé ce branch.
Oui, je suis complètement certain.
Si vous travaillez sur un branch
pour une longue durée, vous voulez
mettre le master
dans votre branch
pour minimiser
le nombre
de conflits que vous pouvez faire.
Si vous ne faites pas ça, vous pouvez
aller en, aller en, aller en, et puis
vous devez faire ça à un moment
et vous pouvez avoir un très long
nombre de conflits qui sont difficiles
pour le résultat. Donc je suis totalement
d'accord en termes de mettre le master
dans votre branch. Mais à un moment
vous devez mettre votre branch dans le master.
Et c'est là
où je devrais éviter
le rebasing. C'est là où je vais utiliser
un merge, à la pointe
que je suis en train de
finir mon branch et je voulais
aller en retour au master.
Oui, et je pense que si vous avez juste
rebase avant que vous faites ça,
donc avant que il y ait d'autres changements
sur le mainline,
vous devez avoir une autre choice
qui est assez intéressant, parce que
quand vous mergez un branch
dans le master, quand vous êtes faits
un rebasing,
si vous avez juste rebase ce branch
et vous êtes en train de faire ça,
par défaut, GIT va faire
quelque chose de fast forward,
où vous devez voir que la position
de master est maintenant
strictement dans la histoire de votre branch
que vous êtes en train de merge.
Vous vous avez fait 3 committements
et le premier committement
que vous avez fait, parce que vous avez juste rebase,
votre parent est maintenant
où le master est en train de se faire
et quand vous faites votre merge,
GIT va dire, vous savez,
je n'ai pas besoin de créer un committement de merge ici,
je peux juste modifier le master
pour être pointant
le même committement que le branch
et j'ai intégré les changements.
C'est un merge fast forward,
et c'est différent de un merge régulier,
parce que le merge régulier est,
par définition, un committement qui a plus
que un parent.
Donc si vous n'avez pas rebase,
si vous avez des changements dans les deux branches,
alors que l'opération merge
va créer un nouveau committement
qui est,
qui est le parent de la 2 branches
que vous êtes en train de merge.
Et en fait, j'aime
avoir ça pour que GIT
toujours crée un committement de merge,
même si j'ai rebase,
et que le merge fast forward est possible.
Le valeur de ça est que, dans ma histoire,
je peux voir
encore un bon set de changements
construits sur le master branch,
mais vous avez ce type de branch
de côté,
qui montre
où le travail s'est passé,
en un groupe,
et je trouve ça très utile,
de voir ce bloc de travail,
cette séquence de 3 committements
qui se sont faits en un single unit de travail.
Oui, je l'ai appris.
C'est comme si votre committement
dans votre feature branch est
un histoire.
La branche qui vient de montrer la histoire,
c'est comme si la base de la name est
pour que le committement soit juste
sur le feature, mais vous n'avez pas besoin
de réexpliquer le feature dans chaque committement,
si vous avez un merge fast forward,
pour que votre 3 committements
soit dans le branch de feature,
ou sur le main branch,
vous ne pourriez pas
que ils soient partie du même feature,
si le message committement était très descriptif.
Je pense que, comme vous le dis,
que cette branche qui vient de les montrer,
elle montre un bon histoire.
C'est un histoire qui les a pas élevé
et qui a fait un bon tour.
Oui, et on a
une histoire
qui est naturelle,
un petit peu de confusion
ou on a essayé de faire des deux différents audiences
à la même temps.
Ce qui est un peu utile,
ce qui nous a fait un peu de sens,
et ceux qui sont relativement négatifs,
en ce qui est un peu utile,
je veux dire
que je ne fais pas
votre travail et les committements
sur le main branch,
mais créer des branches de feature
pour que vous soyez venus le travailler.
Et puis, quand ça est correct,
et que vous avez mis le master,
et que vous savez que c'est correct,
que votre travail est correct,
que votre série de committements est correct,
seulement après ça, je vais vous remettre
pour le master.
En fait, je travaille avec 3 main lines.
L'une est la ligne
qui est pour
poursuivre le monde
pour la production.
L'autre est la ligne de développement.
La ligne de développement,
qui est pour le production,
et puis tout autre chose
est fait sur un branch de feature.
Je ne vous en vois pas,
donc je ne pense pas que c'est un peu différent.
Je vous en ai compris.
Et je vous inquiète si
beaucoup de gens peuvent le faire,
dépendant de votre développement solo,
juste en travaillant sur votre propre,
versus avoir un équipe avec beaucoup de gens,
et puis vous pouvez commencer à introduire
des choses comme des flow de github,
et tous ces types de stratégies de branching,
et si vous en avez un,
si vous en avez un,
complètement sur votre propre,
un projet de hobby très petit,
vous auriez encore ces 3 lines de développement ?
Je vais avoir à moins 2.
Je vais avoir à moins de mes main lines
et de mes branches de feature.
Je suis un grand believer en branches de feature.
Ils font ça beaucoup plus difficile pour vous faire mal.
C'est toujours une bonne chose.
Et en fait, c'est pas uncommon
de avoir votre set-up de central repository,
pour que vous ne pouvez pas
commettre à la branch de master.
La seule façon que vous pouvez
aller en master
est de transmettre un branch
pour un progrès pour être
émérgé dans le master,
pour renforcer ça,
qui est une sécurité très sensible.
Je pense que c'est vrai que nous
avons sorti en avant,
et nous sommes en train de faire 2 ordnances de target.
Je me demande si c'est pour ça
de reprendre un peu.
Nous avons parlé de GIT,
des requests de PR,
des GIT hub,
et je pense que pour les nouveaux,
il y a probablement beaucoup de confusion
entre des choses comme GIT vs GIT hub,
et des requests de PUL,
qui n'ont pas un GIT,
un GIT hub, un peu bouclier,
un devops,
peut-on nous remettre un peu,
et expliquer la différence entre GIT
et des choses comme GIT hub,
un devops, tout ce genre de choses.
Bien sûr,
une confusion que j'ai vu beaucoup
est la différence entre GIT hub
et GIT hub desktop.
GIT est ce que nous avons parlé
du système de contrôle source.
Nous avons parlé du fait que vous pouvez
avoir un repository essentiel,
probablement par far le plus populaire
est GIT hub.
Et GIT hub est essentiellement un endroit
pour mettre votre repository essentiel.
Vous pouvez faire plus que ça,
mais c'est une bonne façon de penser.
GIT hub desktop est
un GOUI
pour travailler avec GIT
qui a été créé par les gens de GIT hub.
L'advantage de GIT hub est
que c'est extrêmement facile
d'utiliser, l'advantage est
qu'il est assez limité
dans ce que l'on peut faire.
Et il y a un nombre de interfaces graphiques.
Le premier que le studio visual
a, est assez
powerful, assez facile
d'utiliser.
Je vais essayer de dire
si j'ai jamais joué à quelque chose
dans le studio visual GOUI
que je ne peux pas faire avec la ligne de commande.
Je pense que j'utilise la ligne de commande
pour que je fasse plus de habitation
que le fait que le vs ne peut pas le faire.
Mais James, quelle est votre expérience?
Je suis un grand fan
de la ligne de commande.
Je pense que ça peut arriver
par les problèmes de la ligne de commande
que j'ai commencé à utiliser
GOUI quand j'ai commencé à utiliser GIT.
Et puis je vais
en faire des problèmes.
Et c'était en recherchant et en
entendant un peu plus de comment le gait a été
travaillé. Je l'ai réalisé
même en utilisant le studio visual,
ce qui je pense que dans les derniers jours,
je n'ai pas fait autant que ça.
Il y a un whole bunch de choses que vous pouvez faire
dans la ligne de commande
que vous ne pouvez pas faire si facilement
dans les GOUI tools.
Je pense que c'est
l'interface de commande
que GIT a originalement créée pour GIT.
C'est probablement un des plus
unforgivinges interfaces
pour un tout.
C'est une histoire assez couleuruse.
Il y a beaucoup de sortes de
égages de la ligne.
Par exemple, il va falloir referter
le même concept en GIT par plusieurs noms différents.
En diverses, vous pouvez voir
l'interface de la ligne de commande
que vous avez parlé de.
Il va falloir referter
l'interface de la ligne de commande,
l'index, le cash
et les autres noms.
Il peut être très confusant
de rappeler votre tête sur les nuances
des commandes.
Mais si vous avez ce modèle en mind,
vous pouvez en savoir
seulement un petit handful de commandes.
Cela vous fera faire des bases,
mais ça va aussi déclencher
une fonctionnalité d'advance
que je pense que ça peut être très fort.
Je pense, par exemple,
que l'obligation
de chercher le code que vous n'avez pas checké
ou de code sur une autre branch,
en utilisant quelque chose comme GITGREP,
l'obligation de demander des questions
comme quand est-ce que cette fonction
soit introduite dans la contrôle de la source
ou la dernière change?
Donc, en utilisant ce qu'on appelle
le GITPICACS, le commande GITLOG
avec le slash s qui vous
va vous montrer comment
les numéros de la question
et les numéros de la question
qui vous ont changé,
c'est-à-dire quand un truc
a été introduit ou réglé,
ça peut être très fort.
Deuxième, comprendre
quand des changements ont été faits,
qui a été faits,
vous pouvez répondre à des questions
très intéressantes
quand vous commencez à avoir des analyses
que vous pouvez faire en GITGREP.
Donc, part de cette base de code
qui est changée le plus souvent,
qui est la personne qui fait
les plus changements dans un area particular
de code? Parce que c'est probablement la personne
qui va demander des questions sur les choses
que vous ne vous entendez pas.
Dans laquelle un commit
a été introduit un bug,
vous pouvez utiliser un tool comme GITBISECT
par exemple. Donc, il y a beaucoup de choses
que je pense que le commande
certainly le fait plus facile pour moi
d'utiliser. Et je pense que le autre chose
c'est que vous êtes occasionally
en train d'utiliser un autre machine
ou vous êtes dans une situation
de remonte où vous êtes en termes
et le commande est toujours là.
Mais votre préféré de GUI ne peut pas être.
Oui, c'est une raison compétente
en itself. Dans le livre
je montre
tout ce que je parle
sur le commande en studio visual
et en desktop Github
où Github desktop peut le faire.
Donc, je suis totalement d'accord avec vous
que si vous allez aller à un point
où vous avez un point d'avance
ou quelque chose où vous ne pouvez
pas comprendre ce que c'est en faisant
en étant à la ligne commande
qui force ce problème.
En fait, en fait, le studio visual
de GUI va faire
tout ce que je fais
avec GIT. Donc, je suis
ambivalent de la 2.
Si je vous ai appris un nouveau membre
de la team,
je pense que à ce point, parce que le studio visual
a évolué son commitment
pour le faire,
je pense que je vais probablement
l'agir
mais je ne suis pas certain d'en avoir.
Je suis très intéressé. Je n'ai jamais
utilisé GIT en studio visual
mais j'ai entendu beaucoup de gens
dans le passé dire que c'est une expérience
très bonne. Mais je pense que je l'ai entendu
plus recentement, qu'ils ont été
travaillant très bien, en faisant beaucoup de
improvements. Vous avez trouvé que c'est
un des plus récentes?
La nuit en jour, depuis que Microsoft
a fait
un grand investissement
en intégrer le studio visual
en fait, c'est maintenant
une séparation de menu
et c'est beaucoup plus
plus puissant que c'est, c'est beaucoup plus
plus intuitif que c'est. Ils ont vraiment
fait des très grandes trésorations.
Je dois être careful ici parce que
c'est des NDAs mais je vois que
dans la prochaine version de studio visual
2022, il y aura
encore plus d'envergations
mais je pense que c'est vraiment intéressant.
Je suis à Microsoft
quand Git a été inventé
avant que Git était un truc.
J'étais à l'MS et
même si nous étions achetés le monde
source safe à ce point de temps, je pense
que c'est probablement un des
pas très bien connaissances que Microsoft a
fait, qui a eu sa propre source control
intérieurement pour beaucoup de bases de code
qui sont appelées source depot
qu'au least sur le command line
il y avait des similarities
pour comment vous utilisez
mais ce n'était pas un truc
qui était toujours
commercialement disponible. C'était
aussi rafraîtrant mais c'est toujours
un peu amusant que Microsoft
n'a pas utilisé sa propre source
je pense que maintenant que
la plupart des codes de source Microsoft
ont été mobilisés pour l'envergation
c'est une force de driving pour
l'improver les travailleurs
parce que Microsoft est en train de
utiliser le même système que tout le monde
qui est en train de utiliser.
Oui, donc je pense qu'avec
GOOIES, je l'ai toujours
défolter, j'ai utilisé le command
line aussi, mais j'ai défolter
des GOOIES qui ne sont pas
partie d'un IDE, parce que je
l'aime en outubbing et avoir
un interface délicaté.
Je suis un utilisateur de Windows, je ne
ne sais pas à quel point il y a
une plateforme, mais il y a
quelques différents GOOIES que vous
pouvez choisir, comme SmartGear
etisme, qui sont toutes les
questions que nous m'opt rubbishons.
Si vous avezła ress Mightwell Poko,
puis vous dé EQ,
et que ce soit présenté,
mais nous c'est subi polémique
sans rien être impér puis
Je pars tout pour cetges nói,
comparingosa
comparaison, donc en déficit, je pense que le tourisme est invaluable là, donc j'ai été un
fan de plus en plus de comparaison pour ce poursus.
Si tu n'aimes plus de comparaison, j'utilise un K-Diff 3, mais j'ai toujours ambilé les
deux à l'utiliser.
Oui, c'est quelque chose que j'ai utilisé pour une très longue période.
J'ai trouvé une version pro de la licence pour la suite de la 3-way commissaire, c'est
évidemment invaluable si tu fais de l'argent.
J'ai trouvé un autre point de vue qui était très important.
J'ai trouvé un autre point de vue qui était très intéressant.
J'ai trouvé un autre point de vue qui était très intéressant.
J'ai trouvé un autre point de vue qui était très intéressant.
J'ai trouvé un autre point de vue qui était très intéressant.
J'ai trouvé un autre point de vue qui était très intéressant.
J'ai trouvé un autre point de vue qui était très intéressant.
J'ai trouvé un autre point de vue qui était très intéressant.
J'ai trouvé un autre point de vue qui était très intéressant.
J'ai entendu de la langue quelques années plus tard, mais je n'ai jamais été donné un
coup d'oeil, mais ça ressemble à l'amélioration des tools de merge qui ont
réussi à comprendre la langue et à utiliser un peu d'intelligence.
Je vous ai mentionné du SmartGit par le point d'utiliser des défis.
Je l'ai utilisé pour un combinateur de SmartGit pour faire le git.
Mais puis WinMerge, qui est un tool libre pour faire un 2-way défis.
Mais aussi Perforce, qui est un système de contrôle de la source.
Il y a un bunch de tools, et il y a un tool qui s'appelle P4 Merge,
qui n'est pas juste pour Perforce, et c'est gratuit pour le download.
Je l'ai utilisé pour le show notes, mais j'ai essayé des tools de merge
de 3-way, et c'est absolument incroyable.
Donc, j'ai mon SmartGit, si je veux faire un external défis,
ça ouvre WinMerge.
Si je fais un conflict de merge, ça ouvre P4 Merge.
Et je trouve que c'est une bonne combination.
Un des trucs intéressants que j'ai réussi à faire recently,
qui n'importe qui peut réplicer, mais qui m'a sauvé beaucoup de temps,
est que je développe souvent, dotnet, destin pour les containers Linux,
mais en travaillant dans les Windows comme mon desktop primaire.
Donc j'utilise le Windows subsystem WSL pour les Linux,
et si je travaille dans une image WSL, et j'utilise le git,
je veux encore pouvoir utiliser les tools de distance installés sur les Windows.
Et tous ces tools de distance,
vous specifiez un git installé dans votre file de conflict,
qui nous dit comment parler de votre file de git,
donc que vous avez des arguments pour passer chaque côté de la merge,
et vous pouvez invoquer un git,
hosté dans les Windows, d'un image WSL, et passer dans les parcs les mêmes.
C'est un bon truc avec WSL,
il y a un folder hidden, $WSL,
qui va vous permettre d'aller dans les runtimes de WSL,
et d'y arriver à leur système de file,
pour que vous puissiez ensuite utiliser un git git pour votre machine,
et ça va invoquer le tool de Windows,
et donner tous les parcs de votre container WSL,
pour que vous puissiez faire le git dans les Windows,
ce qui est assez beau.
Oui, c'est incroyable,
le point bidirectional de WSL2,
c'était l'épisode 7,
on avait Stuart Leakes en parlant de WSL2,
et c'était comme en parlant de tout ce genre de choses,
et c'est juste, il y a écrit un livre sur ça,
et oui, il y a des trucs et des trucs,
comme vous l'avez déjà dit,
c'est incroyable,
c'est en fait son livre,
qui m'a donné une information de la faute,
et qui m'a donné de savoir pour se résoudre.
Je vais lui dire, il sera trop dur de le voir.
Je l'ai dit, je l'ai dit, oui.
Je l'ai fait,
on était en même team à Microsoft.
Oh, c'est bien, je l'ai dit,
je l'ai probablement fait à un moment,
mais dans nos conversations,
juste de retourner au git git,
je vais vous en mettre dans les notes de la show,
mais sur le site de la main git,
c'est git-scm.com,
il y a une page avec
des taux et des taux et des taux,
il y a juste un lien avec eux aussi,
je vais vous en mettre dans les notes de la show,
parce que c'est une référence utile.
On dit que d'autres gouts sont disponibles,
je pense que c'est une phrase que vous avez besoin,
avant de vous en avoir honte avec les apatises.
Oui, c'est vrai.
On doit être sponsorisés,
avec des trucs que je l'ai mentionné,
je l'ai dit quelques fois.
Je ne sais pas si vous avez besoin.
On peut faire un tour,
un couple de commandes
que les utilisateurs ne peuvent pas être habitués
avec, comme un bisect,
et un blame, et tout ça,
il peut être bien d'en prendre un,
deux, pour parler de ce qu'il y a.
Oui, c'est certain.
Je vais commencer avec un bisect,
qui est un commande
assez absurde,
ou certainement pas dans le premier set
de commandes que vous avez appris,
mais ce que ça fait,
c'est que ça vous aide à trouver
où un bug a été introduit.
Et donc vous pouvez utiliser ça
manuellement par dire,
ici un bon commande, ici un mauvais commande,
et ça va narrower
au premier commande.
C'est le premier commande ou le dernier commande,
que ça va
identifier
où les choses ont mis le temps,
et si vous avez un petit bout de tests unis,
et nous avons tous les tests unis,
vous pouvez automater
ce processus.
Donc un bisect est
extrêmement utile,
quand vous réalisez que c'est un code de bug,
mais vous ne savez pas quand c'est introduit.
Oui.
Oui, c'est certain.
Je trouve que le problème est que maintenant,
beaucoup d'architectures sont plus et plus...
Je vais dire que c'est compliqué,
mais en essayant de faire un micro-service,
vous avez beaucoup de choses différentes.
Je trouve que c'est maintenant,
que c'est un des plus importants,
c'est de faire ça plus et plus difficile,
parce que quand vous bisez un commit
en plus, rien ne comporte,
tout dépend de l'autre.
Donc c'est un peu utile,
mais il y a eu un temps
où j'ai utilisé ça,
mais c'est vraiment un commande utile.
Un des commandes que je trouve très utile,
mais incroyablement nommée,
c'est Blame.
Je pense qu'il y a un nouveau nom pour ça.
J'adore ce commande, c'est magnifique.
Et c'est tout ce qui le fait,
c'est que vous avez choisi,
si vous avez un file qui a des changements,
c'est que vous avez choisi qui a fait ces changements.
Et pour chaque ligne,
c'est qui qui a fait ce changement.
Et ça peut être extrêmement utile pour le trouver
et pour avoir une explication de ce qu'ils
étaient essayant de faire, ou à la chasser,
pour ce qu'ils ont fait.
Donc, qui a écrit ce livre?
Je vais trouver Blame. Oh, c'était moi!
Non, c'était moi deux ans plus tard.
On ne l'a pas parlé de Blame,
qui est un commande extrêmement
powerful,
qui est, dans mon compte,
sous-usé.
On parle de la log ou de la reflog?
Non, juste la log, pour le moment.
Juste la log normal?
Oui, il y a vraiment
l'opposé de Blame,
que vous pouvez faire avec la log.
Une de ces changements, je pense,
c'est dash-capitale.
On va vous dire la histoire de la ligne,
ou le set de lignes.
Donc, si Blame vous dit
qui était la dernière personne à changer
cette ligne dans un fil,
vous devez regarder la ligne
dans l'autre dimension et dire
comment cette ligne s'est évoluée
et la log vous aidera.
On ne parle pas de log
sans mentionner Hanselman's
blog post sur le fait
de faire votre blog
plus bon et plus utile
en utilisant un...
c'est-à-dire Posh?
Oh, Posh, je crois.
Oh, oui.
C'est ZSH.
Il y a quelques différents
qui sont très similaires.
Je pense qu'il a récemment fait un post
sur Oh My ZSH.
Je pense qu'il a fait un peu,
mais il y a un article de la semaine
qui a été publié.
Il a des lines de commandes.
Oui, je pense que GIT a eu
ses origins dans les prochaines
développeurs.
Il a été très content
de voir les prombes
pour beaucoup de temps.
Il a été très content
de voir les prombes
qui peuvent être informées
si vous avez changé les files
sur votre système de file,
votre current in,
c'est très utile.
Je n'ai pas dit ZSH,
je ne sais pas, je suis pas mal.
Mais, oui, certainement sur Linux,
je n'ai pas eu un promb
qui ne m'a pas dit
ce qui s'est passé dans la GIT repository.
C'est très utile.
Je suis curieux, je ne sais pas
comment prononcer ça. Je vais Google
ZSH, prononcer.
Oh, il y a un Reddit.
Bien sûr, il y a un.
Donc,
ZSH,
ZSH,
ZSH,
c'est une des les les les 5
millions d'années, tous les deux différents.
On va commencer
avec le fait que vous dites Z
et les américains disent Z,
et c'est déjà un genre.
Oui, je suis anglais et je dis ZSH.
En fait,
c'est un tourisme, je parle anglais,
mais je suis code américain,
parce que c'est ce que les manuels sont en train.
C'est fascinant.
Donc, quand le tangent est complètement
porté, le CRI,
vous dites AZ ou AZ.
C'est un jeu, parce que je sais ce que Jesse va dire.
En fait, je dis AZ.
La 3e option.
Oui.
On va avoir
une show
où nous échangeons
les mots américains
et les phrases et les colloquiales.
Vous vous faites un peu de trouble
quand vous allez d'une à d'autres.
Oui,
comme je l'ai dit, je me suis trainé
maintenant de utiliser le code américain.
Ça se passe naturellement.
Si je vais en écrire un comment,
j'ai mentionné le nom de la couleur,
je le parle sans l'un des deux.
Les américains sont assez arrogants
que nous ne sommes pas obligés
de connaître les langues foreignales
ou les formes anglaises.
Nous sommes tous,
succès à nos heures.
Nous faisons le même,
nous disons que le nom de l'autre.
Donc, on a mentionné des logs.
Est-ce que c'est le travail de la logique RF?
Parce que je l'ai trouvé
que ça m'a sauvé
beaucoup, beaucoup, beaucoup de fois.
Je pense que James a mentionné que
le GIT est très bien.
Et je pense que l'un des points qu'on peut faire
est que, quand vous commettez,
c'est très difficile de perdre ce data
et quand vous faites,
je pense que beaucoup de gens sont scèd
par rebasing et des choses.
C'est que, oh, si je m'envoie et que je perds mon data,
et en savoir le RF,
ça fait un peu de peur,
donc, pour le faire un peu plus tard,
on va faire un point de vue,
et le RF log est un commande,
vous pouvez le type GIT RF log
et vous avez,
à peu près, un log de toutes les commandes
que vous avez,
vous pouvez expliquer ça un peu mieux que je peux.
Oui, donc, le travail est ce que c'est.
Il y a une branche magique,
presque, dans le GIT,
qui s'appelle HEAD.
HEAD est toujours le commissaire
que vous êtes currently en train de regarder.
Et ce que le RF log fait,
c'est que ça traite la histoire
de où HEAD a été.
Donc, si vous vous demandez
un commande de rebasing,
comme nous l'avons dit,
rebasing en fait créé un nouveau commissaire,
et on va éliminer la branche que vous êtes
currently en train de le recommencer.
Donc, quand vous issuez le commande RF,
juste après que vous le rebasez,
ce que vous allez voir dans la histoire
est le top des petits,
le nouveau commissaire que vous avez créé.
Et puis avant ça, vous allez voir
le commissaire que vous avez créé
avant de le rebaser.
Alors, ça semble que vous êtes rebasing
juste un single commissaire.
Si vous rebasez un sérieux commissaire,
vous verrez tous les commissaires
qui ont été traversés dans ce processus.
Et ça vous explique le commissaire
à lequel vous avez issue le commande original.
Et puis vous pouvez prendre cette information
et utiliser le commande RF
pour basically
remettre votre branche de la manière dont vous étiez
avant que vous étiez en train de commencer
un carton de frein de jale,
ou que vous pouvez toujours aller en train
de remettre votre branche avant de l'établir
en utilisant le commande RF.
Vous expliquez cela beaucoup mieux que je ne l'ai jamais
pu, j'ai été très heureux que vous l'avez
détenu.
Donc, je pense que continuer avec
tous ces différents commandes,
un autre qui est peut-être plus populaire
mais peut-être que des gens ne le savent pas,
c'est le commande STASH.
Oui, le scénario classique
est que vous êtes sur un branch de feature.
On le appelle feature A.
Et quelqu'un vient de vous et dit
« on a trouvé un bug dans votre code, vous devez
fixer ça en même temps. »
Vous avez un code que vous travaillez
et que vous ne vous avez pas commis,
que vous ne voulez pas vraiment commiser.
Mais vous devez changer les branches.
Donc, STASH vous permet de prendre
ce code et de s'essayer de l'établir
juste comme le nom implique.
Et puis, vous faites le autre work que vous voulez
et puis vous reprenez et vous reprenez
cet établissement.
Et STASH vous permet de
vous nommer
si vous avez un nombre de choses
dans STASH.
Vous avez des commandes pour manipuler
STASH. Effectivement, c'est un moyen
d'y dire « prends mon code où il est
maintenant, et vous l'établissez
sur le côté, et je vais faire quelque chose
d'autre et puis vous le reprenez.
Vous avez raison, James ?
Oui, et je pense que c'est
plus important d'exprimer un peu plus.
Donc, quand vous avez les basiques
sur le point de comment STASH works,
c'est utile de le savoir.
Il n'y a pas de magique ici.
C'est tout le building sur ce simple model de
GIT. Le moyen que STASH est implémenté,
chaque entrée dans la liste STASH est juste
un branch. Et le command STASH
sait comment invoquer le bon nom de
le bon nom pour le faire.
Donc, je pense que le nom de le branch est
juste appelé « atStash1 & atStash2
avec le symbol AT.
Donc, c'est juste des branches.
Mais le command STASH fait que c'est vraiment
facile de mettre tout le monde dans un branch STASH
et de le mettre en bas.
Et ça fonctionne comme un stack.
Vous pouvez donc continuer à ajouter plus de
stashes. Et par défaut,
ils vont tomber en ordre de révers.
C'est bien et facile pour le bon nom.
Mais si vous avez besoin de le faire un peu plus
plus tard, vous pouvez faire un entré
en stash. Ou vous pouvez donner un nom
C'est plus plus clean que
de stashing les choses dans votre branch de fonction.
Vous pouvez juste faire
un petit commis de la façon dont vous êtes.
Mais vous pouvez vous polluer votre histoire.
Oui, oui, absolument.
Et pour un autre
niveau, et c'est quelque chose
qu'il est moins bien connu,
il aide
l'objet de avoir plus que
un branch check-out en même temps.
Ce que vous avez dans votre système local
est appelé le « Work Tree ».
Et souvent, à 99,9% de l'heure,
vous n'aurez pas besoin de savoir
que ce que vous avez dans votre machine local.
Et je vous invite
à vous détenir avec ça. Mais peut-être,
peut-être, il pourrait être utile de savoir
que vous pouvez ajouter plus de
« Work Tree » dans votre système local.
Vous pouvez utiliser le « Work Tree » command
et spécifier un autre branch entièrement
et un autre parc et vous pouvez avoir
un autre copier de la répo check-out
sans avoir à
aller au trouble de
cloning un autre copier.
Tout le temps je parle avec James.
Lorsque toute conversation je la lave, je le leve.
Je me souviens de ça.
Je me souviens de ça.
Je me souviens de ce que ça marche.
Et c'est
vraiment la manuelle, hein?
Comme Jesse a dit, la manuelle est vraiment
très grande.
Oui, je le sais aussi.
Je dois dire, et nous
nous mettons des alternatives
pour la documentation officielle.
Je trouve que la documentation officielle
est difficile
si vous connaissez
comment ça marche
et que vous êtes en tant que syntactique.
Mais c'est tellement compréhensible
que vous devez devenir impénétrable.
Je l'ai vraiment apprécié.
Je pense que c'est toujours la
déchannel, c'est pourquoi
beaucoup de livres existent sur les mêmes topics.
Parce que la manuelle
doit être compréhensible.
Elle doit compréhensible pour comment tout le monde
fonctionne.
Mais vous avez besoin de Jesse Lippity
pour s'y prendre et faire quelque chose qui est un peu plus
approchable pour quand vous êtes en train de commencer.
En parlant de
apprendre des choses, James,
chaque fois que je vous parle,
on a shared Google Docs.
Vous avez dit une chose,
je pense que c'était vous, c'est possible que Jesse a été
parce que c'était difficile de le dire.
Mais pourquoi des attributes
sont plus bons que les configs?
Je ne pense pas que j'ai utilisé les attributes.
Je pense que c'est une opportunité pour moi
d'apprendre quelque chose de nouveau.
Je dois utiliser les attributes?
Je vais vous mentionner
ce qui est en référence
à l'incompréhension
des systèmes de Windows
et d'autres opérations
qui ont différentes manières
pour représenter la ligne de texte.
Féminin, les Windows
utilisent la combination de lignes de lignes de return.
L'inux préfère
juste utiliser un langage straight
et Mac
et si vous ne faites pas ça,
vous allez ouvrir un file
sur les windows et vous verrez
que la ligne de texte est en ligne
qui peut être très confusée
et que des problèmes similaires
peuvent arriver sur les systèmes de opérations.
Git a un outil
qui est en train de se défendre
et qui contrôle
ce comportement.
Et souvent, vous vous laissez le set de l'eau
et ne pensez pas sur ça.
Et ça va faire le bon travail
selon le système de opérations
que vous avez à faire.
Mais le challenge peut arriver
et que vous devez avoir le droit.
Et si deux choses peuvent arriver,
une peut-être que vous devez vérifier
sur les windows
qui sont en train de développer l'inux.
Si vous utilisez quelque chose comme WSL
et que vous êtes
ou peut-être que vous avez des files en train de copier
des technologies comme WSL
et des codes de code visual
de la ligne de texte,
vous pouvez exposer ce problème
où vous voulez encore utiliser le style
de lignes de lignes de lignes
pour détenir un être
et les appuyer automatiquement quand ils sont en train de faire des commandes.
Et un certain set d'attributs vous permet de définir
comment vous devez traiter les feed-lines
pour les choses qui sont matchées à ce passage.
Donc, c'est très common, pour exemple,
d'avoir deux commandes de bâtiment dans une repos d'open source,
un pour si vous avez des bâtiments sur les windows,
ce serait un bâtiment.bat,
par exemple, un de vos bâtiments sur Linux, c'est un bâtiment.sh.
Et c'est un bon exemple où vous voulez traiter les feed-lines
de la même manière.
Donc, les attributes de bâtiment
sont checkés pour le contrôle de la source
et sont partie de la représentation,
alors que votre bâtiment de bâtiment est spécifique à vous.
Donc, si vous voulez faire sure que vous avez la consistance
et que vous avez des endroits de traiter des bâtiments sur les files,
utiliser les attributes de bâtiment est un meilleur moyen
de faire, car vous allez vous partager automatiquement
avec le reste de votre équipe.
Vous avez été très intéressés
à l'interesse de votre travail
avec beaucoup de différents développeurs
qui ont été utilisé à différents niveaux.
Vous avez-vous passé des erreurs constantes
que différents développeurs utilisent?
Parce que je pense que l'un des points de mon point de vue,
et c'est celui que j'ai blogué il y a quelques années,
est une chose que je vois beaucoup de développeurs
qui, dans le sens de la poussée et de la pêche,
sans comprendre ce qui se passe,
c'est que je vois une divergence de branches
de la même branche
et d'un commissaire de merge qui est en train de se faire.
C'est parce qu'ils ont des commissaires locales
que ils n'ont pas poussé.
En milieu, quelqu'un d'autre a poussé
certains de leurs commissaires.
Puis le premier développeur a poussé et poussé
et ils sont défauts à créer un commissaire de merge.
Parce que vous avez la branche principale
ou quelque chose de la branche que vous êtes en
et l'origine de la branche principale,
qui est la représentation de la réunition de la branche.
Vous avez déjà déjà eu cette branche de divergence
parce qu'ils sont effectivement deux branches différentes,
mais à ce point, je serais en base
pour le faire avant que je pêche les commissaires.
Mais beaucoup de développeurs
qui se poussent et poussent,
parce que si les défauts se mergent,
alors vous pourriez arriver
dans la history,
juste la même branche,
et si les développeurs se font ça,
je vois que la history ressemble à horrible.
Je pense que c'est mon plus grand point
où les développeurs ne comprennent pas
et en commun mondial Si vous trouvez la petite prouver
!...
une branches de recherche qui pearls
d'un arc insuant de la C?
Un couple de choses que je pense
au premier bonheur,
ce sera powderll sur son premier point
De l'optimisation ou celle des défauts
Oubliez un 바� tens
donc vous pouvez causer un commissaire
pour avoir un refayement
il n'y aura pas d'égal снимé
que de l' ChickYO
ça ne s'est pas toujours powderll
On va dire que ça confuse les développeurs aussi.
Si tu changes la défaite,
parce que avec une base de rebase,
tu n'as pas de la pende de changements.
Donc, avec une merge, tu peux faire la pende de changements.
Donc, souvent les développeurs,
si ils changent la défaite,
ils vont être plus confusés
parce que ça ne fait pas de quoi ils veulent faire
parce qu'ils ont des changements de pende,
mais ils ne peuvent pas se faire de la pende.
Oui, je sais que Jesse n'a pas aimé ce point.
C'est là que je vais les diagrammes
et les dégager dans les graines
et expliquer ce qui se passe.
Et peut-être aussi,
vous pouvez aussi souhaiter
que vous pouvez éssurer un gip fêche
indépendant de l'envergipement.
Et ça va juste le faire,
que vous commettez et vous permettez
de voir ce que vous avez en tête.
Qu'est-ce qui a été arrivé
sur cette branche de remonte
avant que vous essayiez d'incorporer
dans la branche de la pende de changements.
C'est un point très bon
et c'est l'une des choses
que je vous ai dit au cours de la défaite
et au cours de la graine.
Je dis, ne l'envoie pas,
surtout à l'initialité,
jusqu'à ce que vous comprenez.
Ne l'utilisez pas de la pende,
parce que la pende est un gip fêche,
puis se remerge ou remercie.
C'est deux commandes ensemble.
Et par les développeurs,
juste en faisant ces commandes séparatiquement
et toujours en faisant un gip fêche,
pour que ils puissent voir
ce qui va arriver
avant qu'ils soient rébasés
ou remercés.
Et puis en choisir
si ça devrait être un remercé
ou un remercé eux-mêmes,
je trouve que ça aide
à comprendre cela beaucoup mieux.
Je pense que les deux pétiers
qui ont eu des hésitements
de la pende,
on a touché un de ces deux
plus tôt.
Et ce n'est pas ça.
On a toujours été en train de
organiser votre histoire,
de donner une belle histoire
à votre réplique.
Mais partie de cela
c'est de faire surement
que la réveilling de l'histoire
est une partie
de l'élection de l'élection de l'élection
de l'élection que vous employez.
Donc, généralement,
les développeurs
de faire un élection de l'élection
de l'élection de l'élection
ne vont seulement
regarder à la tête du branch
et ne pas
regarder la histoire
qui a été soumise.
Si je vois un élection de l'élection
avec 100 commandes,
alors c'est pas ça.
Je pense que quelque chose
est d'accord,
il y a quelque chose
qui est d'accord,
il n'est pas trop grand
ou il n'est pas très bien organisé
et pensé à la réveilling.
C'est donc, je vais définitement
être encourageant
d'être en base interactive,
à moins,
ou peut-être,
même de couper le travail
dans des questions
séparées
de la réplique
de la réplique.
On a aussi une note relative,
si vous avez des committements,
alors avoir des messages
de bon committement
pour comprendre
les changements
qui sont faits.
Donc, avoir un bon standard
sur les messages de committement
est vraiment valable.
Pour beaucoup de
des systèmes de travail,
vous devez souvent avoir un standard
pour rappeler
quelque chose comme un
référence au travail
sur le committement.
Et certainement,
je le dis toujours,
que je suis sûr
que chaque committement
est relative
à des items de travail
pour que vous puissiez
travailler
par les teams de développement.
Mais, sur cela,
il y a des bonnes standards
disponibles
autour de
les messages de committement
et de la façon structurelle,
qui peut vous aider,
pas seulement à comprendre
la réplique
qui a été faite,
mais aussi à faire des choses
qui permettent de
automatiquement
construire des notes de rédiction,
à moins pour la consommation
qui peut vous emballer
pour la part publique.
Il y a un bon site,
conventionnelcommittes.org,
c'est un bon site
pour les notes de show.
Ce qui propose
un standard
pour les messages de committement
et qui est assez utile.
C'est bien, je n'ai pas entendu
ceci.
J'ai une question
qui me demande, Jesse,
que je pense que je dois,
c'est la question.
Qu'est-ce qui vous a aidé
à écrire un livre sur le travail?
Ma expérience
était que
les livres de GIT
que j'ai vu
étaient très grandes
et
ont parlé
en détail
sur les internes de GIT.
Et je pensais
qu'ils étaient
programmers
qui étaient utilisés
de GIT,
mais qui n'avaient pas
l'intérêt
de la page 600
de la page.
Et donc,
le livre
que j'ai terminé
avec
est, je suis en train de
maintenant,
c'est
à peu près de 225 pages.
Et les couvres,
je crois,
sont toutes
très très courtes,
une telle introduction,
une histoire
de l'introduction,
tout de la façon
par des commandes
comme le BISECT.
Et ça fait
que
par
parler
sur
ce que vous faites,
pourquoi vous faites,
comment vous faites,
mais pas nécessairement
ce que GIT
fait sous les couvres.
Et on peut argumenter
qu'il faut savoir ça,
mais je pense qu'il peut
être assez fort
sur
l'information
que je vous donne.
Donc, un petit peu
de la log-role
pour mon propre livre.
Je suis heureux que vous avez
écrit ça, et je pense
à la pointe que vous avez
fait avant,
avant que je ne vous ai
dit à personne
qu'il faut
faire un objectif,
je leur dirais
de lire votre livre
avant.
Je pense que
vous devez être
à ce niveau
avant que vous
commencez à penser
sur les internaux.
Je vous accélère absolument
avec vous.
Je pense que
faire un objectif
et comprendre
votre modèle interne
est un niveau
qui vous êtes en train
de faire
après que vous avez
des bases.
Je suis heureux.
Je vous jetez.
Je vous jetez.
Je vous jetez.
Je ne sais pas si c'est
un bon point de mention,
mais je suis heureux
de vous rappeler
que votre livre est
disponible
dans O'Reilly.
J'ai une subscription
O'Reilly,
donc je vous donne
une petite recette
de votre livre
avant que nous nous sommes
ensemble.
Je vous jetez
pour votre appréciation
de ce que vous avez fait.
Et ça ressemble bien.
Merci beaucoup.
Encore une chose
pour les listeners,
Jesse a très bien
dit que nous pouvons
donner un livre
de votre livre.
Donc ce que nous allons faire
c'est que si quelqu'un
qui est intéressé
dans la preuve de la prière
de la prière
si vous vous tweetez
sur cet épisode de podcast,
including
hashtag
UnhandledException
et mentionnez
Jesse's livre,
alors dans un couple
de semaines,
nous allons choisir
un victime à la ronde.
Je suis pas assez
chiant parce que
je n'ai pas dû savoir
pourquoi la subscription
comme James a.
Donc je vais
devoir
faire un petit tour
et prendre
mon propre livre.
Excellent, moi aussi.
Un que vous pouvez marquer
et un que vous pouvez juste
garder.
En fait,
donnez un autre pour votre mère.
Bien sûr,
je suis un livre
de Kindle,
je n'ai pas
un livre de papier
depuis longtemps.
Donc je ne vais pas
faire le livre de Kindle
parce que mon livre
ne me ferait pas le plaisir.
Oui, je suis aussi un Kindle.
Mon père
travaille dans un bookstore
mais je suis un personnel Kindle.
Donc je suis
en grande danger
parce que
ils ne vendent pas
les livres de Kindle
dans les histoires de books.
Je me souviens d'ailleurs
quand je visais
aux conférences
dans les États
et régulièrement,
j'avais des faibles
de bagages
qui étaient assez routine
parce que je serais
acheté des livres
qui ne sont pas
disponibles dans le U.S.
mais qui ne sont pas
disponibles dans le U.S.
Donc je suis très heureux
que le livre de Kindle
a été élevé
comme Ryan, évidemment.
Un jour,
une autre chose
qu'on va avoir une discussion
sur est Harry Potter.
Mais c'est un autre jour.
Donc,
on va faire des tips de défi?
OK.
Je dois avoir deux tips de défi
mais,
j'ai déjà découvert
une de mes
mais je vais renforcer
ce qui est l'importance
de messages
de bonnes et consistants
quand vous allez
par une histoire
pour essayer de trouver
ce qui se passe,
bien écrit
et des messages standardisés
peuvent faire tout le différence.
Et la deuxième chose pour moi
c'est de
avoir un peu
de lintes
à l'élection de production.
J'ai tendance à utiliser
sonar cube pour ça
mais il y a un nombre d'autres.
Mais avoir
de lintes
à l'aise
où vous êtes
dans des dévops
pour quitter
quelque chose
qui ne met pas
le...
Et sonar cube
est extrêmement
configurable.
Par exemple,
un des places où je travaillais
on m'a dit
que vous ne pouvez pas
augmenter le nombre de warnings.
On a eu des codes de législation
on a eu un certain nombre
de warnings
c'était bien mais vous ne pouvez pas
ajouter quelque chose
qui a été ajouté
ou qui a été défi
et qui a été élevé
pour mettre ça
dans le bâtiment.
C'est vraiment cool.
J'ai entendu un peu
sonar cube
mais je n'ai jamais
utilisé ça.
Donc peut-être que c'est le
le plus important pour un joueur.
J'ai bien aimé ça.
J'ai presumé que
vos warnings se sont décrées.
Mais vous avez toujours
eu ce cap qui était
diminué par le nombre de warnings.
Exactement.
Et vous pouvez...
C'est extrêmement configurable.
Vous pouvez mettre un whole
tas de choses
et intégrer ça
dans votre...
Nous avons utilisé
Azure DevOps
et ça intégrerait très bien.
C'est très cool.
J'ai eu un couple
de bons des aussi.
Et ils sont
plus
relatives
à GitHub
que à Git.
Vous avez entendu
que le GitHub 1S?
Je n'ai pas.
La seule fois que je l'ai entendu
c'est
quand vous vous mettez les notes de la show
et je l'ai aimé Google-la
mais je n'ai pas.
Ok, ok.
Donc,
portez-vous à la réposité de GitHub.
Et
quand vous faites ça,
ça va te placer dans votre mind.
I mean,
GitHub est un grand outil.
Mais je pense que parfois
ce qui est en train de chercher
la code source
peut être un peu
un peu tricky de faire
sans cloning le repo.
Donc,
si vous portez
une réposité de GitHub public
et vous allez au URL
dans votre bar de tasks
et vous vous rendez
à la fin de la GitHub.
Et vous vous mettez en 1S.
Donc c'est maintenant
GitHub1S.com
Je pense que tout est en train de se faire.
Donc,
juste le nom de la demande.
Oui.
1S.
Ok.
Oh.
Oh.
J'ai encore un autre tip
pour vous.
En fait,
prenez le caractère
En fait,
comment ça vous veut dire?
En fait,
je vais aller à la réposité de GitHub
et prenez le dot.
Ok.
Oui.
Oui.
Donc,
ça va
ouvrir
la réposité
dans un code visual
comme un environnement.
Donc,
vous pouvez explorer le code.
C'est pas la même chose?
Oh,
non, c'est différent.
C'est différent.
Je pense que c'est la même chose.
Ah,
intéressant.
Quand j'ai essayé,
ça a l'air similaire de la même chose,
mais maintenant je vais essayer
de le faire de côté à côté.
Donc,
c'est un projet.
Ce n'est pas
rien à faire avec GitHub.
Et je pense que ça
s'involue
à l'intérieur de la table.
Et c'est évidemment
quelque chose que vous allez être limités
à la réposité public
pour ce qui est pour ça.
Mais ça vous donne un bon moyen
de browser le code source
rapidement.
Et puis,
sur la note relative,
il y a un tool similaire,
qui est en fait
une extension Chrome.
Donc,
ça fonctionne en both Chrome
et Edge,
qui s'appelle
GITACO.
G-I-T-A-K-O.
Et ça vous donne
une file-tree
que vous pouvez browse
et que vous pouvez
ajouter
à la GitHub
quand vous êtes
sur la page de la réposité.
Vous avez un
octopus tentacle,
c'est un logo,
un octopus,
et vous avez un octopus tentacle
qui vous crie de l'autre.
Vous pouvez cliquer
sur la file-tree
pour aller en route.
C'est vraiment cool.
C'est vraiment cool.
Donc,
mon tip de défi est
un répétition
de l'épisode 5,
où je suis allé
de Shahid Iqbal
pour parler
des Kubernetes.
Et mon tip de défi
était
de créer des alices
de commandes
comme
Ctl,
Docker,
Compose, etc.
Les exemples
sont K
pour Ctl,
P pour Pulumi,
qui est un peu
utilisé.
Donc, mon tip de défi
est d'expander sur ça
et d'inclure G for Git.
Donc,
j'ai des alices
donc j'utilise
D for Docker,
D for Docker,
D for Docker,
K for Ctl,
Dn
for .NET
et,
d'ailleurs,
G for Git.
Et les commandes
j'utilise beaucoup
donc ça me permet
beaucoup de temps
et des pressions de clé.
J'ai aussi un tourneur
Git
des alices spécifiques,
aussi.
Donc,
je pense que
nous avons assez de temps
mais merci
beaucoup pour vous joindre
sur le podcast.
C'était très bien
de vous en parler
pour vous guider
sur un de mes préférences.
Merci, Stan.
Merci, c'est vraiment
très bien.
Je suis en train de
entendre.
Je dois dire
que je suis un peu
un peu nerveux
de venir avec un sujet
comme ça
qui peut être
assez visuel
en nature
qu'on aurait
assez de temps
pour parler
mais je pense que
il y a des topics
très grands
que nous n'avons pas
à faire.
Nous avons
presque besoin
d'une autre session
pour aller tout à l'heure.
C'est vraiment
très bon.
Je suis en train de le faire
donc il faut que je le laisse.
Je suis certain que c'est bon
pour ça.
Je vais le faire.
Merci, tout le monde,
pour l'entraînement.
Je remercie de vous
que ce podcast
est sponsorisé par Everstack
qui est mon propre
company
qui donne des services
et de services de consultation.
Pour plus d'informations
visite Everstack.com
et si vous aimez
ce podcast
s'il vous plait
me plaider
sur les réseaux sociaux
je utilise le hashtag
unhandledexception
et je peux être
trouvé sur Twitter
sur Twitter
d-r-a-c-a-n
et mes DMs sont
ouvertes
et mon blog
d-clark.com
a été lié à tout mon
stuff social
aussi.
Et bien sûr
nous allons inclure
les liens à toutes les choses
qu'on a mentionnées aujourd'hui
dans les notes de la show
qui peuvent être trouvées
sur
unhandledexception.com
Episode suivant:
Les infos glanées
TheUnhandledExceptionPodcast
Tags
Dependency Injection in .NET with Steve Collins