Checkout a git project

Git is a version control system like CVS or Apache Subversion, so basically you get a local copy of a project (a clone in git slang) where you make changes and then submit them to a remote repository. The difference is git’s distributed ways. For git your local repository is an actual repository with full functionality when you are off the network. Yes, so the project has many repositories.Git es un sistema para control de versiones como CVS o Subversion de Apache, así que básicamente obtienes una copia del proyecto (un clone en el dialecto de git) donde haces cambios y los subscribes al repositorio remoto. La diferencia está en las cualidades distribuidas de git. Para git tu repositorio local es realmente es repositorio con completa funcionalidad incluso al estar fuera de línea. Sí, es decir que el proyecto tiene varios proyectos.

Installing git is pretty straight forward with sudo apt-get install git

A nice thing with git is the manual. You can get help just by appending a hyphen and the command you want to know about to the git prefix, e.g. man git-clone.

Then, you can save some basic info about you in the git config file. To get and set repository or global options, you need the config command.

git config --global user.name "Ivan Pazmino"
git config --global user.email iapazmino@pazmino.ec

The --global option makes this name-value options available for all your git projects. To do so this values are written into the ~/.gitconfig file. You could also just modify this file and set the options’ coordinates as follows

gedit ~/.gitconfig

[user]
name = Ivan Pazmino
email = iapazmino@pazmino.ec

Now you need a project to clone. You can search for a bunch of projects in http://github.com, I chose Arquillian for this example, a JBoss container-oriented test framework. The target for your clone command will be ready to copy from the git read-only text box. You can use the URL provided there (e.g. http://github.com/arquillian/arquillian.git) with the http protocol, or change it to the git protocol which optimizes bandwidth.

git clone --progress git://github.com/arquillian/arquillian.git

The --process option displays a percentile progress of the task being executed. This will clone the project’s repository in a folder with the project’s name. To download the files in a different directory from where you stand, you need to add it at the end of the command; the specified directory must be empty or clone will fail. Once it’s finished you’ll get an output like this

Initialized empty Git repository in /home/iapazmino/workspace/sandbox/arquillian/.git/
remote: Counting objects: 14394, done.
remote: Compressing objects: 100% (4902/4902), done.
remote: Total 14394 (delta 4713), reused 14039 (delta 4411)
Receiving objects: 100% (14394/14394), 2.40 MiB | 118 KiB/s, done.
Resolving deltas: 100% (4713/4713), done.

Finally, just to make sure the first paragraph wasn’t a lie, unplug yourself from the network and type git log. You should be able to see some change history for the files you just have downloaded.

La instalación de git es simplemente ejecutar sudo apt-get install git

Una cosa agradable en git es su manual. Puedes obtener ayuda simplemente aumentando un guión y el comando que se desea consultar al prefijo git, e,g, man git-clone.

Luego, puedes guardar alguna información básica sobre ti mismo en el archivo de configuración de git. Para obtener o colocar opciones a nivel global de repositorio, tenemos el comando config

git config --global user.name "Ivan Pazmino"

git config –global user.email iapazmino@pazmino.ec

La opción --global hace que los pares nombre-valor estén disponibles para todos los repositorios git. Para esto están escritos en el archivo ~/.gitconfig. Podrías entonces simplemente modificar este archivo y colocar las coordenadas para estos valores como a continuación:

gedit ~/.gitconfig

[user]

name = Ivan Pazmino

email = iapazmino@pazmino.ec

Ahora necesitas un proyecto para clonar. Puedes buscar por un montón de proyectos en http://github.com, yo he escogido Arquillian para este ejemplo, un framework para pruebas orientado al contenedor hecho por JBoss. El objetivo para clonar estará listo en la caja git read-only. Puedes utilizar la URL provista (e.g. http://github.com/arquillian/arquillian.git) en protocolo http, o cambiarlo al protocolo git que optimiza el ancho de banda.

git clone –progress git://github.com/arquillian/arquillian.git

La opción –progress despliega el avance porcentual del progreso de la tarea en ejecución. Esto clonará el repositorio del proyecto en una carpeta con el nombre del proyecto. Si quieres descargar los archivos en un directorio diferente al que te encuentras necesitarás agregarlo al final del comando; el directorio especificado debe estar vacío o clone fallará. Una vez finalizada la ejecución tendrás una salida como esta:

Initialized empty Git repository in /home/iapazmino/workspace/sandbox/arquillian/.git/

remote: Counting objects: 14394, done.

remote: Compressing objects: 100% (4902/4902), done.

remote: Total 14394 (delta 4713), reused 14039 (delta 4411)

Receiving objects: 100% (14394/14394), 2.40 MiB | 118 KiB/s, done.

Resolving deltas: 100% (4713/4713), done.

Finalmente, solamente para asegurar que el primer párrafo no es mentira, desconectate de la red y escribe git log. Deberías poder ver la historia de cambios en el repositorio que acabas de descargar.

Advertisements

One response to “Checkout a git project

  1. Pingback: Iván Pazmiño » Blog Archive » Testing resource injection with Arquillian

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s