You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/01-introduction/sections/about-version-control.asc
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
== À propos de la gestion de version
1
+
===À propos de la gestion de version
2
2
3
3
(((gestion de version)))
4
4
Qu'est-ce que la gestion de version et pourquoi devriez-vous vous en soucier ?
@@ -10,7 +10,7 @@ Il vous permet de ramener un fichier à un état précédent, de ramener le proj
10
10
Utiliser un VCS signifie aussi généralement que si vous vous trompez ou que vous perdez des fichiers, vous pouvez facilement revenir à un état stable.
11
11
De plus, vous obtenez tous ces avantages avec peu de travail additionnel.
12
12
13
-
=== Les systèmes de gestion de version locaux
13
+
====Les systèmes de gestion de version locaux
14
14
15
15
(((gestion de version,locale)))
16
16
La méthode courante pour la gestion de version est généralement de recopier les fichiers dans un autre répertoire (peut-être avec un nom incluant la date dans le meilleur des cas).
@@ -25,7 +25,7 @@ image::images/local.png[Diagramme de gestion de version locale]
25
25
Un des systèmes les plus populaires était RCS, qui est encore distribué avec de nombreux systèmes d'exploitation aujourd'hui.
26
26
Cet outil fonctionne en conservant des ensembles de patchs (c'est-à-dire la différence entre les fichiers) d'une version à l'autre dans un format spécial sur disque ; il peut alors restituer l'état de n'importe quel fichier à n'importe quel instant en ajoutant toutes les différences.
27
27
28
-
=== Les systèmes de gestion de version centralisés
28
+
==== Les systèmes de gestion de version centralisés
29
29
30
30
(((gestion de version, centralisée)))
31
31
Le problème majeur que les gens rencontrent est qu'ils ont besoin de collaborer avec des développeurs sur d'autres ordinateurs.
@@ -46,7 +46,7 @@ Si ce serveur est en panne pendant une heure, alors durant cette heure, aucun cl
46
46
Si le disque dur du serveur central se corrompt, et s'il n'y a pas eu de sauvegarde, vous perdez absolument tout de l'historique d'un projet en dehors des sauvegardes locales que les gens auraient pu réaliser sur leurs machines locales.
47
47
Les systèmes de gestion de version locaux souffrent du même problème — dès qu'on a tout l'historique d'un projet sauvegardé à un endroit unique, on prend le risque de tout perdre.
48
48
49
-
=== Les systèmes de gestion de version distribués
49
+
==== Les systèmes de gestion de version distribués
50
50
51
51
(((gestion de version, distribuée)))
52
52
C'est à ce moment que les systèmes de gestion de version distribués entrent en jeu (DVCS en anglais pour _Distributed Version Control Systems_).
Copy file name to clipboardExpand all lines: book/01-introduction/sections/basics.asc
+13-12Lines changed: 13 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,11 @@
1
-
== Rudiments de Git
1
+
===Rudiments de Git
2
2
3
3
Donc, qu'est-ce que Git en quelques mots ?
4
4
Il est important de bien comprendre cette section, parce que si on comprend la nature de Git et les principes sur lesquels il repose, alors utiliser efficacement Git devient simple.
5
5
Au cours de l'apprentissage de Git, essayez de libérer votre esprit de ce que vous pourriez connaître d'autres VCS, tels que Subversion et Perforce ; ce faisant, vous vous éviterez de petites confusions à l'utilisation de cet outil.
6
6
Git enregistre et gère l'information très différemment des autres systèmes, même si l'interface utilisateur paraît similaire ; comprendre ces différences vous évitera des surprises.(((Subversion)))(((Perforce)))
7
7
8
-
=== Des instantanés, pas des différences
8
+
====Des instantanés, pas des différences
9
9
10
10
La différence majeure entre Git et les autres VCS (Subversion et autres) réside dans la manière dont Git considère les données.
11
11
Au niveau conceptuel, la plupart des autres systèmes gèrent l'information comme une liste de modifications de fichiers.
@@ -20,15 +20,15 @@ Git ne gère pas et ne stocke pas les informations de cette manière.
20
20
Pour être efficace, si les fichiers n'ont pas changé, Git ne stocke pas le fichier à nouveau, juste une référence vers le fichier original qu'il a déjà enregistré.
21
21
Git pense ses données plus à la manière d'un *flux d'instantanés*.
22
22
23
-
.Git stocke les données comme des instantanés du projet au cours du temps.
23
+
.Stockage des données comme des instantanés du projet au cours du temps.
24
24
image::images/snapshots.png[Git stocke les données comme des instantanés du projet au cours du temps.]
25
25
26
26
C'est une distinction importante entre Git et quasiment tous les autres VCS.
27
27
Git a reconsidéré quasiment tous les aspects de la gestion de version que la plupart des autres systèmes ont copiés des générations précédentes.
28
28
Git ressemble beaucoup plus à un mini système de fichiers avec des outils incroyablement puissants construits dessus, plutôt qu'à un simple VCS.
29
29
Nous explorerons les bénéfices qu'il y a à penser les données de cette manière quand nous aborderons la gestion de branches dans <<ch03-git-branching#ch03-git-branching>>.
30
30
31
-
=== Presque toutes les opérations sont locales
31
+
==== Presque toutes les opérations sont locales
32
32
33
33
La plupart des opérations de Git ne nécessitent que des fichiers et ressources locaux — généralement aucune information venant d'un autre ordinateur du réseau n'est nécessaire.
34
34
Si vous êtes habitué à un CVCS où toutes les opérations sont ralenties par la latence des échanges réseau, cet aspect de Git vous fera penser que les dieux de la vitesse ont octroyé leurs pouvoirs à Git.
@@ -46,7 +46,7 @@ Avec Perforce par exemple, vous ne pouvez pas faire grand-chose tant que vous n'
46
46
Avec Subversion ou CVS, vous pouvez éditer les fichiers, mais vous ne pourrez pas soumettre des modifications à votre base de données (car celle-ci est sur le serveur non accessible).
47
47
Cela peut sembler peu important a priori, mais vous seriez étonné de découvrir quelle grande différence cela peut constituer à l'usage.
48
48
49
-
=== Git gère l'intégrité
49
+
==== Git gère l'intégrité
50
50
51
51
Dans Git, tout est vérifié par une somme de contrôle avant d'être stocké et par la suite cette somme de contrôle, signature unique, sert de référence.
52
52
Cela signifie qu'il est impossible de modifier le contenu d'un fichier ou d'un répertoire sans que Git ne s'en aperçoive.
@@ -65,7 +65,7 @@ Une empreinte SHA-1 ressemble à ceci :
65
65
Vous trouverez ces valeurs à peu près partout dans Git car il les utilise pour tout.
66
66
En fait, Git stocke tout non pas avec des noms de fichiers, mais dans la base de données Git indexée par ces valeurs.
67
67
68
-
=== Généralement, Git ne fait qu'ajouter des données
68
+
==== Généralement, Git ne fait qu'ajouter des données
69
69
70
70
Quand vous réalisez des actions dans Git, la quasi-totalité d'entre elles ne font qu'ajouter des données dans la base de données de Git.
71
71
Il est très difficile de faire réaliser au système des actions qui ne soient pas réversibles ou de lui faire effacer des données d'une quelconque manière.
@@ -74,18 +74,19 @@ Par contre, comme dans la plupart des systèmes de gestion de version, vous pouv
74
74
Cela fait de l'usage de Git un vrai plaisir, car on peut expérimenter sans danger de casser définitivement son projet.
75
75
Pour une information plus approfondie sur la manière dont Git stocke ses données et comment récupérer des données qui pourraient sembler perdues, référez-vous à <<ch02-git-basics#s_undoing>>.
76
76
77
-
=== Les trois états
77
+
==== Les trois états
78
78
79
79
Un peu de concentration maintenant.
80
80
Il est primordial de se souvenir de ce qui suit si vous souhaitez que le reste de votre apprentissage s'effectue sans difficulté.
81
-
Git gère trois états dans lesquels les fichiers peuvent résider : validé, modifié et indexé.
82
-
Validé signifie que les données sont stockées en sécurité dans votre base de données locale.
83
-
Modifié signifie que vous avez modifié le fichier mais qu'il n'a pas encore été validé en base.
84
-
Indexé signifie que vous avez marqué un fichier modifié dans sa version actuelle pour qu'il fasse partie du prochain instantané du projet.
81
+
Git gère trois états dans lesquels les fichiers peuvent résider : _modifié_, _indexé_ et _validé_.
82
+
83
+
* Modifié signifie que vous avez modifié le fichier mais qu'il n'a pas encore été validé en base.
84
+
* Indexé signifie que vous avez marqué un fichier modifié dans sa version actuelle pour qu'il fasse partie du prochain instantané du projet.
85
+
* Validé signifie que les données sont stockées en sécurité dans votre base de données locale.
85
86
86
87
Ceci nous mène aux trois sections principales d'un projet Git : le répertoire Git, le répertoire de travail et la zone d'index.
87
88
88
-
.Répertoire de travail, zone d'index et répertoire Git.
89
+
.Répertoire de travail, zone d'index et répertoire Git
89
90
image::images/areas.png["Répertoire de travail, zone d'index et répertoire Git."]
90
91
91
92
Le répertoire Git est l'endroit où Git stocke les méta-données et la base de données des objets de votre projet.
Copy file name to clipboardExpand all lines: book/01-introduction/sections/first-time-setup.asc
+65-16Lines changed: 65 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,27 +1,35 @@
1
1
[[s_first_time]]
2
-
== Paramétrage à la première utilisation de Git
2
+
===Paramétrage à la première utilisation de Git
3
3
4
4
Maintenant que vous avez installé Git sur votre système, vous voudrez personnaliser votre environnement Git.
5
5
Vous ne devriez avoir à réaliser ces réglages qu'une seule fois ; ils persisteront lors des mises à jour.
6
6
Vous pouvez aussi les changer à tout instant en relançant les mêmes commandes.
7
7
8
-
Git contient un outil appelé `git config` pour vous permettre de voir et modifier les variables de configuration qui contrôlent tous les aspects de l'apparence et du comportement de Git.
8
+
Git contient un outil appelé `git config` pour vous permettre de voir et modifier les variables de configuration qui contrôlent tous les aspects de l'apparence et du comportement de Git.(((commandes git, config)))
9
9
Ces variables peuvent être stockées dans trois endroits différents :
10
10
11
-
* Fichier `/etc/gitconfig` : Contient les valeurs pour tous les utilisateurs et tous les dépôts du système.
12
-
Si vous passez l'option `--system` à `git config`, il lit et écrit ce fichier spécifiquement.
13
-
* Fichier `~/.gitconfig` : Spécifique à votre utilisateur.
14
-
Vous pouvez forcer Git à lire et écrire ce fichier en passant l'option `--global`.
15
-
* Fichier `config` dans le répertoire Git (c'est-à-dire `.git/config`) du dépôt en cours d'utilisation : spécifique au seul dépôt en cours.
11
+
1. `[chemin]/etc/gitconfig` : Contient les valeurs pour tous les utilisateurs et tous les dépôts du système. Si vous passez l'option `--system` à `git config`, il lit et écrit ce fichier spécifiquement. Parce que c'est un fichier de configuration au niveau système, vous aurez besoin de privilèges admnistrateur ou super-utilisateur pour le modifier.
12
+
2. Fichier `~/.gitconfig` : Spécifique à votre utilisateur.
13
+
Vous pouvez forcer Git à lire et écrire ce fichier en passant l'option `--global` et cela affecte _tous_ les dépôts avec lesquels vous travaillez sur ce système.
14
+
3. Fichier `config` dans le répertoire Git (c'est-à-dire `.git/config`) du dépôt en cours d'utilisation : spécifique au seul dépôt en cours.
15
+
Vous pouvez forcer Git à lire et écrire dans ce fichier avec l'option `--local``, mais c'est en fait l'option par défaut.
16
+
Sans surprise, le répertoire courant doit être dans un dépôt Git pour que cette fonctionne correctement.
16
17
17
-
Chaque niveau surcharge le niveau précédent, donc les valeurs dans `.git/config` surchargent celles de `/etc/gitconfig`.
18
+
Chaque niveau surcharge le niveau précédent, donc les valeurs dans `.git/config` surchargent celles de `[chemin]/etc/gitconfig`.
18
19
19
20
Sur les systèmes Windows, Git recherche le fichier `.gitconfig` dans le répertoire `$HOME` (`%USERPROFILE%` dans l’environnement natif de Windows) qui est `C:\Documents and Settings\$USER` ou `C:\Users\$USER` la plupart du temps, selon la version (`$USER` devient `%USERNAME%` dans l’environnement de Windows).
20
21
Il recherche tout de même `/etc/gitconfig`, bien qu'il soit relatif à la racine MSys, qui se trouve où vous aurez décidé d'installer Git sur votre système Windows.
21
22
Si vous utilisez une version 2.x ou supérieure de Git pour Windows, il y a aussi un fichier de configuration système à `C:\Documents and Settings\All Users\Application Data\Git\config` sur Windows XP, et dans `C:\ProgramData\Git\config` sur Windows Vista et supérieur.
22
23
Ce fichier de configuration ne peut être modifié qu'avec la commande `git config -f <fichier>` en tant qu'administrateur.
23
24
24
-
=== Votre identité
25
+
Vous pouvez voir tous vos paramétrages et d'où ils viennent en utilisant :
26
+
27
+
[source,console]
28
+
----
29
+
$ git config --list --show-origin
30
+
----
31
+
32
+
==== Votre identité
25
33
26
34
La première chose à faire après l'installation de Git est de renseigner votre nom et votre adresse de courriel.
27
35
C'est une information importante car toutes les validations dans Git utilisent cette information et elle est indélébile dans toutes les validations que vous pourrez réaliser :
@@ -37,25 +45,54 @@ Si vous souhaitez surcharger ces valeurs avec un nom ou une adresse de courriel
37
45
38
46
De nombreux outils graphiques vous aideront à le faire la première fois que vous les lancerez.
39
47
40
-
=== Votre éditeur de texte
48
+
==== Votre éditeur de texte
41
49
42
50
À présent que votre identité est renseignée, vous pouvez configurer l'éditeur de texte qui sera utilisé quand Git vous demande de saisir un message.
43
51
Par défaut, Git utilise l'éditeur configuré au niveau système, qui est généralement Vi ou Vim.
52
+
44
53
Si vous souhaitez utiliser un éditeur de texte différent, comme Emacs, vous pouvez entrer ce qui suit :
45
54
46
55
[source,console]
47
56
----
48
57
$ git config --global core.editor emacs
49
58
----
50
59
60
+
On a Windows system, if you want to use a different text editor, you must specify the full path to its executable file.
61
+
This can be different depending on how your editor is packaged.
62
+
63
+
In the case of Notepad++, a popular programming editor, you are likely to want to use the 32-bit version, since at the time of writing the 64-bit version doesn't support all plug-ins.
64
+
If you are on a 32-bit Windows system, or you have a 64-bit editor on a 64-bit system, you'll type something like this:
Vim, Emacs et Notepad++ sont des éditeurs de texte populaires chez les développeurs sur les systèmes à base Unix tels que Linux et macOS.
74
+
Si vous utilisez un autre éditeur, ou une version 32-bit, veuillez trouver des instructions spécifiques sur la mise en place de votre éditeur favori avec Git dans <<C-git-commands#ch_core_editor>>.
75
+
====
76
+
51
77
[WARNING]
52
78
====
53
-
Vim et Emacs sont des éditeurs de texte populaires chez les développeurs sur les systèmes à base Unix tels que Linux et macOS.
54
-
Si vous n'êtes habitué à aucun de ces deux éditeurs ou utilisez un système Windows, il se peut que vous deviez chercher les instructions pour renseigner votre éditeur favori.
55
-
Si vous ne renseignez pas un éditeur et ne connaissez pas Vim ou Emacs, vous risquez fort d'avoir des surprises lorsqu'ils démarreront.
79
+
Si vous ne renseignez pas un éditeur et ne connaissez pas Vim ou Emacs, vous risquez fort d'avoir des surprises lorsque Git tentera de les démarrera.
80
+
Sous Windows par exemple, l'opération de Git pourrait être terminée prématurément pendant une demande de Git à saisir un texte.
56
81
====
57
82
58
-
=== Vérifier vos paramètres
83
+
==== Your default branch name
84
+
85
+
By default Git will create a branch called _master_ when you create a new repository with `git init`.
86
+
From Git version 2.28 onwards, you can set a different name for the initial branch.
87
+
88
+
To set _main_ as the default branch name do:
89
+
90
+
[source,console]
91
+
----
92
+
$ git config --global init.defaultBranch main
93
+
----
94
+
95
+
==== Vérifier vos paramètres
59
96
60
97
Si vous souhaitez vérifier vos réglages, vous pouvez utiliser la commande `git config --list` pour lister tous les réglages que Git a pu trouver jusqu'ici :
61
98
@@ -71,8 +108,8 @@ color.diff=auto
71
108
…
72
109
----
73
110
74
-
Vous pourrez voir certains paramètres apparaître plusieurs fois car Git lit les mêmes paramètres depuis plusieurs fichiers (`/etc/gitconfig` et `~/.gitconfig`, par exemple).
75
-
Git utilise la dernière valeur pour chaque paramètre.
111
+
Vous pourrez voir certains paramètres apparaître plusieurs fois car Git lit les mêmes paramètres depuis plusieurs fichiers (`[chemin]/etc/gitconfig` et `~/.gitconfig`, par exemple).
112
+
Git utilise la dernière valeur pour chaque paramètre unique qu'il lit.
76
113
77
114
Vous pouvez aussi vérifier la valeur effective d'un paramètre particulier en tapant `git config <paramètre>` :(((commandes git, config)))
78
115
@@ -81,3 +118,15 @@ Vous pouvez aussi vérifier la valeur effective d'un paramètre particulier en t
81
118
$ git config user.name
82
119
John Doe
83
120
----
121
+
122
+
[NOTE]
123
+
====
124
+
Since Git might read the same configuration variable value from more than one file, it's possible that you have an unexpected value for one of these values and you don't know why.
125
+
In cases like that, you can query Git as to the _origin_ for that value, and it will tell you which configuration file had the final say in setting that value:
Copy file name to clipboardExpand all lines: book/01-introduction/sections/help.asc
+26-1Lines changed: 26 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
[[s_git_help]]
2
-
== Obtenir de l'aide
2
+
===Obtenir de l'aide
3
3
4
4
Si vous avez besoin d'aide pour utiliser Git, il y a trois moyens d'obtenir les pages de manuel pour toutes les commandes de Git :
5
5
@@ -21,3 +21,28 @@ $ git help config
21
21
Ces commandes sont vraiment sympathiques car vous pouvez y accéder depuis partout, y compris hors connexion.
22
22
Si les pages de manuel et ce livre ne sont pas suffisants, vous pouvez essayer les canaux `#git` ou `#github` sur le serveur IRC Freenode (irc.freenode.net).
23
23
Ces canaux sont régulièrement fréquentés par des centaines de personnes qui ont une bonne connaissance de Git et sont souvent prêtes à aider.(((IRC)))
24
+
25
+
In addition, if you don't need the full-blown manpage help, but just need a quick refresher on the available options for a Git command, you can ask for the more concise "`help`" output with the `-h` option, as in:
26
+
27
+
[source,console]
28
+
----
29
+
$ git add -h
30
+
usage: git add [<options>] [--] <pathspec>...
31
+
32
+
-n, --dry-run dry run
33
+
-v, --verbose be verbose
34
+
35
+
-i, --interactive interactive picking
36
+
-p, --patch select hunks interactively
37
+
-e, --edit edit current diff and apply
38
+
-f, --force allow adding otherwise ignored files
39
+
-u, --update update tracked files
40
+
--renormalize renormalize EOL of tracked files (implies -u)
41
+
-N, --intent-to-add record only the fact that the path will be added later
42
+
-A, --all add changes from all tracked and untracked files
43
+
--ignore-removal ignore paths removed in the working tree (same as --no-all)
44
+
--refresh don't add, only refresh the index
45
+
--ignore-errors just skip files which cannot be added because of errors
46
+
--ignore-missing check if - even missing - files are ignored in dry run
47
+
--chmod (+|-)x override the executable bit of the listed files
0 commit comments