mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-06-28 17:00:04 +02:00
Merge pull request #260 from manurFR/french-typos
Fixing French typos and awkward translations
This commit is contained in:
commit
e519ff281b
22 changed files with 148 additions and 148 deletions
|
@ -876,7 +876,7 @@ exports.strings = {
|
||||||
'goal-only-master': {
|
'goal-only-master': {
|
||||||
'__desc__': 'the helper message for the window that shows the goal tree when the goal will only be compared using the master branch',
|
'__desc__': 'the helper message for the window that shows the goal tree when the goal will only be compared using the master branch',
|
||||||
'en_US': '<span class="fwber">Note:</span> Only the master branch will be checked in this level. The other branches are simply for reference (shown as dashed labels below). As always, you can hide this dialog with "hide goal"',
|
'en_US': '<span class="fwber">Note:</span> Only the master branch will be checked in this level. The other branches are simply for reference (shown as dashed labels below). As always, you can hide this dialog with "hide goal"',
|
||||||
'fr_FR': '<span class="fwber">Note:</span> Seulement la branche master peut être check id à ce niveau. Les autres branches sont simplement une référence (Montré avec un tiret). Comme toujours, vous pouvez cacher cette fenêtre avec "Cacher les objectifs"',
|
'fr_FR': '<span class="fwber">Note:</span> Dans ce niveau on ne doit faire de git checkout que sur la branche master. Les autres branches représentées ici (entourées d\'un cadre en tirets) doivent être utilisées uniquement comme références. Comme toujours, vous pouvez cacher cette fenêtre avec "Cacher les objectifs"',
|
||||||
'de_DE': '<span class="fwber">Hinweis:</span> In diesem Level wird nur der Branch master geprüft. Die anderen Branches dienen nur als Vergleichsbasis (als gestrichelte Bezeichner dargestellt). Wie immer kannst du diese Meldung mit "hide goal" ausblenden',
|
'de_DE': '<span class="fwber">Hinweis:</span> In diesem Level wird nur der Branch master geprüft. Die anderen Branches dienen nur als Vergleichsbasis (als gestrichelte Bezeichner dargestellt). Wie immer kannst du diese Meldung mit "hide goal" ausblenden',
|
||||||
'es_AR': '<span class="fwber">Nota:</span> Sólo la rama master va a ser chequeada en este nivel. Las otras ramas sólo son para referencia. Como siempre, podés ocultar este mensaje con "hide goal"',
|
'es_AR': '<span class="fwber">Nota:</span> Sólo la rama master va a ser chequeada en este nivel. Las otras ramas sólo son para referencia. Como siempre, podés ocultar este mensaje con "hide goal"',
|
||||||
'pt_BR': '<span class="fwber">Nota:</span> Apenas o ramo master será verificado neste nível. Os outros ramos (dentro das caixas clareadas) são somente para referência. Como sempre, você pode ocultar esta janela com "hide goal"',
|
'pt_BR': '<span class="fwber">Nota:</span> Apenas o ramo master será verificado neste nível. Os outros ramos (dentro das caixas clareadas) são somente para referência. Como sempre, você pode ocultar esta janela com "hide goal"',
|
||||||
|
@ -892,7 +892,7 @@ exports.strings = {
|
||||||
'zh_TW': '你可以透過 "hide goal" 關閉這個視窗',
|
'zh_TW': '你可以透過 "hide goal" 關閉這個視窗',
|
||||||
'es_AR': 'Podés ocultar esta ventana con "hide goal"',
|
'es_AR': 'Podés ocultar esta ventana con "hide goal"',
|
||||||
'pt_BR': 'Você pode ocultar esta janela com "hide goal"',
|
'pt_BR': 'Você pode ocultar esta janela com "hide goal"',
|
||||||
'fr_FR': 'Vous pouvez masquer cette fenêtre avec "hide goal"'
|
'fr_FR': 'Vous pouvez masquer cette fenêtre avec "Cacher les cibles"'
|
||||||
},
|
},
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
'hide-start': {
|
'hide-start': {
|
||||||
|
|
|
@ -95,7 +95,7 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Pour réussir ce niveau, nous avons besoin de dire à Git quel commit particulier recopier. C'est comme pour le niveau précédent -- nous pouvons utiliser les mêmes commandes :",
|
"Pour réussir ce niveau, nous avons besoin de dire à Git quel commit particulier recopier. C'est comme pour le niveau précédent : nous pouvons utiliser les mêmes commandes :",
|
||||||
"",
|
"",
|
||||||
"* `git rebase -i`",
|
"* `git rebase -i`",
|
||||||
"* `git cherry-pick`"
|
"* `git cherry-pick`"
|
||||||
|
|
|
@ -94,9 +94,9 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Vous l'avez deviné ! Git tags offre cette fonctionnalité -- les tags marquent à jamais certains commits comme \"milestone\" auxquels vous pouvez vous référez comme à des branches.",
|
"Vous l'avez deviné ! Git tags offre cette fonctionnalité : les tags marquent à jamais certains commits comme \"milestone\" auxquels vous pouvez vous référez comme à des branches.",
|
||||||
"",
|
"",
|
||||||
"Encore plus important, il sont définitifs. Vous ne pouvez donc pas rajouter de commit dans un tag -- les tags sont un peu comme un pointeur définitif dans l'arbre des commits.",
|
"Encore plus important, il sont définitifs. Vous ne pouvez donc pas rajouter de commit dans un tag : les tags sont un peu comme un pointeur définitif dans l'arbre des commits.",
|
||||||
"",
|
"",
|
||||||
"Voyons les tags en pratique."
|
"Voyons les tags en pratique."
|
||||||
]
|
]
|
||||||
|
|
|
@ -126,7 +126,7 @@ exports.level = {
|
||||||
"Quand le rebase interactif s'ouvre, vous avez la possibilité de faire 3 choses :",
|
"Quand le rebase interactif s'ouvre, vous avez la possibilité de faire 3 choses :",
|
||||||
"",
|
"",
|
||||||
"* Vous pouvez réarranger les commits simplement en changeant leur ordre dans l'interface graphique (dans notre fenêtre de dialogue, cela signifie déplacer les objets dedans avec la souris -- drag and drop).",
|
"* Vous pouvez réarranger les commits simplement en changeant leur ordre dans l'interface graphique (dans notre fenêtre de dialogue, cela signifie déplacer les objets dedans avec la souris -- drag and drop).",
|
||||||
"* Vous pouvez omettre certains commits. Cela est désigné par `pick` -- cliquer sur `pick` désélectionne/resélectionne le commit.",
|
"* Vous pouvez omettre certains commits. Cela est désigné par `pick` : cliquer sur `pick` désélectionne/resélectionne le commit.",
|
||||||
"* Enfin, vous pouvez écraser des commits. Malheureusement notre niveau ne supporte pas cette option, nous allons donc sauter les détails concernant cette possibilité. Pour faire court, cela vous permet de mélanger des commits.",
|
"* Enfin, vous pouvez écraser des commits. Malheureusement notre niveau ne supporte pas cette option, nous allons donc sauter les détails concernant cette possibilité. Pour faire court, cela vous permet de mélanger des commits.",
|
||||||
"",
|
"",
|
||||||
"Super ! Voyons un exemple."
|
"Super ! Voyons un exemple."
|
||||||
|
|
|
@ -252,7 +252,7 @@ exports.level = {
|
||||||
"Spécifions le nombre de commits en arrière avec `~`."
|
"Spécifions le nombre de commits en arrière avec `~`."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Boum! Tellement rapide -- les références relatives sont géniales."
|
"Boum! Tellement rapide ! Les références relatives sont géniales."
|
||||||
],
|
],
|
||||||
"command": "git checkout HEAD~4",
|
"command": "git checkout HEAD~4",
|
||||||
"beforeCommand": "git commit; git commit; git commit"
|
"beforeCommand": "git commit; git commit; git commit"
|
||||||
|
|
|
@ -351,7 +351,7 @@ exports.level = {
|
||||||
"",
|
"",
|
||||||
"Il y a de nombreuses façons d'annuler des changement avec Git. De même que pour les commits, annuler des changements avec Git a à la fois un aspect bas-niveau (gestion des fichiers et morceaux de fichiers) et un aspect de plus haut niveau (comment les changements sont effectivement annulés). Nous allons nous intéresser à ce dernier point.",
|
"Il y a de nombreuses façons d'annuler des changement avec Git. De même que pour les commits, annuler des changements avec Git a à la fois un aspect bas-niveau (gestion des fichiers et morceaux de fichiers) et un aspect de plus haut niveau (comment les changements sont effectivement annulés). Nous allons nous intéresser à ce dernier point.",
|
||||||
"",
|
"",
|
||||||
"Il y a principalement deux façons d'annuler des changements avec Git -- l'une est `git reset` et l'autre est `git revert`. Nous allons maintenant voir chacune de ces façons.",
|
"Il y a principalement deux façons d'annuler des changements avec Git : l'une est `git reset` et l'autre est `git revert`. Nous allons maintenant voir chacune de ces façons.",
|
||||||
""
|
""
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -398,7 +398,7 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Pour accomplir ce niveau, annulez les deux derniers commits à la fois sur `local` et sur `pushed`.",
|
"Pour accomplir ce niveau, annulez les deux derniers commits à la fois sur `local` et sur `pushed`.",
|
||||||
"",
|
"",
|
||||||
"Ayez à l'esprit que `pushed` est une branche distante et `local` est une branche locale -- cela devrait vous guider dans le choix de la méthode à employer."
|
"Ayez à l'esprit que `pushed` est une branche distante et `local` est une branche locale ; cela devrait vous guider dans le choix de la méthode à employer."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ exports.level = {
|
||||||
"",
|
"",
|
||||||
"La branche `one` a besoin d'une réorganisation et de la suppression de `C5`. `two` doit simplement être reordonnée, et `three` ne nécessite qu'un commit !",
|
"La branche `one` a besoin d'une réorganisation et de la suppression de `C5`. `two` doit simplement être reordonnée, et `three` ne nécessite qu'un commit !",
|
||||||
"",
|
"",
|
||||||
"Nous vous laissons imaginer la solution pour ce niveau -- comparer avec notre solution après-coup avec la commande `show solution`. "
|
"Nous vous laissons imaginer la solution pour ce niveau ; comparez avec notre solution après-coup avec la commande `show solution`. "
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,7 +105,7 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"## Les commandes pour créer des dépôts distants",
|
"## Les commandes pour créer des dépôts distants",
|
||||||
"",
|
"",
|
||||||
"Jusqu'à maintenant, Learn Git Branching s'est surtout concentré sur l'apprentissage des bases du travail sur un dépôt _local_ (branch, merge, rebase, etc). Cependant maintenant nous voulons savoir comment travailler sur les dépôts distants, nous avons besoin d'une commande pour l'environnement de ces leçons. `git clone` sera cette commande",
|
"Jusqu'à maintenant, Learn Git Branching s'est surtout concentré sur l'apprentissage des bases du travail sur un dépôt _local_ (branch, merge, rebase, etc). Cependant maintenant nous voulons savoir comment travailler sur les dépôts distants, nous avons besoin d'une commande pour l'environnement de ces leçons. `git clone` sera cette commande.",
|
||||||
"",
|
"",
|
||||||
"Techniquement, `git clone` dans le monde réel sera la commande que vous utiliserez pour créer des copies _locales_ des dépôts distants (de github par exemple). Nous utilisons cette commande un peu différemment dans Learn Git Branching car `git clone` crée ici un dépôt distant à partir de votre dépôt local. Il est certain qu'il s'agit donc du sens opposé de la commande originale, mais cela aide à construire la connexion entre le clonage et le travail sur le dépôt distant, travaillons donc avec cela pour l'instant.",
|
"Techniquement, `git clone` dans le monde réel sera la commande que vous utiliserez pour créer des copies _locales_ des dépôts distants (de github par exemple). Nous utilisons cette commande un peu différemment dans Learn Git Branching car `git clone` crée ici un dépôt distant à partir de votre dépôt local. Il est certain qu'il s'agit donc du sens opposé de la commande originale, mais cela aide à construire la connexion entre le clonage et le travail sur le dépôt distant, travaillons donc avec cela pour l'instant.",
|
||||||
""
|
""
|
||||||
|
|
|
@ -87,9 +87,9 @@ exports.level = {
|
||||||
"",
|
"",
|
||||||
"C'est là que cela devient compliqué : pour certaines des leçons à venir, nous avons besoin de vous enseigner comment récupérer les changements effectués sur le dépôt distant.",
|
"C'est là que cela devient compliqué : pour certaines des leçons à venir, nous avons besoin de vous enseigner comment récupérer les changements effectués sur le dépôt distant.",
|
||||||
"",
|
"",
|
||||||
"Cela signifie que nous devons \"prétendre\" que le dépôt distant a été modifié par un collègue / ami / collaborateur, à quelque moment sur une branche spécifique ou sur un certain nombre de commits.",
|
"Cela signifie que nous devons \"prétendre\" que le dépôt distant a été modifié par un collègue / ami / collaborateur, et parfois même sur une branche spécifique ou avec plusieurs commits.",
|
||||||
"",
|
"",
|
||||||
"Pour faire cela, nous introduisons à point nommé la commande `git fakeTeamwork` ! Elle est assez significative, voyons une démo ..."
|
"Pour faire cela, nous introduisons à point nommé la commande `git fakeTeamwork` ! Elle devrait vous paraître assez intuitive, voyons une démo..."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -97,10 +97,10 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Le comportement par défaut de `fakeTeamwork` est de simplement faire apparaître un commit sur master"
|
"Le comportement par défaut de `fakeTeamwork` est tout simplement de faire apparaître un commit sur le master distant :"
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Voilà : le dépôt distant a été mis-à-jour avec un nouveau commit, et nous n'avons pas encore téléchargé ce commit parce que nous n'avons pas exécuté la commande `git fetch`."
|
"Voilà : le dépôt distant a été mis à jour avec un nouveau commit, et nous n'avons pas encore téléchargé ce commit parce que nous n'avons pas exécuté la commande `git fetch`."
|
||||||
],
|
],
|
||||||
"command": "git fakeTeamwork",
|
"command": "git fakeTeamwork",
|
||||||
"beforeCommand": "git clone"
|
"beforeCommand": "git clone"
|
||||||
|
@ -110,10 +110,10 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Vous pouvez aussi spécifier le nombre de commits ou la branche en l'ajoutant à la fin de la commande."
|
"Vous pouvez aussi spécifier le nombre de commits ou la branche en les ajoutant à la fin de la commande."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Avec une seule commande, nous avons simulé un collègue ayant pushé 3 commits à la branche `foo` de notre dépôt distant"
|
"Avec une seule commande, nous avons simulé un collègue ayant pushé 3 commits sur la branche `foo` de notre dépôt distant"
|
||||||
],
|
],
|
||||||
"command": "git fakeTeamwork foo 3",
|
"command": "git fakeTeamwork foo 3",
|
||||||
"beforeCommand": "git branch foo; git clone"
|
"beforeCommand": "git branch foo; git clone"
|
||||||
|
@ -123,9 +123,9 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Les niveaux suivants vont devenir assez difficiles, donc nous demandons un peu plus que cela dans ce niveau.",
|
"Les niveaux suivants vont devenir assez difficiles, donc nous augmentons un peu la difficulté de cet exercice.",
|
||||||
"",
|
"",
|
||||||
"Vous devrez créer un dépôt distant (avec `git clone`), simuler quelques changements sur ce dépôt, commit les vôtres, et enfin appliquer ces changements dans votre dépôt local (pull). C'est presque plusieurs leçons en une !"
|
"Vous devrez créer un dépôt distant (avec `git clone`), simuler quelques changements sur ce dépôt, commiter les vôtres, et enfin appliquer les changements distants dans votre dépôt local (pull). C'est presque plusieurs leçons en une !"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,9 +104,9 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"## Git Fetch",
|
"## Git Fetch",
|
||||||
"",
|
"",
|
||||||
"Travailler avec les dépôts gits distants réduit vraiment les transferts de données _depuis_ et _vers_ les autres dépôts. Du moment que nous pouvons envoyer des commits en avance et en retard, nous pouvons partager tous les types de mise-à-jours qui sont gérées par git (et donc partager le travail, de nouveaux fichiers, de nouvelles idées, des lettres d'amour, etc.).",
|
"Travailler avec les dépôts gits distants se résume en pratique à transférer nos données _depuis_ et _vers_ ces autres dépôts. Du moment que nous pouvons envoyer des commits en avance et en retard, nous pouvons partager tous les types de mises à jour qui sont gérées par git (et donc partager notre travail, de nouveaux fichiers, de nouvelles idées, des lettres d'amour, etc.).",
|
||||||
"",
|
"",
|
||||||
"Dans cette leçon nous allons apprendre comment rapporter (fetch) des données _depuis_ un dépôt distant vers le nôtre -- la commande pour cela est malignement dénommée `git fetch`.",
|
"Dans cette leçon nous allons apprendre comment rapporter (fetch) des données _depuis_ un dépôt distant vers le nôtre : la commande pour cela est astucieusement dénommée `git fetch`.",
|
||||||
"",
|
"",
|
||||||
"Vous allez remarquer qu'au moment où nous mettons à jour notre version du dépôt distant, nos branches _distantes_ vont se mettre à jour pour refléter cette nouvelle représentation. Cela est lié à la leçon précédente sur les branches distantes."
|
"Vous allez remarquer qu'au moment où nous mettons à jour notre version du dépôt distant, nos branches _distantes_ vont se mettre à jour pour refléter cette nouvelle représentation. Cela est lié à la leçon précédente sur les branches distantes."
|
||||||
]
|
]
|
||||||
|
@ -131,14 +131,14 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"### Ce que fetch fait",
|
"### Ce que fetch fait",
|
||||||
"",
|
"",
|
||||||
"`git fetch` procède en exactement deux principales étapes. Cela :",
|
"`git fetch` procède en deux étapes principales, ni plus ni moins. Cela :",
|
||||||
"",
|
"",
|
||||||
"* télécharge les commits que le dépôt distant possède mais qui ne sont pas dans le nôtre, et...",
|
"* télécharge les commits que le dépôt distant possède mais qui ne sont pas dans le nôtre, puis...",
|
||||||
"* met-à-jour nos branches distantes (par exemple, `o/master`).",
|
"* met à jour nos branches distantes (par exemple, `o/master`).",
|
||||||
"",
|
"",
|
||||||
"`git fetch` prend en fait notre représentation _locale_ du dépôt distant pour la synchroniser avec ce à quoi le dépôt distant ressemble _réellement_ (à ce moment-là).",
|
"`git fetch` prend en fait notre représentation _locale_ du dépôt distant pour la synchroniser avec ce à quoi le dépôt distant ressemble _réellement_ (à ce moment-là).",
|
||||||
"",
|
"",
|
||||||
"Si vous vous rappelez de la précédente leçon, nous avons dit que les branches distantes reflètent l'état du dépôt distant _depuis_ la dernière fois que vous avez parlé à ces branches distantes. `git fetch` est le moyen de parler à ces branches distantes ! Heureusement la relation entre `git fetch` et les branches distantes est maintenant apparue.",
|
"Si vous vous rappelez de la précédente leçon, nous avons dit que les branches distantes reflètent l'état du dépôt distant _depuis_ la dernière fois où vous avez parlé à ces branches distantes. `git fetch` est le moyen de parler à ces branches distantes ! La relation entre `git fetch` et les branches distantes devrait vous apparaître clairement maintenant.",
|
||||||
"",
|
"",
|
||||||
"`git fetch` contacte le dépôt distant par Internet (via un protocole comme `http://` ou `git://`).",
|
"`git fetch` contacte le dépôt distant par Internet (via un protocole comme `http://` ou `git://`).",
|
||||||
""
|
""
|
||||||
|
@ -151,11 +151,11 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"### Ce que fetch ne fait pas",
|
"### Ce que fetch ne fait pas",
|
||||||
"",
|
"",
|
||||||
"`git fetch`, cependant, ne change rien à propos de _vôtre_ état local. Il ne va pas mettre à jour vôtre branche `master` ou changer quelque chose comme les fichiers la représentation des fichiers.",
|
"`git fetch`, cependant, ne change rien à _votre_ état local. Il ne met pas à jour votre branche `master` et ne va pas changer quelque chose aux fichiers qui se trouvent actuellement dans votre répertoire de travail.",
|
||||||
"",
|
"",
|
||||||
"C'est important à comprendre car un nombre important de développeurs pensent qu'exécuter `git fetch` va rendre leur dépôt local dans le même état que le distant. Cela peut télécharger toutes les données nécessaires pour faire cela, mais cela ne change en réalité _rien_ sur vos fichiers locaux. Nous allons apprendre des commandes dans les niveaux suivants pour faire cela uniquement :D",
|
"C'est important à comprendre car un nombre important de développeurs pensent qu'exécuter `git fetch` va mettre leur dépôt local dans le même état que le distant. Cela peut télécharger toutes les données nécessaires pour faire cela, mais cela ne change en réalité _rien_ sur vos fichiers locaux. Les prochains niveaux seront justement dédiés aux commandes qui permettent de faire cela :D",
|
||||||
"",
|
"",
|
||||||
"Ainsi à la fin de la journée, vous pouvez penser à `git fetch` comme une étape de téléchargement."
|
"Au bout du compte, vous pouvez vous représenter `git fetch` comme une étape de téléchargement."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -154,9 +154,9 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"## Les arguments de git fetch",
|
"## Les arguments de git fetch",
|
||||||
"",
|
"",
|
||||||
"Donc nous venons de tout apprendre sur les arguments de git push, le paramètre cool `<place>`, et même la ponctuation pour refspecs (`<source>:<destination>`). Pouvons-nous utiliser ces connaissances pour `git fetch` aussi ?",
|
"Nous savons maintenant tout ce qu'il y a à savoir sur les arguments de git push, y compris le paramètre `<place>` et la ponctuation pour refspecs (`<source>:<destination>`). Pouvons-nous utiliser ces connaissances avec `git fetch` également ?",
|
||||||
"",
|
"",
|
||||||
"Vous l'avez parié ! Les arguments pour `git fetch` sont en fait *très, très* similaires à ceux de `git push`. Il s'agit du même type de concepts mais simplement appliqués dans une direction différente (puisque maintenant vous téléchargez des commits plutôt que les envoyer).",
|
"Bien sûr ! Les arguments de `git fetch` sont en fait *très, très* similaires à ceux de `git push`. Il s'agit des mêmes concepts mais simplement appliqués dans le sens opposé (puisque maintenant vous récupérez des commits plutôt que de les envoyer).",
|
||||||
"",
|
"",
|
||||||
"Voyons ces concepts un par un..."
|
"Voyons ces concepts un par un..."
|
||||||
]
|
]
|
||||||
|
@ -168,13 +168,13 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"### Le paramètre `<place>`",
|
"### Le paramètre `<place>`",
|
||||||
"",
|
"",
|
||||||
"Si vous spécifiez un emplacement avec git fetch dans la commande suivante :",
|
"Si vous spécifiez un emplacement à git fetch, comme dans la commande suivante :",
|
||||||
"",
|
"",
|
||||||
"`git fetch origin foo`",
|
"`git fetch origin foo`",
|
||||||
"",
|
"",
|
||||||
"Git va aller à la branche distante `foo`, récupérer tous les commits qui ne sont pas présents localement, et ensuite les faire apparaître dans la branche locale `o/foo`.",
|
"Git va aller à la branche distante `foo`, récupérer tous les commits qui ne sont pas présents localement, puis les rapatrier dans la branche locale `o/foo`.",
|
||||||
"",
|
"",
|
||||||
"Voyons cela en action (juste pour se rappeler)."
|
"Voyons cela en action (juste pour réviser)."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -185,7 +185,7 @@ exports.level = {
|
||||||
"En spécifiant un emplacement..."
|
"En spécifiant un emplacement..."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Nous téléchargeons uniquement les commits de `foo` et les plaçons dans `o/foo`"
|
"Nous téléchargeons uniquement les commits de `foo` et les plaçons dans `o/foo`."
|
||||||
],
|
],
|
||||||
"command": "git fetch origin foo",
|
"command": "git fetch origin foo",
|
||||||
"beforeCommand": "git branch foo; git clone; git fakeTeamwork foo 2"
|
"beforeCommand": "git branch foo; git clone; git fakeTeamwork foo 2"
|
||||||
|
@ -195,9 +195,9 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Vous vous demandez peut-être -- pourquoi git a fait apparaître ces commits dans la branche distante `o/foo` plutôt que les placer directement dans ma branche locale `foo` ? Je pensais que le paramètre `<place>` était un emplacement qui existait à la fois localement et à distance ?",
|
"Vous vous posez peut-être la question : pourquoi git a-t-il fait apparaître ces commits dans la branche distante `o/foo` plutôt que les placer directement dans ma branche locale `foo` ? Je croyais que le paramètre `<place>` était un emplacement qui existait à la fois localement et sur le dépôt distant ?",
|
||||||
"",
|
"",
|
||||||
"Eh bien git fait une exception dans ce cas parce que vous pouvez avoir du travail dans la branche `foo` que vous ne voulez pas gâcher !! Cela est lié à la dernière lesson sur `git fetch` -- cela ne met pas à jour vos branches locales, cela télécharge uniquement les commits (ainsi vous pouvez les inspecter / fusionner plus tard).",
|
"En fait git fait une exception dans ce cas parce que vous pourriez avoir du travail en cours dans la branche `foo` que vous ne voulez pas écraser !! Cela provient de ce que nous avions vu dans la leçon précédente sur `git fetch` : cette commande ne met pas à jour vos branches locales, elle télécharge uniquement les commits (pour que vous puissiez les inspecter et/ou les fusionner plus tard).",
|
||||||
""
|
""
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -206,13 +206,13 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"\"Dans ce cas, que ce passe-t-il si je spécifie explicitement la source et la destination `<source>:<destination>` ?\"",
|
"\"Bon, mais dans ce cas, que ce passe-t-il si je spécifie explicitement la source et la destination avec `<source>:<destination>` ?\"",
|
||||||
"",
|
"",
|
||||||
"Si vous vous sentez assez passionnés pour rapatrier (fetch) les commits *directement* dans votre branche locale, alors oui vous pouvez préciser cela avec la notation refspec. Vous ne pouvez cependant pas rapatrier les commits dans la branche courante.",
|
"Si vous vous sentez assez déterminé pour rapatrier (fetch) des commits *directement* dans votre branche locale, alors oui vous pouvez préciser cela avec la notation refspec. Vous ne pouvez cependant pas rapatrier les commits dans la branche courante.",
|
||||||
"",
|
"",
|
||||||
"Ici est la seule différence -- à part que `<source>` est maintenant l'emplacement sur le dépôt *distant* et `<destination>` sur le dépôt *local* où rajouter ces commits. C'est l'exact opposé de git push, et cela se tient puisque nous transférons des données dans la direction opposée !",
|
"Il y a un petit piège cependant : dans ce cas précis `<source>` est l'emplacement sur le dépôt *distant* et `<destination>` l'emplacement sur le dépôt *local* où seront placés ces commits. C'est l'exact opposé de git push, et cela se tient puisque nous transférons des données dans le sens opposée !",
|
||||||
"",
|
"",
|
||||||
"Cela dit, les développeurs l'utilisent rarement en pratique. Je l'introduis principalement pour concrétiser le fait que `fetch` et `push` sont très similaires, simplement dans des directions opposées."
|
"Cela dit, les développeurs utilisent rarement cette syntaxe en pratique. Je l'introduis principalement pour concrétiser le fait que `fetch` et `push` sont très similaires, fonctionnant simplement dans des sens opposées."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -220,10 +220,10 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Voyons cette folie en action :"
|
"Voyons ce délire en action :"
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Wow ! Voyez, git a résolu `foo~1` comme un emplacement sur origin et a ensuite téléchargé les commits dans `bar` (qui était une branche local). Remarquez comment `foo` et `o/foo` n'ont pas été mises à jour puisque nous avons spécifié une destination."
|
"Wow ! Vous voyez, git a résolu `foo~1` comme un emplacement sur origin et a ensuite téléchargé les commits dans `bar` (qui était une branche locale). Remarquez aussi que `foo` et `o/foo` n'ont pas été mises à jour puisque nous avons spécifié une destination."
|
||||||
],
|
],
|
||||||
"command": "git fetch origin foo~1:bar",
|
"command": "git fetch origin foo~1:bar",
|
||||||
"beforeCommand": "git branch foo; git clone; git branch bar; git fakeTeamwork foo 2"
|
"beforeCommand": "git branch foo; git clone; git branch bar; git fakeTeamwork foo 2"
|
||||||
|
@ -233,10 +233,10 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Que se passe-t-il si l'emplacement n'existe pas avant que j'exécute la commande ? Voyons cela dans le dernier slide quand `bar` n'existe pas encore."
|
"Que se passe-t-il si l'emplacement n'existe pas avant que j'exécute la commande ? Voyons cela dans ce dernier slide, en nous mettant dans la situation où `bar` n'existe pas encore."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Vous voyez, c'est COMME un git push. Git a créé la destination localement avant le fetch, simplement comme il va créer la destination à distance avant le push (si elle n'existe pas)."
|
"Vous voyez, c'est COMME un git push. Git a créé la destination localement avant le fetch, exactement comme avec push il crée au préalable la destination sur le dépôt distant (si elle n'existe pas)."
|
||||||
],
|
],
|
||||||
"command": "git fetch origin foo~1:bar",
|
"command": "git fetch origin foo~1:bar",
|
||||||
"beforeCommand": "git branch foo; git clone; git fakeTeamwork foo 2"
|
"beforeCommand": "git branch foo; git clone; git fakeTeamwork foo 2"
|
||||||
|
@ -248,10 +248,10 @@ exports.level = {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Pas d'arguments ?",
|
"Pas d'arguments ?",
|
||||||
"",
|
"",
|
||||||
"Si `git fetch` ne reçoit pas d'arguments, cela télécharge simplement tous les commits dans toutes les branches distantes..."
|
"Si `git fetch` ne reçoit pas d'arguments, cela télécharge simplement tous les commits du dépôt distant au sein de toutes les branches distantes..."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Assez simple, mais faisons-le juste une fois."
|
"Assez simple, mais ce n'était pas inutile de voir en action."
|
||||||
],
|
],
|
||||||
"command": "git fetch",
|
"command": "git fetch",
|
||||||
"beforeCommand": "git branch foo; git clone; git fakeTeamwork foo; git fakeTeamwork master"
|
"beforeCommand": "git branch foo; git clone; git fakeTeamwork foo; git fakeTeamwork master"
|
||||||
|
@ -261,9 +261,9 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Ok, assez parlé ! Pour finir ce niveau, faites simplement un fetch des commits indiqués dans le fenêtre de visualisation de l'objectif. Appropriez-vous ces commandes !",
|
"Ok, assez parlé ! Pour finir ce niveau, faites simplement un fetch des commits indiqués dans la fenêtre de visualisation de l'objectif. Faites-vous plaisir !",
|
||||||
"",
|
"",
|
||||||
"Vous allez avoir à préciser la source et la destination pour les deux commandes fetch. Faites attention à la fenêtre de visualisation puisque les IDs peuvent avoir changé de position !"
|
"Vous devrez préciser la source et la destination pour les deux commandes fetch. Faites attention à l'objectif puisque les IDs peuvent avoir été intervertis !"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,11 +172,11 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"## Travail divergeant",
|
"## Travail divergent",
|
||||||
"",
|
"",
|
||||||
"Jusqu'à présent nous avons vu comment rapatrier (`pull`) les commits des collaborateurs et comment envoyer les vôtres (`push`). Cela a l'air simple, alors comment certains peuvent être si perdus ?",
|
"Jusqu'à présent nous avons vu comment rapatrier (`pull`) les commits de nos collaborateurs et comment envoyer les nôtres (`push`). Cela a l'air simple, alors comment certains peuvent trouver le sujet aussi confus ?",
|
||||||
"",
|
"",
|
||||||
"La difficulté arrive quand l'historique du dépôt *diverge*. Avant d'aborder les détails de cela, voyons un exemple ...",
|
"La difficulté arrive quand l'historique du dépôt *diverge*. Avant d'aborder les détails de cette situation, voyons un exemple ...",
|
||||||
""
|
""
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -185,11 +185,11 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Imaginez que vous clonez un dépôt le lundi et commencez à bidouiller une nouvelle fonctionnalité. Le vendredi vous êtes prêt à publier votre fonctionnalité -- mais oh nan ! Vos collègues ont écrit une floppée de code durant la semaine ce qui rend votre fonctionnalité désuète (et obsolète). Ils ont aussi publié sur le dépôt distant partagé, donc maintenant *votre* travail est basé sur une *vieille* version du projet qui n'est plus viable.",
|
"Imaginez que vous clonez un dépôt le lundi et commencez à bidouiller une nouvelle fonctionnalité. Le vendredi vous êtes prêt à publier votre fonctionnalité -- mais oh non ! Vos collègues ont écrit une floppée de code durant la semaine, ce qui rend votre fonctionnalité désuète (et obsolète). Ils ont aussi publié sur le dépôt distant partagé, donc maintenant *votre* travail est basé sur une *vieille* version du projet qui n'est plus viable.",
|
||||||
"",
|
"",
|
||||||
"Dans ce cas, la commande `git push` est ambiguë. Si vous exécutez `git push`, git devrait-il remettre le dépôt distant tel qu'il était lundi ? Doit-il essayer d'ajouter votre code sans supprimer le nouveau code ? Ou doit-il totalement ignorer vos changements puisqu'ils ne sont plus à jour ?",
|
"Dans ce cas, la commande `git push` est ambiguë. Si vous exécutez `git push`, git devrait-il remettre le dépôt distant tel qu'il était lundi ? Doit-il essayer d'ajouter votre code sans supprimer le nouveau code ? Ou doit-il totalement ignorer vos changements puisqu'ils ne sont plus à jour ?",
|
||||||
"",
|
"",
|
||||||
"Comme il y a trop d'ambiguïté dans cette situation (où l'historique a divergé), git ne vous autorise pas à `push` vos changements. Cela vous force en fait à incorporer le dernier état du dépôt distant avnat de pouvoir partager votre travail."
|
"Comme il y a trop d'ambiguïté dans cette situation (où l'historique a divergé), git ne vous autorise pas à faire un `push` de vos changements. Cela vous force en fait à rapatrier chez vous le dernier état du dépôt distant avant de pouvoir partager votre travail."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -197,7 +197,7 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Assez parlé ! Observons cette situation en action"
|
"Assez parlé ! Observons cette situation en action :"
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Vous voyez ? Rien ne s'est produit car la commande a échoué. `git push` a échoué car votre plus récent commit `C3` est basé sur le dépôt distant sur `C1`. Le dépôt distant a depuis été mis à jour avec `C2`, donc git rejette votre push."
|
"Vous voyez ? Rien ne s'est produit car la commande a échoué. `git push` a échoué car votre plus récent commit `C3` est basé sur le dépôt distant sur `C1`. Le dépôt distant a depuis été mis à jour avec `C2`, donc git rejette votre push."
|
||||||
|
@ -210,9 +210,9 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Comment vous résolvez cette situation ? C'est facile, tout ce que vous avez à faire est de baser votre travail sur la dernière version de la branche distante.",
|
"Comment allez-vous résoudre cette situation ? C'est facile, tout ce que vous avez à faire est de baser votre travail sur la dernière version de la branche distante.",
|
||||||
"",
|
"",
|
||||||
"Il y a plusieurs façons de faire cela, mais la plus directe est de déplacer votre travail avec rebase. Allons voir à quoi cela ressemble."
|
"Il y a plusieurs façons de faire cela, mais la plus directe est de déplacer votre travail avec rebase. Regardons à quoi cela ressemble."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -220,10 +220,10 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Maintenant si nous rebasons avant de push ..."
|
"Maintenant si nous rebasons avant de push..."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Boum ! Nous avons mis à jour notre représentation locale du dépôt avec `git fetch`, rebasé notre travail pour refléter les nouveaux changements, et enfin les avons envoyés avec `git push`"
|
"Boum ! Nous avons mis à jour notre représentation locale du dépôt avec `git fetch`, rebasé notre travail pour refléter les nouveaux changements, et enfin les avons envoyés avec `git push`."
|
||||||
],
|
],
|
||||||
"command": "git fetch; git rebase o/master; git push",
|
"command": "git fetch; git rebase o/master; git push",
|
||||||
"beforeCommand": "git clone; git fakeTeamwork; git commit"
|
"beforeCommand": "git clone; git fakeTeamwork; git commit"
|
||||||
|
@ -233,9 +233,9 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Existe-t-il d'autres façons de mettre à jour notre travail quand le répertoire distant a été mis à jour ? Bien sûr ! Faisons la même chose avec `merge` plutôt.",
|
"Existe-t-il d'autres façons de mettre à jour notre travail quand le répertoire distant a été mis à jour ? Bien sûr ! Faisons la même chose, mais cette fois avec `merge`.",
|
||||||
"",
|
"",
|
||||||
"Bien que `git merge` ne déplace pas vôtre travail (et au lieu de cela crée juste un commit de fusion), c'est une façon de dire à git que vous avez incorporé tous les changements du dépôt distant. C'est parce que la branche distante est maitenant une *ancêtre* de vôtre propre branche, ce qui signifie que vos commits reflètent tous les changements faits sur la branche distante.",
|
"Bien que `git merge` ne déplace pas votre travail (et crée à la place un commit de fusion), cette commande est également une façon de dire à git que vous avez incorporé tous les changements du dépôt distant. En effet la branche distante est maintenant une *ancêtre* de votre propre branche, ce qui signifie que vos commits contiennent tous les changements faits sur la branche distante.",
|
||||||
"",
|
"",
|
||||||
"Voyons une démonstration ..."
|
"Voyons une démonstration ..."
|
||||||
]
|
]
|
||||||
|
@ -248,7 +248,7 @@ exports.level = {
|
||||||
"Maintenant si nous mergeons au lieu de rebaser ..."
|
"Maintenant si nous mergeons au lieu de rebaser ..."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Boum ! Nous avons mis à jour notre représentation du dépôt distant avec `git fetch`, *fusionné* le nouveau travail dans notre travail (pour refléter les nouveaux changements du dépôt distant), et les avons ensuite envoyés avec `git push`"
|
"Boum ! Nous avons mis à jour notre représentation locale du dépôt distant avec `git fetch`, *fusionné* les nouveaux commits dans notre copie de travail (pour refléter les nouveaux changements du dépôt distant), et les avons ensuite envoyés avec `git push`."
|
||||||
],
|
],
|
||||||
"command": "git fetch; git merge o/master; git push",
|
"command": "git fetch; git merge o/master; git push",
|
||||||
"beforeCommand": "git clone; git fakeTeamwork; git commit"
|
"beforeCommand": "git clone; git fakeTeamwork; git commit"
|
||||||
|
@ -258,9 +258,9 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Impressionnant ! Existe-t-il une façon de faire sans taper autant de commandes ?",
|
"Impressionnant ! Existe-t-il une façon de faire tout cela sans taper autant de commandes ?",
|
||||||
"",
|
"",
|
||||||
"Bien sûr -- vous savez déjà que `git pull` est simplement un raccourci pour un fetch puis un merge. De manière assez pratique, `git pull --rebase` est un raccourci pour un fetch puis un rebase !",
|
"Bien sûr : vous savez déjà que `git pull` est simplement un raccourci pour un fetch puis un merge. De manière assez pratique, `git pull --rebase` est un raccourci pour un fetch puis un rebase !",
|
||||||
"",
|
"",
|
||||||
"Voyons ce raccourci au travail."
|
"Voyons ce raccourci au travail."
|
||||||
]
|
]
|
||||||
|
@ -283,10 +283,10 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Et maintenant avec un `pull` normal"
|
"Et maintenant avec un `pull` normal :"
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Encore une fois, exactement la même chose qu'avant !"
|
"A nouveau, c'est exactement la même chose qu'auparavant !"
|
||||||
],
|
],
|
||||||
"command": "git pull; git push",
|
"command": "git pull; git push",
|
||||||
"beforeCommand": "git clone; git fakeTeamwork; git commit"
|
"beforeCommand": "git clone; git fakeTeamwork; git commit"
|
||||||
|
@ -296,12 +296,12 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Cette succession de fetch, rebase/merge, et push est assez commune. Dans les leçons suivantes, nous allons explorer plus profondément cette façon de d'enchaîner les commandes, mais essayons plutôt cela maintenant.",
|
"Cette succession de fetch, rebase/merge, et push est assez commune. Dans les leçons suivantes, nous explorerons cette façon de d'enchaîner les commandes dans des conditions plus complexes, mais pour le moment appliquons ce principe de façon classique.",
|
||||||
"",
|
"",
|
||||||
"Pour finir ce niveau, réalisez les étapes suivantes :",
|
"Pour finir ce niveau, réalisez les étapes suivantes :",
|
||||||
"",
|
"",
|
||||||
"* Clonez votre dépôt",
|
"* Clonez votre dépôt",
|
||||||
"* Simuler un travail d'équipe (1 commit)",
|
"* Simulez un travail d'équipe (1 commit)",
|
||||||
"* Commitez un peu de votre travail (1 commit)",
|
"* Commitez un peu de votre travail (1 commit)",
|
||||||
"* Publiez votre travail avec *rebase*"
|
"* Publiez votre travail avec *rebase*"
|
||||||
]
|
]
|
||||||
|
|
|
@ -77,9 +77,9 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"## Pourquoi pas merge ?",
|
"## Pourquoi pas merge ?",
|
||||||
"",
|
"",
|
||||||
"Dans le but d'envoyer de nouvelles modifications sur le dépôt distant, la seule étape préliminaire est *d'incorporer* les derniers changements de ce dépôt dans le nôtre. Cela signifie qu'après, vous pouvez faire un rebase *ou* merge de la branche distante (e.g. `o/master`).",
|
"Dans le but d'envoyer de nouvelles modifications sur le dépôt distant, la seule étape préliminaire est *d'incorporer* les derniers changements de ce dépôt dans le nôtre. Concrètement, vous pouvez faire un rebase *ou* un merge de la branche distante (c'est à dire de `o/master`).",
|
||||||
"",
|
"",
|
||||||
"Donc si l'on peut faire les deux méthodes, pourquoi les leçons se sont (re)basées (!) sur rebase jusqu'à présent ? Pourquoi n'aime-t-on pas `merge` dans les branches distantes ?",
|
"Donc si l'on peut faire les deux méthodes, pourquoi les leçons se sont-elles concentrées sur rebase jusqu'à présent ? Pourquoi préfère-t-on souvent éviter `merge` lorsque l'on travaille avec les branches distantes ?",
|
||||||
""
|
""
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Il y a beaucoup de débats à propos du compromis entre l'utilisation de merge et rebase dans la communauté des développeurs. Voici les principaux arguments pour / contre rebase:",
|
"Au sein de la communauté des développeurs, il y a beaucoup de débats à propos des avantages et inconvénients de l'utilisation de merge ou de rebase. Voici les principaux arguments pour et contre rebase:",
|
||||||
"",
|
"",
|
||||||
"Pour :",
|
"Pour :",
|
||||||
"",
|
"",
|
||||||
|
@ -98,7 +98,7 @@ exports.level = {
|
||||||
"",
|
"",
|
||||||
"* Rebase modifie l'historique (apparent) de l'arbre des commits.",
|
"* Rebase modifie l'historique (apparent) de l'arbre des commits.",
|
||||||
"",
|
"",
|
||||||
"Par exemple, le commit `C1` peut être rebasé *après* `C3`. Cela fait croire que le travail de `C1'` est arrivé après `C3` alors qu'en réalité il était complétement avant.",
|
"Par exemple, le commit `C1` peut être rebasé *après* `C3`. Cela fait croire que le travail de `C1'` est arrivé après `C3` alors qu'en réalité il était achevé et commité avant.",
|
||||||
"",
|
"",
|
||||||
"Certains développeurs aiment préserver l'historique et préfèrent donc merge. Les autres (comme moi) préfèrent avoir un arbre des commits propre et préfèrent rebase. C'est une question de goût :D"
|
"Certains développeurs aiment préserver l'historique et préfèrent donc merge. Les autres (comme moi) préfèrent avoir un arbre des commits propre et préfèrent rebase. C'est une question de goût :D"
|
||||||
]
|
]
|
||||||
|
@ -108,7 +108,7 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Pour ce niveau, essayons de résoudre le niveau précédent, mais avec *merge* plutôt. Cela peut être un peu périlleux mais cela illustre bien le problème."
|
"Pour ce niveau, essayons de résoudre la même situation qu'au niveau précédent, mais cette fois en utilisant *merge*. Cela peut être un peu périlleux mais cela illustre bien le problème."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,9 +90,9 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"## Git Pull",
|
"## Git Pull",
|
||||||
"",
|
"",
|
||||||
"Maintenant que vous avez vu comment rapatriez des données depuis un dépôt distant avec `git fetch`, mettons à jour notre copie de travail pour refléter ces changements !",
|
"Maintenant que vous avez vu comment rapatrier des données depuis un dépôt distant avec `git fetch`, mettons à jour notre copie de travail pour refléter ces changements !",
|
||||||
"",
|
"",
|
||||||
"Il existe en fait beaucoup de façons de faire cela -- une fois que vous avez de nouveaux commits disponibles localements, vous pouvez les incorporer comme s'ils étaient des commits normaux d'autres branches. Cela signifie que pourriez juste exécuter des commandes comme :",
|
"Il existe en fait beaucoup de façons de faire cela -- une fois que vous avez de nouveaux commits disponibles localement, vous pouvez les incorporer dans votre branche de travail comme s'ils étaient des commits normaux d'autres branches. Cela signifie que pourriez simplement exécuter des commandes comme :",
|
||||||
"",
|
"",
|
||||||
"* `git cherry-pick o/master`",
|
"* `git cherry-pick o/master`",
|
||||||
"* `git rebase o/master`",
|
"* `git rebase o/master`",
|
||||||
|
@ -110,7 +110,7 @@ exports.level = {
|
||||||
"Voyons d'abord un `fetch` puis un `merge` exécutés séquentiellement"
|
"Voyons d'abord un `fetch` puis un `merge` exécutés séquentiellement"
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Boum -- nous avons téléchargé `C3` avec un `fetch` et ensuite nous avons fusionné ce travail dans notre copie avec `git merge o/master`. Maintenant nôtre branche `master` reflète le nouveau travail du dépôt distant (dans ce cas, nommé `origin`)"
|
"Boum -- nous avons téléchargé `C3` avec un `fetch` et ensuite nous avons fusionné ce travail dans notre copie avec `git merge o/master`. Maintenant notre branche `master` reflète le nouveau travail du dépôt distant (dans ce cas, nommé `origin`)"
|
||||||
],
|
],
|
||||||
"command": "git fetch; git merge o/master",
|
"command": "git fetch; git merge o/master",
|
||||||
"beforeCommand": "git clone; git commit; git fakeTeamwork"
|
"beforeCommand": "git clone; git commit; git fakeTeamwork"
|
||||||
|
@ -133,9 +133,9 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Nous allons explorer les détails de `git pull` plus tard (y compris options et arguments), mais essayons d'abord cela dans notre niveau.",
|
"Nous allons explorer les détails de `git pull` plus tard (y compris options et arguments), mais pour ce niveau pratiquons d'abord la technique de base.",
|
||||||
"",
|
"",
|
||||||
"Rappelez-vous -- vous pouvez aussi résoudre ce niveau avec `fetch` et `merge`, mais cela vous coûtera une commande supplémentaire :P"
|
"Rappelez-vous : vous pouvez aussi résoudre ce niveau avec `fetch` et `merge`, mais cela vous coûtera une commande supplémentaire :P"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,9 +105,9 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"## Les arguments de git pull",
|
"## Les arguments de git pull",
|
||||||
"",
|
"",
|
||||||
"Maintenant que vous savez presque *tout* ce qu'il y a à savoir à propos des arguments de `git fetch` et `git push`, il n'y a presque rien de restant à découvrir avec git pull :)",
|
"Maintenant que vous savez presque *tout* ce qu'il y a à savoir sur les arguments de `git fetch` et `git push`, il n'y a presque plus rien à vous apprendre sur git pull :)",
|
||||||
"",
|
"",
|
||||||
"C'est parce que git pull est au bout du compte *réellement* juste un raccourci pour un merge suivi d'un merge pour tout ce qui vient d'être rapatrié (par le fetch). Vous pouvez y pensez comme exécuter git fetch avec les *mêmes* arguments specifiés et ensuite fusionner avec là où ces commits sont arrivés.",
|
"C'est parce que git pull est en fait *juste* un raccourci pour un fetch suivi d'un merge de tout ce qui vient d'être rapatrié. Vous pouvez vous représenter git pull comme un git fetch avec les *mêmes* arguments, suivi d'un merge qui aura lieu à l'endroit *exact* où ces commits seront arrivés.",
|
||||||
"",
|
"",
|
||||||
"Cela fonctionne même quand vous utilisez des arguments très compliqués. Voyons quelques exemples :"
|
"Cela fonctionne même quand vous utilisez des arguments très compliqués. Voyons quelques exemples :"
|
||||||
]
|
]
|
||||||
|
@ -123,13 +123,13 @@ exports.level = {
|
||||||
"",
|
"",
|
||||||
"`git fetch origin foo; git merge o/foo`",
|
"`git fetch origin foo; git merge o/foo`",
|
||||||
"",
|
"",
|
||||||
"Et ...",
|
"Et :",
|
||||||
"",
|
"",
|
||||||
"`git pull origin bar~1:bugFix` est équivalent à :",
|
"`git pull origin bar~1:bugFix` est équivalent à :",
|
||||||
"",
|
"",
|
||||||
"`git fetch origin bar~1:bugFix; git merge bugFix`",
|
"`git fetch origin bar~1:bugFix; git merge bugFix`",
|
||||||
"",
|
"",
|
||||||
"Vous voyez ? git pull est vraiment simplement un raccourci pour fetch + merge, et tout ce dont git pull s'occupe est la destination des commits (l'argument `destination` qu'il utilise durant le fetch).",
|
"Vous voyez ? git pull est au fond un simple un raccourci pour fetch + merge, et tout ce qui lui importe est la destination des commits (l'argument `destination` qu'il utilise durant le fetch).",
|
||||||
"",
|
"",
|
||||||
"Voyons une démonstration :"
|
"Voyons une démonstration :"
|
||||||
]
|
]
|
||||||
|
@ -139,10 +139,10 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Si nous précisons l'emplacement à rappatrier, tout se passe comme avant avec fetch mais nous fusionnons avec tout ce qui a été rapatrié"
|
"Si nous précisons l'emplacement à rapatrier tout se passe comme précédemment, avec fetch, mais en sus nous fusionnons tout ce qui a été rapatrié."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Vu ? en précisant `master` nous avons téléchargé les commits dans `o/master` comme d'habitude. Puis nous avons fusionné `o/master` avec là où nous sommes, *sans se soucier* de la branche courante."
|
"Vu ? En précisant `master` nous avons téléchargé les commits dans `o/master` comme d'habitude. Puis nous avons fusionné `o/master` avec là où nous sommes, *sans nous soucier* de la branche courante."
|
||||||
],
|
],
|
||||||
"command": "git pull origin master",
|
"command": "git pull origin master",
|
||||||
"beforeCommand": "git clone; go -b bar; git commit; git fakeTeamwork"
|
"beforeCommand": "git clone; go -b bar; git commit; git fakeTeamwork"
|
||||||
|
@ -152,10 +152,10 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Cela fonctionne-t-il avec une source et une destination aussi ? Et oui ! Voyons cela :"
|
"Cela fonctionne-t-il aussi bien avec une source et une destination ? Et oui ! Voyons cela :"
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Wow, c'est énorme en une commande. Nous avons créé une brance locale nommée `foo`, téléchargé les commits depuis la branche master distante dans `foo`, et ensuite fusionné cette branche dans notre branche actuelle de travail `bar`. It's over 9000!!!"
|
"Wow, INCROYABLE tout ce que nous avons fait en une commande. Nous avons créé une brance locale nommée `foo`, téléchargé les commits depuis la branche master distante dans `foo`, et ensuite fusionné cette branche dans notre branche actuelle de travail (checkoutée) `bar` !!!"
|
||||||
],
|
],
|
||||||
"command": "git pull origin master:foo",
|
"command": "git pull origin master:foo",
|
||||||
"beforeCommand": "git clone; git fakeTeamwork; go -b bar; git commit"
|
"beforeCommand": "git clone; git fakeTeamwork; go -b bar; git commit"
|
||||||
|
@ -165,7 +165,7 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Ok pour finir ce niveau, atteignez l'état décrit dans la visualisation de l'objectif. Vous aurez besoin de télécharger quelques commits, de faire quelques nouvelles branches, et de fusionner ces branches dans d'autres branches, mais cela ne devrait pas utiliser trop de commandes :P"
|
"Ok, pour finir ce niveau reproduisez l'état de la fenêtre Objectif. Vous aurez besoin de télécharger quelques commits, de créer des branches et de les fusionner dans d'autres branches, mais cela ne devrait pas utiliser trop de commandes :P"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,15 +74,15 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"## Git Push",
|
"## Git Push",
|
||||||
"",
|
"",
|
||||||
"Ok, donc j'ai rapatrié les changements du dépôt distant et les incorporé dans mon travail local. C'est super ... mais comment je partage _mon_ travail génial avec tous les autres ?",
|
"Ok, donc j'ai rapatrié les changements du dépôt distant et je les ai incorporés dans mon travail local. C'est super... mais comment je partage _mon_ travail génial avec tous les autres ?",
|
||||||
"",
|
"",
|
||||||
"En fait, la manière d'envoyer du travail à partager fonctionne à l'opposé du téléchargement de travail partagé. Et quel est l'opposé de `git pull` ? `git push`!",
|
"En fait, la manière d'envoyer du travail à partager fonctionne à l'opposé du téléchargement de travail partagé. Et quel est l'opposé de `git pull` (tire) ? `git push` (pousse) !",
|
||||||
"",
|
"",
|
||||||
"`git push` est responsable de l'envoi de _vos_ changements vers un dépôt distant et de la mise à jour de ce dépôt pour incorporer vos commits. Une fois `git push` terminé, tous vos amis peuvent télécharger votre travail depuis le dépôt distant.",
|
"`git push` est responsable de l'envoi de _vos_ changements vers un dépôt distant et de la mise à jour de ce dépôt pour incorporer vos commits. Une fois `git push` terminé, tous vos amis peuvent télécharger votre travail depuis le dépôt distant.",
|
||||||
"",
|
"",
|
||||||
"Vous pouvez voir `git push` comme une commande qui \"publie\" votre travail. Elle a une variété de subtilité que nous allons voir rapidement, mais commençons avec le b.a-ba ...",
|
"Vous pouvez voir `git push` comme une commande qui \"publie\" votre travail. Elle présente quelques subtilités que nous allons voir rapidement, mais commençons par le B.A.-BA...",
|
||||||
"",
|
"",
|
||||||
"*note : le comportement de `git push` avec aucun argument varie avec l'un des réglages de git appelé `push.default`. La valeur par défaut pour ce réglage dépend de la version de git utilisée, mais nous allons utiliser la valeur `upstream` dans nos leçons. Ce n'est pas un gros inconvénient, mais vérifiez tout de même vos réglages avant de pusher vos propres projets.*"
|
"*Note : le comportement de `git push` avec aucun argument varie avec l'un des réglages de configuration de git nommé `push.default`. La valeur par défaut de ce réglage dépend de la version de git utilisée, mais nous allons utiliser la valeur `upstream` dans nos leçons. Cela ne change pas grand chose pour ces exercices, mais vérifiez tout de même vos réglages avant de pusher vos propres projets.*"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -93,7 +93,7 @@ exports.level = {
|
||||||
"Nous avons fait ici quelques changements que le dépôt distant n'a pas. Envoyons-les !"
|
"Nous avons fait ici quelques changements que le dépôt distant n'a pas. Envoyons-les !"
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Et voilà -- le dépôt distant a reçu le commit `C2`, la branche `master` a été mise à jour sur `C2`, et vôtre *propre* représentation de la branche distante (`o/master`) a aussi été mise à jour. Tout est synchronisé !"
|
"Et voilà : le dépôt distant a reçu le commit `C2`, la branche `master` a été mise à jour sur `C2`, et votre *propre* représentation de la branche distante (`o/master`) a aussi été mise à jour. Tout est synchronisé !"
|
||||||
],
|
],
|
||||||
"command": "git push",
|
"command": "git push",
|
||||||
"beforeCommand": "git clone; git commit"
|
"beforeCommand": "git clone; git commit"
|
||||||
|
@ -103,7 +103,7 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Pour finir ce niveau, partager simplement des nouveaux commits avec le dépôt distant. Accrochez-vous, parce que ces leçons vont devenir beaucoup plus difficiles !"
|
"Pour finir ce niveau, partagez simplement deux nouveaux commits avec le dépôt distant. Accrochez-vous, parce que ces leçons vont devenir beaucoup plus difficiles !"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ exports.level = {
|
||||||
"pt_BR": "Parâmetros do git push",
|
"pt_BR": "Parâmetros do git push",
|
||||||
"de_DE": "Optionen für Git Push",
|
"de_DE": "Optionen für Git Push",
|
||||||
"ja" : "Git pushの引数",
|
"ja" : "Git pushの引数",
|
||||||
"fr_FR": "Paramètres de git push"
|
"fr_FR": "Arguments de git push"
|
||||||
},
|
},
|
||||||
"hint": {
|
"hint": {
|
||||||
"en_US": "You can always look at the last slide of the dialog with \"objective\"",
|
"en_US": "You can always look at the last slide of the dialog with \"objective\"",
|
||||||
|
@ -108,7 +108,7 @@ exports.level = {
|
||||||
"",
|
"",
|
||||||
"Bien ! Maintenant que vous connaissez le suivi des branches, nous pouvons fouiller ce qui se cache derrière le fonctionnement de push, fetch, et pull. Nous allons aborder une commande à la fois, mais elles sont très similaires.",
|
"Bien ! Maintenant que vous connaissez le suivi des branches, nous pouvons fouiller ce qui se cache derrière le fonctionnement de push, fetch, et pull. Nous allons aborder une commande à la fois, mais elles sont très similaires.",
|
||||||
"",
|
"",
|
||||||
"En premier lieu regardons `git push`. Vous avez appris dans la leçon sur le suivi des branches que git détermine le dépôt distant *et* la branche à envoyer en regardant les propriétés de la branche courante (i.e. la branche qu'elle \"suit\" -- track). C'est le comportement quand aucun argument n'est spécifié, mais git peut optionnellement prendre des arguments de la forme :",
|
"En premier lieu regardons `git push`. Vous avez appris dans la leçon sur le suivi des branches distantes que git détermine le dépôt distant *et* la branche à envoyer en regardant les propriétés de la branche courante (c'est à dire la branche distante que cette dernière \"suit\" -- track). C'est le comportement rencontré quand aucun argument n'est spécifié, mais git push accepte aussi des arguments de la forme :",
|
||||||
"",
|
"",
|
||||||
"`git push <remote> <place>`",
|
"`git push <remote> <place>`",
|
||||||
"",
|
"",
|
||||||
|
@ -120,17 +120,17 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Quel est le paramètre `<place>`? Nous allons voir ces particularités bientôt, mais d'abord un exemple. Exécuter la commande :",
|
"Qu'est ce que ce paramètre `<place>` ? Avant de passer à l'explication, voyons d'abord un exemple. La commande suivante :",
|
||||||
"",
|
"",
|
||||||
"`git push origin master`",
|
"`git push origin master`",
|
||||||
"",
|
"",
|
||||||
"ce qui veut dire :",
|
"peut se traduire en français par :",
|
||||||
"",
|
"",
|
||||||
"*Va dans la branche \"master\" de mon dépôt, récupère tous les commits, et ensuite va dans la branche distante \"master\" sur le dépôt nommé \"origin\". Cela place tous les commits manquants sur cette branche puis me notifie quand c'est terminé.*",
|
"*Va dans la branche \"master\" de mon dépôt, récupère tous les commits, et ensuite va dans la branche distante \"master\" sur le dépôt nommé \"origin\". Envoie tous les commits qui lui manquent sur cette branche distante puis préviens-moi quand c'est terminé.*",
|
||||||
"",
|
"",
|
||||||
"En spécifiant `master` comme argument `<place>`, nous avons dit à git *d'où* les commits venaient et où ils *allaient*. C'est en fait \"l'emplacement\" à synchroniser entre les deux dépôts.",
|
"En spécifiant `master` comme argument `<place>`, nous avons dit à git *d'où* les commits venaient et où ils *allaient*. C'est en fait \"l'emplacement\" à synchroniser entre les deux dépôts.",
|
||||||
"",
|
"",
|
||||||
"Gardez à l'esprit que nous avons dit à git tout ce dont il a besoin (en précisant les deux arguments), il ignore totalement quelle est la branche courante !"
|
"Gardez à l'esprit que nous avons dit à git tout ce dont il a besoin pour opérer (en précisant les deux arguments), il n'a donc absolument pas besoin de savoir quelle est la branche courante !"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -138,7 +138,7 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Voyons un exemple d'arguments. Notez la branche courante dans cet exemple."
|
"Voyons un exemple d'arguments. Notez bien où se trouve `HEAD` dans cet exemple."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Voilà ! `master` a été mise à jour puisque nous avons spécifié ces arguments."
|
"Voilà ! `master` a été mise à jour puisque nous avons spécifié ces arguments."
|
||||||
|
|
|
@ -99,15 +99,15 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"## Détails de l'argument `<place>`",
|
"## L'argument `<place>` dans le détail",
|
||||||
"",
|
"",
|
||||||
"Vous vous rappelez de la dernière leçon : quand vous passiez `master` comme argument `<place>` à git push, cela spécifiait à la fois la *source* de provenance des commits et leur *destination*.",
|
"Rappelez-vous de notre dernière leçon : quand vous passiez `master` comme argument `<place>` à git push, cela spécifiait à la fois la *source* de provenance des commits et leur *destination*.",
|
||||||
"",
|
"",
|
||||||
"Vous vous demandez peut-être donc -- et si nous voulions avoir une source et une destination différentes ? Et si vous voulez envoyez des commits de la branche locale `foo` dans la branche distante `bar` ?",
|
"Vous vous demandez peut-être donc : et si nous voulions avoir une source et une destination différentes ? Et si vous voulez envoyez des commits de la branche locale `foo` dans la branche distante `bar` ?",
|
||||||
"",
|
"",
|
||||||
"Malheureusement ce n'est pas possible avec git ... ou pas ! Bien sûr que c'est possible :)... git a des tonnes de flexibilité (presque trop).",
|
"Malheureusement ce n'est pas possible avec git... Mais non, je plaisante ! Bien sûr que c'est possible :)... git a des tonnes de flexibilité (presque trop).",
|
||||||
"",
|
"",
|
||||||
"Voyons cela au prochain slide ..."
|
"Voyons cela au prochain slide..."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -119,9 +119,9 @@ exports.level = {
|
||||||
"",
|
"",
|
||||||
"`git push origin <source>:<destination>`",
|
"`git push origin <source>:<destination>`",
|
||||||
"",
|
"",
|
||||||
"On en parle souvent comme un refspec. Refspec est juste un nom exotique pour un emplacement que git peut résoudre (comme la branche `foo` ou juste `HEAD~1`)",
|
"On en parle souvent comme d'un \"refspec\". Refspec est juste un nom exotique pour un emplacement que git peut résoudre (comme la branche `foo` ou juste `HEAD~1`)",
|
||||||
"",
|
"",
|
||||||
"Lorsque vous précisez la source et la destination indépendemment, vous pouvez être original et précis avec les commandes sur les dépôts distants. Faisons une démo !"
|
"Lorsque vous utilisez cette notation permettant de préciser la source et la destination indépendamment, vous pouvez produire des commandes à la fois très sophistiquées et très précises pour travailler avec les dépôts distants. Faisons une démo !"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -132,7 +132,7 @@ exports.level = {
|
||||||
"Rappelez-vous, `source` peut être n'importe quel emplacement que git peut résoudre :"
|
"Rappelez-vous, `source` peut être n'importe quel emplacement que git peut résoudre :"
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Woahou ! C'est une commande très alambiquée mais qui a du sens -- git résoud `foo^` en un emplacement, envoie tous les commits qui n'étaient pas encore présents sur le dépôt distant, et met ensuite à jour la destination."
|
"Woahou ! C'est une commande très alambiquée mais qui a du sens : git résoud `foo^` en un emplacement, envoie tous les commits qui n'étaient pas encore présents sur le dépôt distant, et met ensuite à jour la branche de destination."
|
||||||
],
|
],
|
||||||
"command": "git push origin foo^:master",
|
"command": "git push origin foo^:master",
|
||||||
"beforeCommand": "git clone; go -b foo; git commit; git commit"
|
"beforeCommand": "git clone; go -b foo; git commit; git commit"
|
||||||
|
|
|
@ -83,17 +83,17 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"## Fusionner les modifications des branches",
|
"## Fusionner les feature branches",
|
||||||
"",
|
"",
|
||||||
"Maintenant que vous êtes habitué à fetch, pull, et push, utilisons ces compétences dans le test avec un nouveau plan de travail.",
|
"Maintenant que vous êtes habitué à fetch, pull et push, mettons ces compétences à profit avec une autre approche de travail.",
|
||||||
"",
|
"",
|
||||||
"Il est commun pour les développeurs de gros projets de faire tout leur travail dans des branches représentant une fonctionnalité (en dehors de `master`) et d'intégrer ce travvail une fois qu'il est prêt. C'est similaire à la leçon précédente (où les branches secondaires étaient pushées sur le dépôt distant), mais ici nous introduisons une étape supplémentaire.",
|
"Il est commun pour les développeurs de gros projets de faire tout leur travail dans des \"feature branches\" dédiées à une fonctionnalité (en dehors de `master`) et d'intégrer ce travail au reste seulement une fois qu'il est prêt. C'est similaire à la leçon précédente (où les branches secondaires étaient pushées sur le dépôt distant), mais ici nous introduisons une étape supplémentaire.",
|
||||||
"",
|
"",
|
||||||
"Certains développeurs font un push puis un pull uniquement quand ils sont sur la branche `master` -- de cette manière `master` reste toujours à jour avec ce qu'il y a sur le dépôt distant (`o/master`).",
|
"Certains développeurs utilisent la méthode \"push puis pull\" uniquement sur la branche `master` : de cette manière `master` reste toujours à jour avec ce qu'il y a sur le dépôt distant (`o/master`).",
|
||||||
"",
|
"",
|
||||||
"Ainsi pour ce faire nous combinons deux choses :",
|
"Cette approche combine donc deux choses :",
|
||||||
"",
|
"",
|
||||||
"* intégrer la fonctionnalité de la branche dans `master`, et",
|
"* intégrer le travail présent depuis la feature branch (la fonctionnalité développée) vers `master`, puis",
|
||||||
"* pusher et puller sur le dépôt distant."
|
"* pusher et puller sur le dépôt distant."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -107,8 +107,8 @@ exports.level = {
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Nous exécutons ici deux commandes :",
|
"Nous exécutons ici deux commandes :",
|
||||||
"",
|
"",
|
||||||
"* on rebase nôtre travail sur de nouveaux commits, et",
|
"* on rebase notre travail sur de nouveaux commits, puis",
|
||||||
"* on publie nôtre travail sur le dépôt distant"
|
"* on publie notre travail sur le dépôt distant"
|
||||||
],
|
],
|
||||||
"command": "git pull --rebase; git push",
|
"command": "git pull --rebase; git push",
|
||||||
"beforeCommand": "git clone; git commit; git fakeTeamwork"
|
"beforeCommand": "git clone; git commit; git fakeTeamwork"
|
||||||
|
@ -118,9 +118,9 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Ce niveau est assez gigantesque -- voici l'idée générale de la solution :",
|
"Ce niveau est assez conséquent ; voici l'idée générale de la solution :",
|
||||||
"",
|
"",
|
||||||
"* Il y a trois branches de fonctionnalités -- `side1` `side2` et `side3`",
|
"* Il y a trois feature branches : `side1` `side2` et `side3`",
|
||||||
"* Nous voulons envoyer chacune de ces modifications, dans l'ordre, sur le dépôt distant",
|
"* Nous voulons envoyer chacune de ces modifications, dans l'ordre, sur le dépôt distant",
|
||||||
"* Le dépôt distant a été mis à jour entre-temps, donc nous avons aussi besoin d'intégrer ce travail",
|
"* Le dépôt distant a été mis à jour entre-temps, donc nous avons aussi besoin d'intégrer ce travail",
|
||||||
"",
|
"",
|
||||||
|
|
|
@ -94,11 +94,11 @@ exports.level = {
|
||||||
"",
|
"",
|
||||||
"Maintenant que nous avons vu `git clone` en action, plongeons dans ce qui a changé.",
|
"Maintenant que nous avons vu `git clone` en action, plongeons dans ce qui a changé.",
|
||||||
"",
|
"",
|
||||||
"La première chose que vous avez peut-être remarqué est qu'une nouvelle branche est apparue dans vôtre dépôt local appelée `o/master`. Ce type de branche est appelée une branche _distante_; les branches distantes ont des propriétés spécifiques car elles servent à un but précis.",
|
"La première chose que vous avez peut-être remarqué est qu'une nouvelle branche est apparue dans votre dépôt local appelée `o/master`. Ce type de branche est appelée une branche _distante_ ; les branches distantes ont des propriétés spécifiques car elles servent à un but précis.",
|
||||||
"",
|
"",
|
||||||
"Les branches distantes reflètent _l'état_ des dépôts distants (depuis que nous avons parlé de ces dépôts distants). Elles vous aident à comprendre les différences entre vôtre travail et le travail public -- une étape critique à effectuer avant de partager son travail avec les autres.",
|
"Les branches distantes reflètent _l'état_ des dépôts distants (depuis la dernière fois où vous avez parlé avec ceux-ci). Elles vous aident à comprendre les différences entre votre travail et le travail public -- une étape critique à effectuer avant de partager son travail avec les autres.",
|
||||||
"",
|
"",
|
||||||
"Les branches distantes ont la propriété particulière que quand vous vous rendez dessus (checkout), `HEAD` est détaché. Git fait cela car vous ne pouvez pas travailler sur ces branches directement ; vous devez travailler ailleurs et ensuite partager vôtre travail avec le dépôt distant (après quoi vos branches distantes seront mises à jour)."
|
"Les branches distantes ont une propriété particulière: quand vous vous rendez dessus (checkout), `HEAD` est détaché. Git fait cela car vous ne pouvez pas travailler sur ces branches directement ; vous devez travailler ailleurs et ensuite partager votre travail avec le dépôt distant (après quoi vos branches distantes seront mises à jour)."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -114,9 +114,9 @@ exports.level = {
|
||||||
"",
|
"",
|
||||||
"Donc, si vous regardez une branche nommée `o/master`, le nom de la branche est `master` et le nom du dépôt distant est `o`.",
|
"Donc, si vous regardez une branche nommée `o/master`, le nom de la branche est `master` et le nom du dépôt distant est `o`.",
|
||||||
"",
|
"",
|
||||||
"La plupart des développeurs nomment leur principal dépôt distant `origin`, pas `o`. C'est si commun que git configure en fait vôtre dépôt local pour être nommé `origin` quand vous faîtes un `git clone` du dépôt.",
|
"La plupart des développeurs nomment leur principal dépôt distant `origin`, pas `o`. C'est si commun que git configure en fait votre dépôt local pour être nommé `origin` quand vous faîtes un `git clone` du dépôt.",
|
||||||
"",
|
"",
|
||||||
"Malheureusement le nom complet `origin` ne rentre pas dans notre interface graphique et nous utilisons donc `o` comme raccourci :( Rappelez-vous juste que quand vous utilisez le vrai git, vôtre dépôt distant est probablement nommé `origin`!",
|
"Malheureusement le nom complet `origin` ne rentre pas dans notre interface graphique et nous utilisons donc `o` comme raccourci :( Rappelez-vous juste que quand vous utilisez le vrai git, votre dépôt distant est probablement nommé `origin`!",
|
||||||
"",
|
"",
|
||||||
"Cela fait beaucoup d'un coup, donc voyons cela en action."
|
"Cela fait beaucoup d'un coup, donc voyons cela en action."
|
||||||
]
|
]
|
||||||
|
@ -129,7 +129,7 @@ exports.level = {
|
||||||
"Rendons-nous sur une branche et regardons ce qui se passe"
|
"Rendons-nous sur une branche et regardons ce qui se passe"
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Comme vous pouvez le voir, git nous a mis dans le mode \"detached\" `HEAD` puis n'a pas mis à jour `o/master` quand nous avons ajouté un nouveau commit. C'est parce que `o/master` va se mettre à jour uniquement quand le dépôt distant est mis à jour."
|
"Comme vous pouvez le voir, git nous a mis dans le mode \"detached\" (cf. `HEAD`) puis n'a pas mis à jour `o/master` quand nous avons ajouté un nouveau commit. C'est parce que `o/master` va se mettre à jour uniquement quand le dépôt distant sera mis à jour."
|
||||||
],
|
],
|
||||||
"command": "git checkout o/master; git commit",
|
"command": "git checkout o/master; git commit",
|
||||||
"beforeCommand": "git clone"
|
"beforeCommand": "git clone"
|
||||||
|
@ -139,7 +139,7 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Pour finir ce niveau, faîtes un commit en dehors de `master` puis un après s'être rendu dans `o/master`. Cela va nous aider à comprendre la différence de comportement des branches distantes, et qu'elles se mettent à jour uniquement pour refléter l'état du dépôt distant."
|
"Pour finir ce niveau, faîtes un commit en dehors de `master` puis un après vous être rendu dans `o/master`. Cela va nous aider à comprendre la différence de comportement des branches distantes, et le fait qu'elles se mettent à jour uniquement pour refléter l'état du dépôt distant."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,7 +84,7 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"### Les bizarreries de `<source>`",
|
"### Les bizarreries de `<source>`",
|
||||||
"",
|
"",
|
||||||
"Git maltraite le paramètre `<source>` parameter de deux façons bizarres. Ces deux abus viennent du fait que vous pouvez techniquement ne \"rien spécifier commre `source` valide pour git push et git fetch. Le moyen de ne rien spécifier est un argument vide :",
|
"Git permet de faire deux choses contre-intuitives avec le paramètre `<source>`. Ces deux astuces viennent du fait que vous pouvez techniquement ne *rien* spécifier comme `source` valide pour git push et git fetch. Autrement dit laisser vide la partie gauche de la refspec (avant le deux-points) :",
|
||||||
"",
|
"",
|
||||||
"* `git push origin :side`",
|
"* `git push origin :side`",
|
||||||
"* `git fetch origin :bugFix`",
|
"* `git fetch origin :bugFix`",
|
||||||
|
@ -100,7 +100,7 @@ exports.level = {
|
||||||
"Qu'est-ce que produit l'envoi de \"rien\" sur une branche distante ? Cela la détruit !"
|
"Qu'est-ce que produit l'envoi de \"rien\" sur une branche distante ? Cela la détruit !"
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Ici, nous avons brillamment supprimé la branche `foo` du dépôt distant en lui envoyant le concept de \"rien\". Cela prend du sens ..."
|
"Ici, nous avons brillamment supprimé la branche `foo` du dépôt distant en lui envoyant le concept de \"rien\". Cela paraît à peu près logique..."
|
||||||
],
|
],
|
||||||
"command": "git push origin :foo",
|
"command": "git push origin :foo",
|
||||||
"beforeCommand": "git clone; git push origin master:foo"
|
"beforeCommand": "git clone; git push origin master:foo"
|
||||||
|
@ -110,7 +110,7 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Enfin, un fetch de \"rien\" dans un emplacement local crée une nouvelle branche"
|
"Ensuite, un fetch de \"rien\" dans un emplacement local crée une nouvelle branche."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Très étrange, mais peu importe. C'est git !"
|
"Très étrange, mais peu importe. C'est git !"
|
||||||
|
@ -123,7 +123,7 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"C'est un petit niveau -- supprimez simplement une branche distante et faites-en une nouvelle (locale) avec `git fetch` pour terminer !"
|
"L'exercice pour ce niveau est simple : supprimez d'abord une branche distante puis terminez en en créant une nouvelle (locale) avec `git fetch` !"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,7 +149,7 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"### Le suivi des branches distantes",
|
"### Le suivi des branches distantes",
|
||||||
"",
|
"",
|
||||||
"Dans les dernières leçons, git savait que la branche `master` était reliée à `o/master`, et cela a pu paraître \"magique\". Il est certain que ces deux branches ont des noms similaires et il peut être logique de croire que la branche locale `master` est liée à la branche distante `master`, mais la relation n'est prouvée que dans deux scénarios :",
|
"Dans les dernières leçons, git savait que la branche `master` était reliée à `o/master`, et cela a pu vous paraître \"magique\". Il est certain que ces deux branches ont des noms similaires et il peut être logique de croire que la branche locale `master` est liée à la branche distante `master`, mais la relation n'est prouvée que dans deux scénarios :",
|
||||||
"",
|
"",
|
||||||
"* Pendant un pull, les commits sont téléchargés dans `o/master` et ensuite *fusionnés* (merge) dans la branche `master`. La cible impliquée dans cette fusion est déterminée par cette relation.",
|
"* Pendant un pull, les commits sont téléchargés dans `o/master` et ensuite *fusionnés* (merge) dans la branche `master`. La cible impliquée dans cette fusion est déterminée par cette relation.",
|
||||||
"* Pendant un push, le travail de la branche `master` a été envoyé sur la branche distante `master` (qui est localement représentée par `o/master`). La *destination* du push est déterminée par la relation entre `master` and `o/master`.",
|
"* Pendant un push, le travail de la branche `master` a été envoyé sur la branche distante `master` (qui est localement représentée par `o/master`). La *destination* du push est déterminée par la relation entre `master` and `o/master`.",
|
||||||
|
@ -163,13 +163,13 @@ exports.level = {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"## Remote tracking",
|
"## Remote tracking",
|
||||||
"",
|
"",
|
||||||
"Pour faire court, cette relation entre `master` et `o/master` est simplement expliquée par la propriété \"remote tracking\" (suivi distant) des branches. La branche `master` est configurée pour suivre `o/master` -- cela signifie qu'il y a une cible de fusion et une destination d'envoi pour la branche `master`.",
|
"Pour faire court, cette relation entre `master` et `o/master` est simplement portée par la propriété \"remote tracking\" (suivi distant) des branches. La branche `master` est configurée pour suivre `o/master` : cela signifie qu'il y a une cible de fusion et une destination d'envoi implicites pour la branche `master`.",
|
||||||
"",
|
"",
|
||||||
"Vous vous demandez peut-être comment cette propriété a été configurée pour la branche `master` alors que vous n'avez exécuté aucune commande pour le faire. Eh bien, quand vous clonez un dépôt avec git, cette propriété est configurée automatiquement. ",
|
"Vous vous demandez peut-être comment cette propriété a été configurée pour la branche `master` alors que vous n'avez exécuté aucune commande pour le faire. Eh bien, quand vous clonez un dépôt avec git, cette propriété est configurée automatiquement. ",
|
||||||
"",
|
"",
|
||||||
"Pendant le clonage, git crée une branche distante pour chaque branche du dépôt distant (i.e. des branches comme `o/master`). Il crée ensuite une branche locale qui suit la branche actuellement active sur le dépôt distant, qui se trouve être `master` dans la plupart des cas.",
|
"Pendant le clonage, git crée une branche distante pour chaque branche du dépôt distant (c'est à dire des branches comme `o/master`). Il crée ensuite une branche locale qui suit la branche actuellement active sur le dépôt distant, qui se trouve être `master` dans la plupart des cas.",
|
||||||
"",
|
"",
|
||||||
"Une fois que git clone est terminé, vous avez seulement une branche locale (comme ça vous n'êtes pas submergé) mais vous pouvez voir toutes les branches distantes (si vous êtes très curieux). C'est le mieux que l'on puisse vouloir !",
|
"Une fois que git clone est terminé, vous avez seulement une branche locale (comme ça vous n'êtes pas submergé) mais vous pouvez voir toutes les branches distantes (si vous êtes très curieux). C'est le compromis idéal !",
|
||||||
"",
|
"",
|
||||||
"Cela explique aussi pourquoi vous avez peut-être vu la sortie suivante pendant le clonage :",
|
"Cela explique aussi pourquoi vous avez peut-être vu la sortie suivante pendant le clonage :",
|
||||||
"",
|
"",
|
||||||
|
@ -181,15 +181,15 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"### Puis-je configurer cela moi-même ?",
|
"### Puis-je configurer cette relation moi-même ?",
|
||||||
"",
|
"",
|
||||||
"Oui vous pouvez ! Vous pouvez suivre `o/master` depuis n'importe quelle branche, et si vous le faîtes, cette branche va avoir la même destination de push et cible de merge que pour `master`. Cela signifie que vous pouvez exéctuer `git push` sur une branche nommée `totallyNotMaster` et envoyer vôtre travail sur la branche `master` du dépôt distant!",
|
"Absolument ! Vous pouvez suivre `o/master` depuis n'importe quelle branche, et si vous le faîtes, cette branche va avoir la même destination de push et cible de merge que pour `master`. Cela signifie que vous pouvez exécuter `git push` sur une branche nommée `totallyNotMaster` mais envoyer tout de même votre travail sur la branche `master` du dépôt distant !",
|
||||||
"",
|
"",
|
||||||
"Il y a deux façons de configurer cette propriété. La première est de se placer (checkout) sur une nouvelle branche en utilisant une branche distante comme argument (ref). Exécutons cela",
|
"Il y a deux façons de configurer cette propriété. La première est de créer une nouvelle branche en la branchant immédiatement sur la branche distante, à l'aide de `git checkout -b` :",
|
||||||
"",
|
"",
|
||||||
"`git checkout -b totallyNotMaster o/master`",
|
"`git checkout -b totallyNotMaster o/master`",
|
||||||
"",
|
"",
|
||||||
"Crée une nouvelle branche nommée `totallyNotMaster` et la configure pour suivre `o/master`."
|
"Cette commande crée une nouvelle branche nommée `totallyNotMaster` et la configure pour suivre `o/master`."
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -200,7 +200,7 @@ exports.level = {
|
||||||
"Assez parlé, faisons une démonstration ! Nous allons nous placer sur une nouvelle branche nommée `foo` et la configurer pour suivre `master` du dépôt distant."
|
"Assez parlé, faisons une démonstration ! Nous allons nous placer sur une nouvelle branche nommée `foo` et la configurer pour suivre `master` du dépôt distant."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Comme vous pouvez le voir, nous avons utilisé la cible de fusion de `o/master` pour mettre à jour la branche `foo`. Remarquez comme master n'a pas été mise à jour !!"
|
"Comme vous pouvez le voir, nous avons utilisé la cible de fusion déclarée pour `o/master` afin de mettre à jour la branche `foo`. Remarquez que la branche master n'a pas été mise à jour !!"
|
||||||
],
|
],
|
||||||
"command": "git checkout -b foo o/master; git pull",
|
"command": "git checkout -b foo o/master; git pull",
|
||||||
"beforeCommand": "git clone; git fakeTeamwork"
|
"beforeCommand": "git clone; git fakeTeamwork"
|
||||||
|
@ -210,10 +210,10 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Cela s'applique aussi pour git push"
|
"Cela s'applique aussi pour git push :"
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Boum. Nous avons envoyé nôtre travail sur `master` du dépôt distant alors que nôtre branche avait un nom totalement différent."
|
"Boum. Nous avons envoyé notre travail sur `master` vers le dépôt distant alors que notre branche avait un nom totalement différent."
|
||||||
],
|
],
|
||||||
"command": "git checkout -b foo o/master; git commit; git push",
|
"command": "git checkout -b foo o/master; git commit; git push",
|
||||||
"beforeCommand": "git clone"
|
"beforeCommand": "git clone"
|
||||||
|
@ -223,13 +223,13 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"### Way #2",
|
"### Méthode n°2",
|
||||||
"",
|
"",
|
||||||
"Une autre façon de configurer le suivi d'une branche est d'utiliser l'option `git branch -u`. Exécuter cela :",
|
"Une autre façon de configurer le suivi d'une branche est d'utiliser l'option `git branch -u`. La commande est alors :",
|
||||||
"",
|
"",
|
||||||
"`git branch -u o/master foo`",
|
"`git branch -u o/master foo`",
|
||||||
"",
|
"",
|
||||||
"va configurer la branche `foo` pour suivre `o/master`. Si `foo` est la branche courante, vous pouvez même ne pas le préciser:",
|
"Ce qui va configurer la branche `foo` (déjà existante) pour suivre `o/master`. Si `foo` est la branche courante, vous pouvez même ne pas la préciser :",
|
||||||
"",
|
"",
|
||||||
"`git branch -u o/master`",
|
"`git branch -u o/master`",
|
||||||
""
|
""
|
||||||
|
@ -240,10 +240,10 @@ exports.level = {
|
||||||
"type": "GitDemonstrationView",
|
"type": "GitDemonstrationView",
|
||||||
"options": {
|
"options": {
|
||||||
"beforeMarkdowns": [
|
"beforeMarkdowns": [
|
||||||
"Voyons cette autre manière de paramètrer rapidement le suivi d'une branche distante..."
|
"Voyons cette autre manière de paramètrer le suivi d'une branche distante..."
|
||||||
],
|
],
|
||||||
"afterMarkdowns": [
|
"afterMarkdowns": [
|
||||||
"Cela se passe comme avant, et c'est plus explicite. Cool !"
|
"C'est la même chose, et c'est juste un peu plus explicite. Cool !"
|
||||||
],
|
],
|
||||||
"command": "git branch -u o/master foo; git commit; git push",
|
"command": "git branch -u o/master foo; git commit; git push",
|
||||||
"beforeCommand": "git clone; git checkout -b foo"
|
"beforeCommand": "git clone; git checkout -b foo"
|
||||||
|
@ -253,7 +253,7 @@ exports.level = {
|
||||||
"type": "ModalAlert",
|
"type": "ModalAlert",
|
||||||
"options": {
|
"options": {
|
||||||
"markdowns": [
|
"markdowns": [
|
||||||
"Ok ! Pour ce niveau, envoyons le travail dans la branche distante `master` en ne se trouvant *pas* sur la branche `master` locale. Je vous laisse imaginer comment faire :P"
|
"Ok ! Pour ce niveau, envoyons notre travail sur la branche distante `master` en ne se trouvant *pas* sur la branche `master` locale. Je vous laisse chercher comment faire, puisque c'est une leçon de niveau avancé :P"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue