_Màj_ : Actuellement j'utilise github avec des repository privés. Je paye une somme très raisonnable pour ce service. Si vous voulez être complètement autonome, je vous conseille d'utiliser [gitolite](https://github.com/sitaramc/gitolite) sur votre propre serveur accessible sur le web.
Maintenant tous les fichiers du répertoire <code>to/project/directory/</code> sont *versionnés*. Si vous voulez ignorer certains fichiers il suffit de modifier le fichier <code>.gitignore</code>.
Màj: La meilleure solution est d'installer <ahref="https://github.com/sitaramc/gitolite">gitolite</a> pour installer un serveur git sur sa machine. Gitolite permet de gérer la gestion des droits d'utilisateurs, ceux-ci n'ayant pas accès à un shell sur la machine.
et <code>local_directory</code> contiendra un projet à jour.
<divclass="encadre"><em>
Je vous conseille de faire la même opération sur l'ordinateur qui à servi à créer le projet de façon à vérifier que tout fonctionne correctement.
</em>
</div>
newcorps
## L'utilisation courante
Pour résumer vous avez maintenant un repository sur Internet et un ou plusieurs ordinateurs lui sont associés. Maintenant il faut que tout soit toujours synchronisé.
Avant de commencer à travailler, la première chose à faire est de récupérer les modification à partir d'Internet vers votre poste local :
<div>
<codeclass="zsh">
git pull
</code>
</div>
Ensuit vous pouvez travailler en faisant (plusieurs fois) :
<div>
<codeclass="zsh">
hack, hack, hack...
git add some files
git commit
</code>
</div>
Quang vous voulez envoyez les modifications locales sur Internet, il suffit de faire :
<div>
<codeclass="zsh">
git push
</code>
</div>
Tout devrait être bon.
Si vous avez des problèmes avec le <code>push</code> et le <code>pull</code> ; vérifiez votre fichier <code>.git/config</code>. Il devrait contenir les lignes suivantes :
<div>
<codeclass="zsh">
...
[remote "origin"]
url = protocol://url/of/the/repository
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
...
</code>
</div>
## Synchronisation des branches
Bien, maintenant que tout semble bon, il faut encore s'occuper de quelques petites choses (sinon, SVN suffirait).
Git est complètement orienté sur la décentralisation et la création de nouvelles branches sur le même poste. Synchroniser des branches sur plusieurs serveurs différent n'est pas une opération naturelle.
C'est pourquoi j'ai créé deux simples scripts pour automatiser cette opération. Un script pour créer un branche localement et en ligne. Un autre script pour récupérer les branches en lignes qui ne sont pas présente localement.
Ainsi, lorsque je veux créer une nouvelle branche (localement et ligne) ; je lance le script :