Ir al contenido principal

Cómo crear y clonar repositorios en Git

En este post vamos a ver los conceptos básicos sobre Git, el sistema control de versiones distribuido que está tan de moda gracias a GitHub.

¿Cómo creamos un repositorio?

En el directorio del proyecto que queremos asignar al nuevo repositorio, hacemos:
$ git init
$ git add .
$ git commit -m "Nuestro primer commit con Git"

El primer comando nos crea una carpeta llamada .git, que contiene los ficheros que necesita nuestro repositorio. Si habéis trabajado con CVS o SVN, estaréis acostumbrados a ver las carpetas .cvs o .svn por todos sitios. A algunos os habrá pasado que alguien os pase parte de su proyecto y venga con sus carpetas .svn incluidas. Con .git esto no nos va a pasar, ya que sólo tenemos la carpeta .git una vez y así nuestro proyecto queda mucho más limpio.

Con el segundo comando le indicamos a Git todos los ficheros que vamos a querer que nos incluya y 'commiteando' los añadimos permanentemente al repositorio.

¿Cómo utilizamos un repositorio ya existente?

Cuando empezamos a trabajar en un proyecto, lo más normal es que el repositorio ya exista y lo que necesitaríamos hacer es clonarlo a nuestro ordenador.

Para trabajar con un proyecto real,  vamos a clonar un repositorio de GitHub, en este caso uno de twitter llamado twitter4j. He elegido éste porque me gusta twitter y Java, no por nada en especial. Vosotros os podéis bajar el que más os guste :)
$ git clone https://github.com/twitter/twitter4j.git

Como veréis en vuestro ordenador, este comando nos crea la carpeta twitter4j con todos los ficheros que contiene el proyecto.

En este post acabamos de ver cómo dar nuestros primeros pasos con Git, aunque todavía nos queda mucho por aprender sobre Git y lo haremos en post posteriores.

Referencias: Tutorial Git Oficial

Comentarios

Entradas populares de este blog

Leer un fichero properties con java.util.Properties

Los ficheros .properties son simples ficheros de texto que se suelen utilizar para guardar parámetros de configuración, en forma de pares clave-valor. Ejemplo de fichero: configuration.properties #User parameters user.name=Ana user.language=spanish Si estamos usando Java, podemos utilizar la clase java.util.Properties para leer los parámetros de este fichero: private static final String USER_NAME = "user.name"; private static final String USER_LANGUAGE = "user.language"; public void showProperties() throws Exception { Properties p = new Properties(); InputStream is = App.class.getResourceAsStream("/configuration.properties"); p.load(is); is.close(); String userName = p.getProperty(USER_NAME); String userCountry = p.getProperty(USER_LANGUAGE); System.out.println("userName: "+userName); System.out.println("userLanguage: "+userCountry); } Después de ejecutar este método, obtendríamos la siguiente salida: ...

JSF 2.0: Managed Beans (III)

Anteriormente ya hemos visto que cuando se declara un bean, tenemos que darle un scope: application, session, view, request, none. Un scope es un mapeo entre nombres y objetos que se almacena durante un determinado periodo de tiempo. En este post vamos a explicar cada uno de ellos. Si declaramos el bean desde el fichero faces-config.xml, indicamos el scope en <managed-bean-scope> y si queremos hacerlo con anotaciones, utilizaremos @{Application,Session,View,Request,None}Scoped Application Con este scope, se guarda la información durante toda la vida de la aplicación web, independientemente de todas las peticiones y sesiones que se realicen. Este bean se instancia con la primera petición a la aplicación y desaparece cuando la aplicación web se elimina del servidor. Si queremos que el bean se instancie antes de que se muestre la primera página de la aplicación, usamos la propiedad eager a true. @ManagedBean(eager=true) ó <managed-bean eager="true"> Session...

JSF 2.0: Message bundles

Los message bundles son ficheros .properties que guardan mensajes del tipo clave=valor. Si centralizamos todos los mensajes de nuestra aplicación en estos ficheros, es más fácil poder localizarlos si queremos realizar algún cambio y también nos ayuda para la internacionalización de la aplicación. Ejemplo: messages.properties (en src/java/com/examples) con dos mensajes name=Tu nombre: age=Tu edad: ¿Cómo los declaramos? 1) En cada página JSF donde lo necesitemos <f:loadBundle basename="com.examples.messages" var="msgs"/> 2) De manera global en faces-config.xml <application>      <resource-bundle>           <base-name>com.examples.messages</base-name>           <var>msg</var>      </resource-bundle> </application> Esta opción es más eficiente ya que sólo crea el bundle una v...