Ir al contenido principal

Cómo trabajar localmente con Git

En el post anterior aprendimos cómo crear y clonar un repositorio en Git. Ahora vamos a ver qué podemos hacer de manera local con nuestro repositorio.

¿Cómo añadimos un fichero nuevo?

$ git add fichero.txt

¿Cómo guardamos los cambios localmente?

$ git commit -m "Descripción"

Algo a tener en cuenta cuando commiteamos es que si hemos cambiado un fichero y no hacemos 'git add' de ese fichero, aunque ya estuviese en el repositorio, no será incluido en el commit que hagamos.

Para ahorrarnos tener que hacer 'git add' de todos los ficheros que tienen cambios, antes de commitear, podemos utilizar el siguiente comando 2 en 1:
$ git commit -am "Descripción"

Este comando no nos añade aquellos ficheros que sean nuevos.

¿Cómo podemos ver el estado de nuestro repositorio?

Si queremos ver qué ficheros tiene nuestro proyecto, si están incluidos o no en el repositorio y si tienen algún cambio que no hemos commiteado todavía, utilizamos el siguiente comando:
$ git status
# On branch master
nothing to commit (working directory clean)

Como podemos ver en este ejemplo, no tenemos ningún fichero nuevo ni hemos hecho ningún cambio.

Vamos a ver ahora un ejemplo donde utilizamos los comandos que acabamos de aprender:
$ touch fichero.txt
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# fichero.txt
nothing added to commit but untracked files present (use "git add" to track)
$ git add fichero.txt
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: fichero.txt
#
$ git commit -m "Nuestro primer commit con Git"

Como podemos ver en el ejemplo, hasta que no añadimos el nuevo fichero al repositorio mediante 'git add', nuestro nuevo fichero es considerado por Git como "Untracked File". Después de añadirlo, el estado sí que nos dice que tenemos cambios que debemos commitear. Esto es algo de lo que tenemos que estar atentos cuando trabajemos con Git.

¿Cómo ignorar ficheros?

Si hay ficheros que no queremos añadir a Git, pero tampoco queremos que nos aparezca todo el rato como "Untracked File", nos creamos un fichero llamado .gitignore e indicamos qué ficheros queremos que ignore.
$ touch fichero.out
$git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# fichero.out
nothing added to commit but untracked files present (use "git add" to track)
$ touch .gitignore
$ echo "*.out" >.gitignore
$ echo ".gitignore" >>.gitignore
$ git status
# On branch master
nothing to commit (working directory clean)

Como podemos ver en este ejemplo, hemos tenido que decirle al .gitignore que se ignore a sí mismo... qué crueles podemos llegar a ser ;d

En posteriores posts seguiremos aprendiendo un poco más sobre Git :)

Referencia: 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...