Changements récents - Rechercher:

Espace Wiki ∂'Alembert
Documentation générale


Espace Guide de survie du SysAdmin
Documentation technique


Espace Guide de survie du Développeur
Pour les développeurs


Espace Institut ∂’Alembert
L'institut


Le Site
À propos du Site
Liste complète des Pages


Aide PmWikiFr

Help PmWiki

GSD /

Git

Page mise à jour le 12/07/2023 17:10

git est un système de contrôle ouvert, open source de version et distribué conçu pour tout projet, du plus petit au très grands, avec rapidité et efficacité.

Configuration de base

git piste des commits en vérifiant le nom et l'email.

Il est donc important de remplir ces informations:

$ git config --global user.name "Firstname Lastname"
$ git config --global user.email "your_email@youremail.com"

Commandes de bases

Créer un dépôt

$ cd /path/to/repo
$ git init
$ vi README.rst
$ git add README.rst
$ git commit -m 'mon premier commit'

Ajouter des fichiers à un dépôt

$ cd /path/to/repo
$ vi README.rst
$ git add README.rst
$ git commit -m 'add a README'

Autres commandes de base

  • voir le status des fichiers:
$ git status -s
  • voir les log des commits:
$ git log
  • aide:
$ git help [<command>]

Les Branches

  • voir les branches. La branche courante est signalée par un *:
$ git branch
* master
paramiko
ssh-subprocess
  • changer de branche(supprime les modification non sauvegardées par un commit):
$ git checkout <branch>

Configurations Avancées

Aliases

On peux également créer des alias pour les commandes git.

Voici quelques aliases utils:

$ git config --global alias.l 'log --graph --decorate --oneline --all'
$ git config --global alias.ll "log --graph --decorate --pretty=format:'%C(yellow)%h %Cred%ad %Cgreen%d %Creset%s' --date=short --all"
$ git config --global alias.s 'status --short --branch'
$ git config --global alias.d 'diff --name-status -w'
$ git config --global alias.dw 'diff -w'
$ git config alias.l 'log --graph --decorate --oneline --all'
$ git config alias.ll "log --graph --decorate --pretty=format:'%C(yellow)%h %Cred%ad %Cgreen%d %Creset%s' --date=short --all"
$ git config alias.s 'status --short --branch'
$ git config alias.d 'diff --name-status -w'
$ git config alias.dw 'diff -w'

fusion de commit

Une commande simple pour fusionner les deux dernier commit:

$ git reset --soft "HEAD^"
$ git commit --amend

réecriture du dernier commit

Juste pour avoir un message plus propre

$ git commit --amend

github

github [1] est un site de dépôt public (gratuit) et privé (payant) permettant de partager des projets communs.

Configuration du compte

En plus du nom et de l'email, il faut également définir des informations spećifiques:

$ git config --global github.user username
$ git config --global github.token 0123456789yourf0123456789token

Créer un dépôt

suivre les infos du site pour créer un dépôt public, ici bin. Il indique les commandes pour ajouter les fichiers sur le serveur.

aller sur le dépôt en local:

$ cd /path/to/repo

et y mettre les fichiers:

$ git remote add origin git@github.com:masterzu/bin.git
$ git push -u origin master

Mettre à jour le dépôt

Après avoir modifié les fichiers, on peut envoyer les fichier sur le dépôt maître:

$ git push

Serveur git

Objectif
avoir un dépôt git privé, sur un serveur privé.

Configuration serveur

Sur un serveur, nous allons créer une arborescence git accessible en ssh.

  • créer un compte git - depuis root
# adduser git
$ su git
$ cd
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
  • ajouter les cles ssh dans le fichier .ssh/authorized_keys
  • limiter le compte git -- pas de shell en ssh
# which git-shell
# cat /etc/shells
# echo `which git-shell` >> /etc/shells
# cat /etc/shells
# chsh -s `which git-shell` git

Après cette limitation, il ne sera plus possible de lancer un shell avec le compte git

Configuration client

clone le dépôt distant en local

Il suffit, comme a chaque fois de cloner le dépôt avec la commande :

$ git clone git@server:<nom_du_depot>.git

mettre un dépôt local sur le depot serveur

  • Dans ce cas, il faut ajouter le remote dans le dépôt
$ git remote add mondepot git@server:<nom_du_depot>.git
$ git remote -v
mondepot git@server:<nom_du_depot>.git (fetch)
mondepot git@server:<nom_du_depot>.git (push)
  • mettre le code dans le dépôt distant
$ git push <nom_du_depot>

par défaut, cette commande crée la branche master du dépôt <nom_du_depot>

Autres

Git dans le prompt BASH

voir le script de Matthew J. McCullough [BASH], 2013, (consulté le 18 feb 2016)


prompt avec ce script

Liens Externes

Les bases

  • Site « Pro Git v2 » (consulté le 29 sep 2015)
  • (fr) Scott Chacon et Ben Straub « Pro Git » 2e éd, [PDF], 2014 (consulté le 23 sept 2016)
  • (en) Site « Github Help » (consulté le 27 sep 2016)

Les workflows

Utilisation Avancée

À propos du site Licence Creative Commons Cooked with love in 2014-2023 by pcht
Page mise à jour le 12/07/2023 17:10