Soutenir Vision du Web dans son partage de logiciels et de ressources libres

Ce mineur crée de la monnaie numérique Monero pour soutenir Vision du web.
Merci de désactiver votre bloqueur de publicité.
Aucune publicité ne sera affichée.
Le mineur utilise les ressources de votre machine pour créer gratuitement de la monnaie numérique.
Le montant des donations pour Vision du web est de 0.026200479236572 Monero.

Installer et utiliser Git sur Debian

De Wiki. Analyse, Communication, Développement, Hacking.
Aller à : navigation, rechercher
Naviguer sur le wiki : Accueil du wiki - Sommaire Administrateur - Sommaire des projets - Sommaire pour Webmaster - Sommaire We make Hack
Naviguer sur le site : Accueil du site - Les annuaires - Les éditoriaux - Le forum - Les outils - Les projets
Les deux liens suivants sont des outils qui vous assistent pour écrire en Markdown : Stackedit et Tables Generator.
Pour participer à la rédaction du contenu sur ce wiki il est nécessaire de créer un compte utilisateur.

Installer GIT sous Debian

Dépôt git.
GIT permet de versionner son code source pour suivre son évolution.
Le Git repository est le dépôt à proprement parler.
Un commit enregistre les modifications apportées depuis le commit précédent.
Une branche est un pointeur sur un commit.
Un tag est une étiquette associée à un commit et peut être annotée par son créateur.
La Staging area, ou Index, sert d'aide à la création d'un commit.
C'est une zone particulière gérée par Git dans laquelle on ajoute des « photos » des fichiers.
Quand cette zone est cohérente avec tous les fichiers dont nous voulons enregistrer la version, il suffit de commit la staging area.
La Working copy, ou Copie de travail, est le répertoire de travail contenant les fichiers du projet.
Git enregistre sur quelle branche elle pointe, la référence HEAD, afin de placer correctement le prochain commit.

Installer GIT

sudo apt-get install git git-man gitk git-gui

Installer Git et git-man
Installer l'utilitaire graphique gitk pour gérer la Staging area et visualiser les branches et les commits.
Installer l'utilitaire graphique git-gui pour consulter l'historique et pour gérer le dépôt.

Configuration de GIT

git config --global user.name "<user>" ( Exemple : git config --global user.name "Zer00CooL" )

git config --global user.email "<email>" ( Exemple : git config --global user.email "[email protected]" )

Ajouter un nom d'utilisateurs et son mail. Ces informations apparaîtrons dans les commits de l'historique.

Définir un répertoire de travail

git init /home/user/path/GIT/

Exemple de réponse suite à cette commande : Dépôt Git vide initialisé dans /home/utilisateur/CODER/GIT/.git/
Le dépôt est créé directement dans le répertoire de travail.
GIT peut maintenant gérer les versions des fichiers dans le dépôt.

Working Directory

Créer le git commit initial

En ligne de commande

cd /home/user/path/GIT/ (Se positionner dans le dossier de la Working copy.)

