::franek::

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé : git

Quelques trucs et astuces concernant git (et git svn)

Une petite liste de trucs et astuces concernant l'utilisation de git (avec svn ou non).

Pour définir l'éditeur par défaut utilisé par git (ici vi) :

$ git config --global core.editor vi

Récupérer l'ensemble du dépôt subversion dans un environnement git :

$ git svn clone -s http://url_depot_svn/ rep-destination/

Resynchroniser le dépôt local (git) avec le dépôt subversion (récupération des tags notamment).

$ git svn fetch

Dans le cas d'une utilisation de git avec subversion, afficher tous les tags et les branches subversion

$ git branch -a

Créer une branche git qui suit les modifications d'une branche subversion

$ git checkout -b local-trunk remotes/trunk

Ici, on crée une branche git local-trunk qui est une copie de remotes/trunk et qui suit ces modifications

Commiter l'ensemble des modifications locales vers le dépôt subversion

$ git svn dcommit

Par défaut, git ne supprime pas les répertoires vides. Il est possible d'indiquer à git de supprimer les répertoires vides dans subversion :

  • option 1, dans le fichier de configuration de git ~/.gitconfig
[svn]
        rmdir = true
  • option 2, lors de l'appel de git svn dcommit :
$ git svn dcommit --rmdir

Disposer d'un diff en couleur (source) :

[core]
        pager = less -FXRS

Post-it : Accéder à un dépôt git à traver un proxy

Il est parfois nécessaire de pouvoir accéder à son dépôt git (push et pull) auto-hébergé derrière un proxy.

Mon dépôt git ne support pas le smart HTTP protocol.

Je vais vous présenter ici une technique s'appuyant sur corkscrew. Il y existe sûrement d'autres techniques (port forwarding, ...).

Cette technique sous-entend que ssh est configuré sur le port 443 de votre serveur.

Installer corkscrew :

$ sudo apt-get install corkscrew

Ajouter dans le fichier ~/.ssh/config :

Host mon.domaine.net
 User git
 Port 443
 TCPKeepAlive yes
 ProxyCommand /usr/bin/corkscrew <proxy> <port proxy> %h %p

Cette configuration signifie : Pour le domaine mon.domaine.net (Host mon.domaine.net) utilise l'utilisateur git sur le port 443 et passe par le proxy <proxy> en utilisant corkscrew. TCPKeepAlive permet de maintenir la connexion.

Retour sur le premier atelier Git Attitude

Christophe Porteneuve, ancien Président de Paris Web et directeur technique chez Ciblo, a eu l'excellente idée d'organiser le premier atelier Git Attitude. Cela s'est passé samedi dernier dans les locaux de Clever Age (Paris).

L'objectif de cet atelier était de présenter les fonctionnalités de Git et d'aider les participants à prendre en main ce système de gestion des sources décentralisé. Le programme de la journée était dense. Malgré les 8 heures prévues, il n'a pas été possible d'étudier l'ensemble des points au programme, mais on a vu beaucoup de choses intéressantes, de très bonnes astuces et l'envie d'approfondir nos connaissances.

Christophe partage avec enthousiasme sa passion pour Git. On sent qu'il est heureux d'avoir quitté les anciens systèmes de gestion de source centralisé (type Subversion ou CVS) pour Git.

Le prix demandé pour ce type de manifestation est dérisoire (50€ pour les early birds, 75€ pour les autres, petit-déjeuner - avec ses succulents croissants - et déjeuner inclus).

Si ce type d'évènement se reproduit et, que vous aussi, vous souhaitez vous former à Git rapidement, courrez rejoindre Christophe et Dick Rivers (git revert) à cette manifestation, vous ne le regretterez pas !

Utilisateur au quotidien de Subversion depuis plusieurs années, je réfléchis depuis plusieurs semaines au passage à un gestionnaire de sources décentralisé. Je teste Mercurial depuis quelques semaines (et pourquoi Mercurial ? parce que ...). Cet atelier m'a donné envie de passer à Git. Il faudra néanmoins que je trouve des solutions pour remplacer correctement les ressources externes (j'utilise à fond les ressources externes de subversion pour pointer sur des bibliothèques partagées - framework commun, ...) et migrer en douceur ma vingtaine de projets. Git propose des solutions :

  • git svn pour utiliser subversion en dépôt central
  • les submodule (qui ne sont pas aussi puissants que les ressources externes)

Quelques notes prises durant la journée

Installation de la dernière de version de Git sous Ubuntu

Pour installer une version récente de Git sur Ubuntu, il est nécessaire de compiler Git à partir des sources, la version présente dans les dépôts étant un peu vieille. Pour se faire, il est nécessaire d'installer les outils de compilation et certaines dépendances pour générer la documentation :

sudo apt-get install build-essential
sudo apt-get install -q -y libcurl4-openssl-dev tk asciidoc docbook2x xmlto

Télécharger git-1.7.1.1 et décompresser dans un répertoire temporaire.

Compiler :

./configure
make all man info
sudo make install install-man install-info

Par défaut, git s'installera dans /usr/local. Si vous souhaitez l'installer dans un autre répertoire, vous pouvez modifier les options de configuration de ./configure

A priori, il semble exister des paquets Ubuntu plus récents sur les dépôts PPA.

Configuration de l'environnement

Il est possible de définir une configuration globale au système. Cette configuration va notamment contenir les Alias de configuration. Exemple de configuration à positionner dans /home/user/.gitconfig

[user]
	name = My Name
	email = adresse@domain.net
[color]
	diff = auto
	status = auto
	branch = auto
[alias]
	st = status
	ci = commit
	co = checkout
	fp = format-patch
	lg = log --graph --pretty=tformat:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%an %cr)%Creset' --abbrev-commit --date=relative
[core]
	pager = cat

(à compléter)

Merci à Christophe pour l'initiative. J'espère que les ateliers Git Attitude seront une aussi belle réussite que Paris Web.

à propos :: Mots-clés :: archives :: RSS :: Mail