<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux, Java y programación &#187; git</title>
	<atom:link href="http://casidiablo.net/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://casidiablo.net</link>
	<description>Blog de Java, Programación y Linux</description>
	<lastBuildDate>Mon, 08 Mar 2010 03:41:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Uso básico de Git</title>
		<link>http://casidiablo.net/uso-basico-de-git/</link>
		<comments>http://casidiablo.net/uso-basico-de-git/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 05:29:40 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[how-to]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=3355</guid>
		<description><![CDATA[

Esta guía es la continuación de la anterior entrada, en donde explicaba cómo montar un servidor Git. Ahora veremos las operaciones básicas sobre el repositorio (hacer un checkout, añadir o borrar objetos, commit, etc.). Del lado del cliente también debemos tener instalado git:
En Debian:
# aptitude install git-core
En Gentoo:
# emerge dev-util/git

Clonar el repositorio
Llamamos &#8220;clonar&#8221; a descargar [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fuso-basico-de-git%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Uso%20b%C3%A1sico%20de%20Git%22%20%7D);"></div>
<p style="text-align: justify;"><img style="float: right" title="git" src="http://casidiablo.net/wordpress/wp-content/uploads/2009/09/git.png" alt="git" width="200" height="200" />Esta guía es la continuación de la anterior entrada, en donde explicaba cómo <a href="http://casidiablo.net/montar-servidor-git/">montar un servidor Git</a>. Ahora veremos las operaciones básicas sobre el repositorio (hacer un checkout, añadir o borrar objetos, commit, etc.). Del lado del cliente también debemos tener instalado git:</p>
<p>En <a href="http://casidiablo.net/category/debian/">Debian</a>:</p>
<div class="consola"># aptitude install git-core</div>
<p>En <a href="http://casidiablo.net/category/gentoo/">Gentoo</a>:</p>
<div class="consola"># emerge dev-util/git</div>
<p><span id="more-3355"></span></p>
<h3>Clonar el repositorio</h3>
<p style="text-align: justify;">Llamamos &#8220;clonar&#8221; a descargar los archivos fuentes de un repositorio git a un nuevo directorio. En este caso usaremos el método que usa SSH y el usuario que creamos en la <a href="http://casidiablo.net/montar-servidor-git/">entrada anterior</a>.</p>
<div class="consola">$ git clone usuariogit@192.168.0.5:/var/cache/git/proyecto.git proyecto<br />
$ cd proyecto</div>
<p style="text-align: justify;">Los archivos los añadimos normalmente, es decir, editándolos dentro del directorio del proyecto o copiándolos de otro lado. Por ejemplo:</p>
<div class="consola">$ touch README<br />
echo &#8216;Un readme&#8217; &gt; README<br />
cat &gt; hola.py &lt;&lt; EOF<br />
print &#8220;asi se edita un archivo&#8221;<br />
print &#8220;cuando tienes algo de&#8221;<br />
print &#8220;cojones jejejeje&#8221;<br />
EOF</div>
<h3>Añadir archivos al repositorio</h3>
<p style="text-align: justify;">Antes de comenzar a añadir cosas o realizar cambios debemos actualizar el repositorio con respecto al del servidor:</p>
<div class="consola">git pull</div>
<p style="text-align: justify;">Ahora añadiremos los archivos que hemos creado al repositorio:</p>
<div class="consola">git add README<br />
git add hola</div>
<p>o mejor aún:</p>
<div class="consola">git add *</div>
<h3>Subir cambios al servidor local</h3>
<p>Para subir los cambios hechos al servidor local (lease el comentario de <a href="http://casidiablo.net/uso-basico-de-git/#comment-7401">CaStarCo</a>):</p>
<div class="consola">git commit -a -m &#8220;Un mensaje en donde explicas los cambios que hiciste&#8221;</div>
<p>Para subir los cambios al repositorio debemos ejecutar este comando:</p>
<div class="consola">git push</div>
<h3>Ver cambios entre versiones</h3>
<p style="text-align: justify;">Para ver los cambios entre la versión que tenías antes de hacer un <code>git pull</code> y la actual, puedes ejecutar el comando:</p>
<div class="consola">git show</div>
<p style="text-align: justify;">O puedes ver todos los cambios que ha sufrido el proyecto usando:</p>
<div class="consola">git log -p</div>
<p>Puedes también consultar la <a href="http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html">guía oficial de Git</a> para cosas más avanzadas.</p>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/git/" rel="tag nofollow">git</a>, <a href="http://casidiablo.net/tag/how-to/" rel="tag nofollow">how-to</a>, <a href="http://casidiablo.net/tag/linux/" rel="tag nofollow">linux</a>, <a href="http://casidiablo.net/tag/tutorial/" rel="tag nofollow">tutorial</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/uso-basico-de-git/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Instalar/configurar un servidor Git + interfaz web</title>
		<link>http://casidiablo.net/montar-servidor-git/</link>
		<comments>http://casidiablo.net/montar-servidor-git/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 07:21:05 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[software libre]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[instalación]]></category>
		<category><![CDATA[repositorio]]></category>
		<category><![CDATA[versiones]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=3346</guid>
		<description><![CDATA[

¡Hola a todos! Ya que me encuentro haciendo un proyecto para la Universidad, he decidido esta vez probar Git y dejar a un lado mi querido Subversion. Git es básicamente un sistema de control de versiones, creado por Linus Torvalds, y es usado en proyectos grandes como el Kernel de Linux. Así que he preparado [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%3A%2F%2Fcasidiablo.net%2Fmontar-servidor-git%2F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Instalar%2Fconfigurar%20un%20servidor%20Git%20%2B%20interfaz%20web%22%20%7D);"></div>
<p style="text-align: justify;"><img style="float: right" title="git" src="http://casidiablo.net/wordpress/wp-content/uploads/2009/09/git.png" alt="git" width="200" height="200" />¡Hola a todos! Ya que me encuentro haciendo un proyecto para la Universidad, he decidido esta vez probar <a href="http://es.wikipedia.org/wiki/Git">Git</a> y dejar a un lado mi querido Subversion. Git es básicamente un sistema de control de versiones, creado por Linus Torvalds, y es usado en proyectos grandes como el <a href="http://casidiablo.net/trabajando-con-el-kernel-linux-i/">Kernel de Linux</a>. Así que he preparado una pequeña guía de instalación y configuración de Git, además de la interfaz web del mismo, lo cual nos permite ver los cambios del proyecto de una manera más amena.</p>
<p style="text-align: justify;">Para este mini proyecto he instalado el servidor en una máquina virtual corriendo Debian 5. El motivo de dejar mi Gentoo por un rato es porque ya es de madrugada y necesitaba que la instalación fuera más rápida; además no me gusta instalar cosas que más adelante no necesitaré: para eso está la virtualización. ¡Basta de rodeos, vamos al grano!</p>
<h3>Instalando los paquetes necesarios</h3>
<p>Instalaremos Apache2, la base de git y los módulos web de git (y el server de ssh para que los clientes se conecten):</p>
<div class="consola"># aptitude install apache2 git-core gitweb openssh-server</div>
<p style="text-align: justify;">Ahora creamos los directorios <code>/var/cache/git</code> (el repositorio git) y <code>/var/www/git</code> para el <code>gitweb.cgi</code>:</p>
<div class="consola"># mkdir /var/www/git<br />
# [ -d "/var/cache/git" ] || sudo mkdir /var/cache/git</div>
<p style="text-align: justify;">En nuestro ejemplo, el directorio raiz del apache es <code>/var/www</code>; ahora debemos crear un archivo de configuración de Apache para el git:</p>
<div class="consola"># nano /etc/apache2/conf.d/git</div>
<p>Ponemos lo siguiente adentro:</p>
<p><!--INFOLINKS_OFF-->
<pre class="brush: bash;">&lt;Directory /var/www/git&gt;
   Allow from all
   AllowOverride all
   Order allow,deny
   Options ExecCGI
   &lt;Files gitweb.cgi&gt;
   SetHandler cgi-script
   &lt;/Files&gt;
&lt;/Directory&gt;
DirectoryIndex gitweb.cgi
SetEnv  GITWEB_CONFIG  /etc/gitweb.conf
</pre>
<p><!--INFOLINKS_ON--></p>
<p>Ahora movemos los archivos <code>gitweb.cgi</code>, <code>.png</code> y <code>.css</code> de git a <code>/var/www/git</code>:<span id="more-3346"></span></p>
<div class="consola"># mv -v /usr/share/gitweb/* /var/www/git<br />
# mv -v /usr/lib/cgi-bin/gitweb.cgi /var/www/git</div>
<p>Debemos ahora hacer un par de cambios en el archivo <code>/etc/gitweb.conf</code> debido a los archivos que movimos:</p>
<p><!--INFOLINKS_OFF-->
<pre class="brush: bash;">$projectroot = '/var/cache/git/';
$git_temp = &quot;/tmp&quot;;
#$home_link = $my_uri || &quot;/&quot;;
$home_text = &quot;indextext.html&quot;;
$projects_list = $projectroot;
$stylesheet = &quot;/git/gitweb.css&quot;;
$logo = &quot;/git/git-logo.png&quot;;
$favicon = &quot;/git/git-favicon.png&quot;;</pre>
<p><!--INFOLINKS_ON--></p>
<p>Recargamos la configuración del apache:</p>
<div class="consola"># /etc/init.d/apache2 reload</div>
<h3>Iniciando un proyecto en Git</h3>
<p>Creamos la carpeta del proyecto&#8230;</p>
<div class="consola"># cd /var/cache/git/<br />
# mkdir proyecto.git<br />
# cd proyecto.git</div>
<p style="text-align: justify;">Iniciamos un repositorio para nuestro nuevo proyecto y lo configuramos de acuerdo a nuestras necesidades:</p>
<div class="consola"># git init<br />
# echo &#8220;Una breve descripcion del proyecto&#8221; &gt; .git/description<br />
# git config &#8211;global user.name &#8220;Tu nombre&#8221;<br />
# git config &#8211;global user.email &#8220;tu@correo.com&#8221;<br />
# git commit -a</div>
<p style="text-align: justify;">Para marcar un repositorio como exportado se usa el archivo <code>git-daemon-export-ok</code>:</p>
<div class="consola"># cd /var/cache/git/proyecto.git<br />
# touch .git/git-daemon-export-ok</div>
<p style="text-align: justify;">Para iniciar el servicio de Git que ejecuta un servidor para hacer público nuestro repositorio, ejecutamos el siguiente comando (no debe haber un slash después de la ruta del repositorio):</p>
<div class="consola"># git daemon &#8211;base-path=/var/cache/git &#8211;detach &#8211;syslog &#8211;export-all</div>
<p>Ahora el repositorio se encuentra corriendo en el puerto 9418 de nuestro computador. Por último, le daremos permisos de escritura a un usuario que no sea root, de tal manera que con dicho usuario se puedan hacer cambios remotos en el repositorio:</p>
<div class="consola"># adduser usuariogit<br />
# passwd usuariogit<br />
# chown -Rv usuariogit:usuariogit /var/cache/git/proyecto.git</div>
<h3>Acceder al repositorio</h3>
<p>Para descargar el repositorio de la manera convencional, basta con ejecutar el comando:</p>
<div class="consola">git clone git://servidor/proyecto.git proyecto</div>
<p style="text-align: justify;">O lo puedes acceder vía web; en mi caso el servidor está en la dirección 192.168.0.5, entonces basta con visitar http://192.168.0.5/git/:</p>
<p style="text-align: center;"><img class="size-full wp-image-3348 aligncenter" title="gitweb" src="http://casidiablo.net/wordpress/wp-content/uploads/2009/09/gitweb.png" alt="gitweb" width="658" height="330" /></p>
<h3>Fuentes y enlaces interesantes</h3>
<ul>
<li><a href="http://git-scm.com/">Página oficial del proyecto</a></li>
<li><a href="http://www.howtoforge.com/how-to-install-a-public-git-repository-on-a-debian-server">Artículo guía de esta entrada</a></li>
<li><a href="http://pixhero.wordpress.com/2009/05/23/mini-guia-git-sistema-de-control-de-versiones/">Miniguia de Git</a></li>
</ul>


	<div class="etiquetas">Etiquetas: <a href="http://casidiablo.net/tag/control/" rel="tag nofollow">control</a>, <a href="http://casidiablo.net/tag/debian/" rel="tag nofollow">Debian</a>, <a href="http://casidiablo.net/tag/gentoo/" rel="tag nofollow">gentoo</a>, <a href="http://casidiablo.net/tag/git/" rel="tag nofollow">git</a>, <a href="http://casidiablo.net/tag/how-to/" rel="tag nofollow">how-to</a>, <a href="http://casidiablo.net/tag/instalacion/" rel="tag nofollow">instalación</a>, <a href="http://casidiablo.net/tag/linux/" rel="tag nofollow">linux</a>, <a href="http://casidiablo.net/tag/repositorio/" rel="tag nofollow">repositorio</a>, <a href="http://casidiablo.net/tag/tutorial/" rel="tag nofollow">tutorial</a>, <a href="http://casidiablo.net/tag/versiones/" rel="tag nofollow">versiones</a><br /></div>
]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/montar-servidor-git/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
