aboutsummaryrefslogtreecommitdiff
path: root/tuto git.txt
blob: 8b950e60ec120a224597e1033636f0cfcf33712c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
cours git openclassrooms

https://openclassrooms.com/fr/courses/5641721-utilisez-git-et-github-pour-vos-projets-de-developpement
https://wiki.archlinux.org/index.php/git


Git est un logiciel qui sert à gérer du code source. Ces fonctionnalités sont
- d'héberger du code:
- le contrôle de versions
- le travail collaboratif
En gros, il garde le code source d'un projet en gardant les anciennes versions,
De plus, il note quel utilisateur à déposé quel code.
Un code peut donc être vérifié par tout le monde avant que soit mis à jour le fichier principal.

C'est un système distribué, il est possible de se connecter à n'importe quel dépôt de la même manière.
Il sont interconnectés et apparaissent à l'utilisateur comme un seul serveur.


Configuration avec la console.

On doit d'abord donné un nom d'utilisateur et un mot de passe:
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com''

Pour activer les couleurs:
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto

Choix d'un éditeur (par défaut vim, on peut en choisir un graphique):
git config --global core.editor nano
git config --global merge.tool vimdiff

Pour le master se nomme toujours master:
git config --global init.defaultBranch master

Pour afficher toutes les règles choisies:
git config --list


Aspect général de l'utilisation de git.

1/ Créer un dépôt, on a pour ça deux possibilités:
- créer un dépôt local
- Créer un compte github (ou autre) et "forker" un projet (open source du coup).

2/ Sur son PC, créer un dossier avec le nom du projet, puis initialiser:
	mkdir projet
	cd projet
	git init
Ce "projet" peut être perso (et hébergé sur github ou autre) ou un projet open source auquel on contribue.
Il contient maintenant un dossier caché: .git

3/ récuperer l'URL du projet (bouton vert clone or download)
et lier le projet à notre dépôt local avec la commande:
	git remote add OC https://github.com/OpenClassrooms-Student-Center/ProjetOpenSource.git

4/ cloner le projet sur son propre dépôt github et entrer dedans:
	git clone https://github.com/OpenClassrooms-Student-Center/ProjetOpenSource.git
	cd ProjetOpenSource
Ce sous-dossier contient aussi un dossier caché .git

L'ensemble des fichiers et dossiers du projet est visible avec l'explorateur de fichiers.
Le terminal quand à lui va nous afficher des branches.
Au début, on a juste le "master", c'est à dire la version d'origine, on ne la modifiera jamais.

5/ Créer une branche sur laquelle on codera:
	git branch modifs

Lorsque le nouveau code sera satisfaisant, on pourra chercher à l'ajouter au "master".
Git est justement capable de fusionner proprement l'ancien code avec le nouveau
en sachant quelles sont les portions qui ont changé et si il y a des conflits entre branches.
Si on travaille à plusieurs, on confira une partie du projet à chaque personne, sans croisement.

Pour connaître les branches d'un projet:
	git branch
J'obtients:
	* master
	  modifs
Les fichiers que je vois dans l'explorateur de fichiers sont donc ceux du master.

6/ Il est temps de coder!
On passe d'une branche à l'autre:.
	git checkout modifs
	git checkout master
Les fichiers visibles avec l'explorateur de fichiers sont maintenant ceux de la branche modifs.
Je suis dans une sorte de monde parallèle où je peux coder sans que ça impacte les originaux,
Je suis physiquement toujours dans le même dossier, mais dans une autre version de celui-ci.

projet
	|-> .git
	|-> nom_du_dossier cloné
		|-> .git
		|-> fichiers & dossiers sources

7/ Quand j'ai fini de coder, j'enregistre les changements dans git:
	git commit -m "nom descriptif pour s'y retrouver"
Le master ne change pas, ce qu'on vient de faire est une sorte de photo de la branche à un instant T.

8/ Pour mettre à jour le master distant:
	git push
Le mode de passe du compte sur le serveur est demandé.

9/ Demander au responsable du projet open source d'intégrer notre travail au projet.
Lui laisser un commentaire avec des explications sur les "améliorations" apportées,
le responsable du projet acceptera ou non la mise à jour.
On appelle ça une "pull request".


				projet open source
					|		^
				fork		pull request
					v		|
				dépôt perso distant
				/					^
		clonage					commit + push
			v						|
dépôt local master		=>		dépôt local branche


Travailler en local.