Difference between revisions of "GIT/En"
(still translating...) |
m |
||
Line 77: | Line 77: | ||
100% (6/6) done | 100% (6/6) done | ||
− | === | + | === Adding, removing files, updating your repository === |
− | ==== | + | ==== Adding files ==== |
− | + | Go into your local repository | |
− | $ cd | + | $ cd repos |
− | + | let's create a file named 'file' | |
$ touch file | $ touch file | ||
− | + | Then to add the file to your repository, just type : | |
$ git add file | $ git add file | ||
− | + | Now, you can commit by typing : | |
$ git commit file | $ git commit file | ||
− | + | Once the commit is done, you can push everything on the server : | |
$ git push | $ git push | ||
− | + | For directories, we will do the same | |
$ git add directory/ | $ git add directory/ | ||
$ git commit directory/ | $ git commit directory/ | ||
$ git push | $ git push | ||
− | ==== | + | ====Removing a file ==== |
− | + | To remove a file, just type : | |
$ git rm file | $ git rm file | ||
$ git commit | $ git commit | ||
Line 108: | Line 108: | ||
− | ==== | + | ==== Updating your repository ==== |
− | + | When working in team, it can be useful to update the local copy of your repository : | |
$ git pull | $ git pull | ||
− | ''' | + | '''Warning''': You might have to type the password several times |
− | == | + | == Using GIT as an anonymous user (Not available yet) == |
− | + | You can use GIT without logging in. You won't be able to change the repository (add or remove files). | |
− | $ git clone git://git.tuxfamily.org/gitroot/ | + | To make an anonymous checkout, type this : |
+ | $ git clone git://git.tuxfamily.org/gitroot/YOURPROJECT/YOURREPOSITORY.git | ||
− | + | Anonymous people can also check for new versions by typing : | |
$ git pull | $ git pull | ||
− | + | The anonymous mode is set on the panel (default=allowed) | |
== Utilisation du Gitweb (pas encore disponible) == | == Utilisation du Gitweb (pas encore disponible) == |
Revision as of 20:57, 11 October 2007
GIT repository
This page is incomplete ! Feel free to finish it. |
Contents
- 1 Description
- 2 Dependences
- 3 Creating the GIT repository
- 4 Moderation
- 5 How to administrate it (panel)
- 6 How to use it
- 7 Remarques diverses
- 8 Liens utiles
Description
git is an other team coding system such as CVS or SVN
Dependences
Creating the GIT repository
- Go on the control panel
- Select the project where you want to add a GIT repository
- Choose the name of your repository
- Validate
creating tips
- Don't choose a too usual name
- Fill the description field to avoid problems with the moderation team ;)
Moderation
Your repository will be subject to moderation, see here
How to administrate it (panel)
On the panel you can choose if you want the repository to be public. By accepting it, you allow a read-only anonymous login on the repository and you allow viewing it from the sgitweb (coming soon)
Configuration
How to handle group rights
This object can be shared with your group using the ACL
How to destroy it
- Log into the panel
- click on the group corresponding to your project
- click on your SVN repository
- click on destroy
How to use it
So, you've chosen to be hosted by TuxFamily, that's good. You chose a GIT repository, that's great ! We're going to teach you how to use it.
Basic Operations
Check out
Start by creating a local version of your repository. We will assume that you already have a directory with your project inside.
$ cd myproject $ git init $ git add myfirstfile mysecondfile $ git commit -a $ git push ssh://YOURUSER@git.tuxfamily.org/gitroot/YOURPROJECT/REPOSITORYNAME.git master
This will create the first commit that will be the 'master' branch of your GIT repository.
(Of course, replace YOURUSER, YOURPROJECT and REPOSITORYNAME by the real values...)
To download a full copy of your GIT repository, you can use the clone command:
$ git clone ssh://YOURUSER@git.tuxfamily.org/gitroot/YOURPROJECT/REPOSITORYNAME.git remote: Generating pack... remote: Done counting 6 objects. remote: Deltifying 6 objects... remote: (6/6) done remote: Total 6 (delta 0), reused 0 (delta 0) Indexing 6 objects... 100% (6/6) done
Adding, removing files, updating your repository
Adding files
Go into your local repository
$ cd repos
let's create a file named 'file'
$ touch file
Then to add the file to your repository, just type :
$ git add file
Now, you can commit by typing :
$ git commit file
Once the commit is done, you can push everything on the server :
$ git push
For directories, we will do the same
$ git add directory/ $ git commit directory/ $ git push
Removing a file
To remove a file, just type :
$ git rm file $ git commit $ git push
Updating your repository
When working in team, it can be useful to update the local copy of your repository :
$ git pull Warning: You might have to type the password several times
Using GIT as an anonymous user (Not available yet)
You can use GIT without logging in. You won't be able to change the repository (add or remove files). To make an anonymous checkout, type this :
$ git clone git://git.tuxfamily.org/gitroot/YOURPROJECT/YOURREPOSITORY.git
Anonymous people can also check for new versions by typing :
$ git pull
The anonymous mode is set on the panel (default=allowed)
Utilisation du Gitweb (pas encore disponible)
Vous pouvez consulter les repositories par le web à l'adresse suivante : http://git.tuxfamily.org Les URLs sont de la forme http://git.tuxfamily.org/git_groupe_dépot/
Déposer votre clé SSH
Configurer SSH sous Linux
Vous devez tout d'abord générer votre clef ssh, pour ce faire, ouvrez une console et tapez :
$ ssh-keygen -t rsa
Une "passphrase" vous sera demandée. Une fois entrée, votre clef ssh est prète a être utilisée. Avant tout, il faut créer un fichier nommé "ssh_keys" qui contiendra le contenu de la clef publique générée. Faisons ainsi:
$ cat ~/.ssh/id_rsa.pub >> ~/ssh_keys $ chmod 700 ~/ssh_keys
Il faut maintenant les envoyer sur le serveur distant, en l'occurrence votre FTP Tuxfamily. Ouvrez un client FTP et allez sur votre compte, vous allez voir vos différents projets en cours, c'est à dire vos espaces Web. Restez a la base et copiez le fichier ssh_keys à l'intérieur.
Upload de la clef
Il est possible de déposer votre clé SSH (publique) sur les serveurs de Tuxfamily. Cela vous permet de ne pas taper votre mot de passe à chaque opération effectuée sur le serveur Subversion.
- Pour la déposer, il faut copier le contenu de votre clé publique dans le fichier ssh_keys (le créer si besoin) qui est placé dans votre répertoire de départ (répertoire home). Ce répertoire home est celui sur lequel vous arrivez lorsque vous vous identifiez sur le serveur FTP.
- Ce fichier doit être placé et avoir un chmod de 700 (faire le chmod 700 à l'aide du client ftp).
Autrement dit, seul VOUS, utilisateur, avez le droit de lire, d'écrire et d'exécuter ce fichier.
Votre clé publique ssh est dans ~/.ssh/id_rsa.pub ou id_dsa.pub (si vous avez retenu un mode faiblard d'encryption), c'est ce fichier que vous mettez en ligne sous le nom ssh_keys.
Utilisation
Désormais il ne reste plus qu'à lancer une session SSH sur votre machine. Ceci se résume en 2 commandes. Tout d'abord (au cas où) il faut "killer" tous les processus ssh-agent si vous en avez lancé un. Sachez qu'il faut toujours verifier que aucun autre agent ssh soit lancé car Gnome et d'autres environnements lancent un agent.
$killall ssh-agent
Puis nous allons lancer les 2 commandes qui vont permettre à votre machine de communiquer avec GIT via SSH.
$ ssh-agent $SHELL $ ssh-add ~/.ssh/id_rsa
Si tout s'est bien passé, vous n'aurez pas à taper votre mot de passe à chaque commande GIT que vous ferez par la suite. A chaque fois que vous voudrez utiliser cvs, il faudra ouvrir une session SSH:
$ ssh-agent $SHELL $ ssh-add ~/.ssh/id_rsa
Et toute les commandes GIT devront être tapées dans le même SHELL.
Pour éviter de devoir ouvrir une session à la main à chaque session, ajoutez ces lignes dans le fichier .bashrc :
if [ -f .ssh-agent ]; then .ssh-agent else killall ssh-agent ssh-agent > .ssh-agent ssh-add ~/.ssh/id_rsa fi
Note : Vous pouvez utiliser KeyChain http://www.gentoo.org/proj/en/keychain pour garder en mémoire votre passphrase et le ssh-agent.
IMPORTANT: Notez bien votre passphrase, elle vous sera demandée lors du login de votre bash.
Développement collaboratif, droits d'écriture
Tous les utilisateurs du groupe auront la permission d'écrire sur le GIT. Autrement dit, si vous désirez développer à plusieurs sur un même repository, il est conseillé d'ajouter les développeurs au groupe via le panel. Toutefois, il faut que les développeurs se créent un compte sur le panel au préalable.
Un projet correspond à un groupe (au sens Unix du terme), il faut ajouter vos co-développeurs à votre projet pour qu'ils puissent commiter des modifications au dépôt subversion (ils auront aussi accès à l'arborescence, permettant de maintenir l'intégralité du projet collaborativement).
Autrement, vous risquez d'obtenir le message suivant :
<a remplir en cas d'echec de droits>
Remarques diverses
- Il est conseillé de ne commiter que des éléments qui compilent correctement (mais qui ne fonctionnent pas forcément) afin que le trunk puisse être testé n'importe quand par de nouveaux utilisateurs.
- Vous devez choisir les fichiers à versionner, il n'est pas exemple pas nécessaire d'archiver des fichiers de backup (faites attention aux éditeurs qui créent des copies en xxx~, ces copies ne doivent pas être versionnées) ni les fichiers issus directement de la compilation des sources.
- Evitez de prendre un nom générique comme "git". Utilisez plutot un nom en rapport avec votre projet ou même, prenez le nom de votre projet ...
Liens utiles
(a remplir) Italic text