echo "Créer un fichier" > README (Création d'un fichier README.)

git add README (Ajout du fichier README à la Staging area.)

git commit -m "Mon premier commit." (Commit de la Staging area avec le commentaire « Mon premier commit. ». Le premier commit a pour effet de créer la branche « master » et d'y ajouter le commit.)

En réponse dans la console :
[master (commit racine) 7b960a7] GIT DEPOT 001 First - En transition
1 file changed, 1 insertion(+)
create mode 100644 README

Manuel des commandes à télécharger depuis Développez : http://loic-guibert.developpez.com/tutoriels/git/get-started/fichiers/git-cheatsheet.pdf

Avec git gui

Utiliser l'utilitaire graphique git gui pour créer facilement le premier commit depuis le répertoire de travail.
git-gui facilite les commit : ajout/retrait de fichiers dans la Staging area, commit avec un commentaire.
Avec git-gui, les utilisateurs qui vont partager des fichiers entre Linux et Windows vont avoir des problèmes de retour chariot.
Rester vigilant lorsque plusieurs systèmes d'exploitation utilisent le même dépôt.

Avec gitk

L'utilitaire gitk n'est pas très beau visuellement.
L'utilitaire git-gui a besoin de gitk pour pouvoir gérer les historiques de versions.
Le travail local est maintenant possible grâce à git :
Suivi des modifications des données avec l'historique, création de branches, fusion, retour en arrière...
Gitk est vraiment Rox.
Définition: ROX sont les initiales de "RISC OS on X". C'est un logiciel libre distribué selon les termes de la licence GNU GPL.

Utiliser Git webui

D'autres outils existent pour utiliser Git.
Git webui permet d'utiliser Git en mode graphique depuis un navigateur web.
Mise en place de façades : Serveur HTTP/HTTPS pour l'accès au dépôt, application web de navigation dans le dépôt...
Source : https://github.com/alberthier/git-webui

Désinstaller git proprement

Si nécessaire, désinstaller git, git-gui, gitk, de la façon suivante.

sudo apt-get purge git

sudo apt-get autoclean git

sudo apt-get clean git

Travail en équipe

Pour commencer simplement nous mettons tout le monde au même niveau.
Pas de gestion de rôles ni de droits sur les dépôts.
Mise en place d'un dépôt central de référence, dépôt public du projet qui va contenir le travail d'équipe.
Chaque développeur a en local une copie liée au dépôt de référence.
Chaque développeur travaille sur sa branche locale et rapatrie régulièrement les modifications du dépôt de référence pour être à jour.
Il fait l'intégration de son travail sur la branche publique concernée (rebase/merge...).
Il pousse les modifications de la branche publique sur le dépôt de référence (origin/master).
Ces dépôts contiennent, au minimum, une branche locale de travail.

Organiser le dépôt central.

Installer et configurer un serveur SSH pour pousser vers un dépôt Git distant

Installer Openssh : sudo apt-get install openssh openssh-client

Ouvrir le port SSH sur la box qui délivre la connexion internet.

Créer un utilisateur système pour Git

Cet utilisateur système zer00cool dédié à Git sera utilisé pour se connecter au dépôt via le serveur SSH.

Ne pas utiliser un nom d'utilisateur avec des majuscules

sudo adduser --no-create-home --home /var/git --shell /bin/bash Zer00CooL

[sudo] Mot de passe de zencool : 
adduser : veuillez entrer un nom d'utilisateur identique à l'expression régulière configurée
via la variable de configuration NAME_REGEX[_SYSTEM]. Utiliser l'option « --force-badname »
pour assouplir cette vérification ou reconfigurer NAME_REGEX.

Les majuscules provoquent une erreur, on relance la commande avec un nom d'utilisateur en minuscules.

Utiliser un nom d'utilisateur avec des minuscules

sudo adduser --no-create-home --home /var/git --shell /bin/bash zer00cool

[sudo] Mot de passe de l'utilisateur root : 
Ajout de l'utilisateur « zer00cool » ...
Ajout du nouveau groupe « zer00cool » (1001) ...
Ajout du nouvel utilisateur « zer00cool » (1001) avec le groupe « zer00cool » ...
Le répertoire personnel « /var/git » n'a pas été créé.
Entrez le nouveau mot de passe UNIX : 
Retapez le nouveau mot de passe UNIX : 
passwd : le mot de passe a été mis à jour avec succès
Modification des informations relatives à l'utilisateur zer00cool
Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
Nom complet []:
N° de bureau [0]:
Téléphone professionnel []:
Téléphone personnel []:
Autre []:

Information complémentaires

Si nécessaire : changer les informations d'un utilisateur chfn.
Si nécessaire : changer le mot de passe d'un utilisateur sudo passwd zer00cool.

Créer le dossier git dans le dossier var

sudo mkdir /var/git

sudo chown zer00cool:zer00cool /var/git

sudo chmod 2775 /var/git

A appliquer : il est possible de mettre des droits moins permissif avec chmod 775 -R /var/git

Todo.png

Création du dépôt sans working copy

L'option --bare pour ne pas avoir de working copy.

Nommer projets.git à votre convenance.

su zer00cool

git init --bare /var/git/projets.git

Dépôt Git vide initialisé dans /var/git/projets.git/

Suivant votre configuration du serveur SSH, faites le nécessaire afin qu'il soit possible de se connecter avec l'utilisateur Git zer00cool en SSH sur cette machine.
Configurer SSH.

Todo.png

Tester et initialiser le dépôt

Récupérer le dépôt

cd /tmp

Changer :22 par le port utilisé pour SSH.

git clone ssh://[email protected]:22/~/projets.git NomDuPremierDepot

git clone ssh://[email protected]:22/~/projets.git NomDuPremierDepot
Clonage dans 'NomDuPremierDepot'...
ssh_exchange_identification: read: Connection reset by peer
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Ici, le fichier hosts.deny me bloquait SSH car configuré en mode parano, je bloquais toutes les connexions. Autoriser SSH depuis hosts.allow.

cd /tmp
git clone ssh://[email protected]:22/~/projets.git NomDuPremierDepot
Clonage dans 'NomDuPremierDepot'...
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:QAfc3awmrnSUyMWsJ6PIL48dJmXUVsX26D4BSaZumSs.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
[email protected]'s password: 
warning: Vous semblez avoir cloné un dépôt vide.
Vérification de la connectivité... fait.
La clé ssh est stockée dans le fichier /var/git/.ssh/known_hosts

Commit initial

Todo.png

cd /tmp/NomDuPremierDepot

echo "Répertoire contenant le sources du projet XXX" > README

git add README

git commit -m "commit initial"

git push origin master:master

Nettoyage. cd ..<code>

<code>rm -rf NomDuPremierDepot

A suivre

Todo.png

Source du tutoriel : http://loic-guibert.developpez.com/tutoriels/git/get-started/
Tutoriel complémentaire : http://jc.etiemble.free.fr/abc/index.php/realisations/trucs-astuces/git_linux0
Installer et configurer un serveur GIT sous Linux : https://www.val-r.fr/geek/softwares/git/installer-et-configurer-un-serveur-git-sous-linux
Les problématiques hiérarchiques (gestion des différents rôles/droits des utilisateurs)
Les aspects sécurité - mise en place de clé publique/privée pour les accès SSH, gestion des utilisateurs sur le dépôt.

Les bases de GIT pour versionner le code source

Ok-ko.png https://git-scm.com/book/fr/v1/Les-bases-de-Git
Ok-ko.png http://git-scm.com/book/fr/v2
Ok-ko.png http://www.git-scm.com/book/fr/v2/Les-bases-de-Git-Travailler-avec-des-d%C3%A9p%C3%B4ts-distants
Ok-ko.png Enregistrer les modifications dans le dépôt
Ok-ko.png https://git-scm.com/book/fr/v1/Les-bases-de-Git-Enregistrer-des-modifications-dans-le-d%C3%A9p%C3%B4t
Ok-ko.png Liste des hébergeurs GIT en ligne et de leurs options
Ok-ko.png https://git.wiki.kernel.org/index.php/GitHosting
Ok-ko.png Télécharger le PDF Visual cheat-sheet Git (Sur Développez, avec accès membre.)
Ok-ko.png http://www.developpez.com/telechargements/auth/id/424de0e60f44247edbd7713c5364e547
Ok-ko.png http://guidella.free.fr/General/utilisationGit.html

Notes

Microsoft 0 - GNU/Linux 1

Attention aux caractères spéciaux ça pose aussi quelques soucis.
Si vous êtes sur un server GNU/Linux, enlever de suite les utilisateurs windows de votre dépôt ou vous allez avoir des problèmes de retour chariot à chaque fois qu'ils pousseront (push).

La base

[isador34]: fait des branches plutôt
[ZerooCool]: isador34> Donc, je conserve mon dépot actuel GIT que j'ai git init et, je dois voir comment créer des branches, pour les dossiers A, B, C, D
[isador34]: voila, mais avant de faire t'es branche enleve les projet de ta branche master
[ZerooCool]: ok, donc, je vide tout, je crée mes branches, puis, j'ajoute le contenu.


git pull se mettre à jour.

git commit -a mettre à jour le dépôt local avec les modifications.

git push Envoyer les modifications sur le git en ligne.

git add X Rajouter dossier X au commit -a pour pouvoir le pousser ensuite sur le git.


Virer les dépôts Windows ? C'est pas un peu extrême ? Tu me connais, j'aime bien faire à ma sauce. Avec Github, sous windows, il faut le paramétrer correctement, et, pas de problèmes de retours. Je pense que ça se configure très simplement au niveau du serveur et/ou du client.


Formatage et espaces blancs Les problèmes de formatage et de blancs sont parmi les plus subtils et frustrants que les développeurs rencontrent lorsqu'ils collaborent, spécifiquement d'une plate-forme à l'autre. Il est très facile d'introduire des modifications subtiles de blancs lors de soumission de patchs ou d'autres modes de collaboration, car les éditeurs de textes les insèrent silencieusement ou les programmeurs Windows ajoutent des retours chariot à la fin des lignes qu'il modifient. Git dispose de quelques options de configuration pour traiter ces problèmes. core.autocrlf

Si vous programmez vous-même sous Windows ou si vous utilisez un autre système d'exploitation mais devez travailler avec des personnes travaillant sous Windows, vous rencontrerez à un moment ou à un autre des problèmes de caractères de fin de ligne. Ceci est dû au fait que Windows utilise pour marquer les fins de ligne dans ses fichiers un caractère « retour chariot » (carriage return, CR) suivi d'un caractère « saut de ligne » (line feed, LF), tandis que Mac et Linux utilisent seulement le caractère « saut de ligne ». C'est un cas subtil mais incroyablement ennuyeux de problème généré par la collaboration inter plate-forme.

Git peut gérer ce cas en convertissant automatiquement les fins de ligne CRLF en LF lorsque vous validez, et inversement lorsqu'il extrait des fichiers sur votre système. Vous pouvez activer cette fonctionnalité au moyen du paramètre core.autocrlf. Si vous avez une machine Windows, positionnez-le à true. Git convertira les fins de ligne de LF en CRLF lorsque vous extrayerez votre code : $ git config --global core.autocrlf true

Si vous utilisez un système Linux ou Mac qui utilise les fins de ligne LF, vous ne souhaitez sûrement pas que Git les convertisse automatiquement lorsque vous extrayez des fichiers. Cependant, si un fichier contenant des CRLF est accidentellement introduit en version, vous souhaitez que Git le corrige . Vous pouvez indiquer à Git de convertir CRLF en LF lors de la validation mais pas dans l'autre sens en fixant core.autocrlf à input : $ git config --global core.autocrlf input

Ce réglage devrait donner des fins de ligne en CRLF lors d'extraction sous Windows mais en LF sous Mac et Linux et dans le dépôt.

Si vous êtes un programmeur Windows gérant un projet spécifique à Windows, vous pouvez désactiver cette fonctionnalité et forcer l'enregistrement des « retour chariot » dans le dépôt en réglant la valeur du paramètre à false : $ git config --global core.autocrlf false

Source : https://git-scm.com/book/fr/v1/Personnalisation-de-Git-Configuration-de-Git


Il vaut mieux configurer le .gitattributes pour exporter la bonne configuation (Sous Linux ET Windows.) Pour cela, il suffit de réinitialiser le repo git add . -u git commit -m "Sauvegarder vos modifications en cours"

  1. supprimer tous les fichiers versionnés dans git

git rm -r --cached .

  1. reprendre les fichiers tel qu'ils étaient avant la suppression.

C'est avec cette commande que git va changer toutes les EOF avec ce que l'on a spécifié dans le .gitattributes git checkout -- .

  1. Enregister le changement de ligne

git add . $ git commit -m "Normalize all the line endings"

Source : http://blog.sogilis.com/post/102281213361/git-windows-unix-et-les-probl%C3%A8mes-de-eol-end-of


Pour lancer le mode graphique git-gui, la commande qui fonctionne chez moi depuis le répertoire de travail est git gui.


Si tu veux apprendre git il serait préférable de passer directement par le terminal avant de valider des trucs avec gui alors que tu ne voulais pas les valider.

Perso j'utilise tout en terminal et je vérifie via gitk je trouve que gui met pas mal de pagaille surtout quand il est lancé via un windows c'est l'horreur. Les retours chariots et j'en passe... Je sent que je vais bien me marrer à corriger les bugs à venir :p

Ps: Tu verras Zero je te le dis tu vas être emmerdé tu verras :) Le prob ne viendra pas de toi mais des autres qui repousseront de la merde et ton git au final quand tu vas te remettre à jour tu vas reprendre leur merde tu auras beau refaire ta manip ils repousseront en merde à chaque fois en gros tu vas devoir remettre à jour ton git à chaque manipulation des autres tu n'as pas finis je te souhaites bon courage. Même sur HackBBS on a eut le problème alors je sais de quoi je parle. La solution reprendre tout le git en étant tous sur Nunux. A l'origine Debian est faite pour les servers Zero donc ton interface graphique on s'en balance ce qu'il faut c'est que ca soit léger et que ca fonctionne sans faille... Debian c'est pas de chichis mais du léger et stable qui fonctionne sinon change de distribution si tu veux du flaschis qui en met plein la vue.


Commandes Spécifiques Git

Le fait que Git ait été conçu avec un gros projet comme Linux, il existe un paquet de commandes Git. Néanmoins, pour utiliser les basiques de Git, vous n’aurez besoin de connaître que quelques termes. Ils commencent tous de la même façon avec le mot “git”.

git init : Initialise un nouveau dépôt Git. Jusqu’à ce que vous exécutiez cette commande dans un dépôt ou répertoire, c’est simplement un répertoire normal. Seulement après avoir entré cette commande, il accepte les commandes Git qui suivent.

git config : raccourci de “configurer,” ceci est tout particulièrement utile quand vous paramétrez Git pour la première fois.

git help : Oublié une commande ? Saisissez-ça dans la ligne de commande pour ramener les 21 commandes les plus courues de Git. Vous pouvez aussi être plus spécifique et saisir “git help init” ou tout autre terme pour voir comment utiliser et configurer une commande spécifique git.

git status : Vérifie le statut de votre repository. Voir quels fichiers sont à l’intérieur, quels sont les changements ayant besoin d’être gardés en mémoire, et sur quelle branche du repository vous êtes en train de travailler.

git add : Ceci n’ajoute pas de nouveaux fichiers dans votre dépôt. Au lieu de cela, cela porte de nouveaux fichiers à l’attention de Git. Après que vous ayez ajouté des fichiers, ils sont inclus dans les “instantanés” du dépôt Git.

git commit : la commande la plus importante de Git. Après avoir fait toute sorte de modification, vous saisissez ça afin de prendre un “instantané” du dépôt. Généralement cela s’écrit sous la forme git commit -m “Message ici“. Le -m indique que la section suivante de la commande devrait être lue comme un message.

git branch : Vous travaillez avec plusieurs collaborateurs et voulez produire des modifications de votre côté ? Cette commande vous permet de construire une nouvelle branche, ou une timeline de commits, de modifications et d’ajouts de fichiers qui sont complètement les vôtres. Votre titre va après la commande. Si vous vouliez créer une nouvelle branche appelée “chats”, vous saisiriez git branch chats.

git checkout : Permet littéralement de rapatrier un dépôt dans lequel vous n’êtes pas. C’est une commande de navigation qui vous laisse migrer vers le répertoire que vous voulez rapatrier. Vous pouvez utiliser cette commande sous la forme git checkout master pour rapatrier la branche master, ou git checkout chats pour rapatrier une autre branche.

git merge : Quand vous avez terminé de travailler sur une branche, vous pouvez fusionner vos modifications vers la branche master, qui est visible pour tous les collaborateurs. git merge cats prendrait toutes les modifications que vous avez faites sur la branche “cats” et les ajoutera à la la branche master.

git push : Si vous travaillez sur votre ordinateur local, et voulez que vos commits soient visibles aussi sur Github, vous “push”ez les modifications vers Github avec cette commande.

git pull : Si vous travaillez sur votre ordinateur local, et su vous voulez la version la plus à jour de votre repository pour travailler dessus, vous “pull”ez (tirez) les modifications provenant de Github avec cette commande.

Ouaip j'ai bien compris, que, ça va sauter ! ... Git ... Linux ... Windows ...

NAVIGATION

CHERCHER UNE AUTRE PAGE SUR LE WIKI

D'autres pages du wiki peuvent correspondre à vos attentes : La liste de toutes les pages du wiki.

COMPRENDRE LA BLOCKCHAIN PAR LA PRATIQUE

Obtenir gratuitement de la cryptomonnaie sur internet : https://www.visionduweb.eu/forum/bitcoin/1597-gagner-des-bitcoins-miner-des-bitcoins

LIRE ET PARTAGER

Le wiki collaboratif du HackerSpace Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Les informations présentes sur cette page sont issues d'une recherche personnelle.
Vous pouvez partager les liens du wiki avec l'ensemble de la communauté des internautes.
Vous pouvez améliorer le contenu du wiki et faire vos propositions depuis l'onglet discussion.

SOUTENIR VISIONDUWEB

Soutenir Vision du web avec quelques Bitcoins : 33ZsupGQr1rUmwj62HadcZ55hsGJajD9wN
Soutenir Vision du web avec quelques Bitcoins Cash : 1ATSDJeoQr71x7xNDRytxFnxQ8ckDUeDbT
Soutenir Vision du web avec quelques Blackcoins : B6MyLMPtzg8D15mHt8jYi7nVjYWEyVXJzA
Soutenir Vision du web avec quelques Dogecoins : A64jhqCgsUyrUCPte6fV3BcG2Y7daH13Ym
Soutenir Vision du web avec quelques Ethereum : 0x0E4D6B7A1F88A56A1A66bf408c72FAE3d104D632
Soutenir Vision du web avec quelques Litecoins : 3LKigW6TCS5MvXrZFGh8VMEtZf6MtE86iz
Soutenir Vision du web avec quelques Potcoins : PUYvjeJ3n2frypgD5yd95yNnwoztnZL5P3