Professional Documents
Culture Documents
$ git init
$ git add .
5. Crear un repositorio en BitBucket indicando que se tiene un projecto existente y utilizando el link
que aperece para conectar al remoto ejecutar:
Estado de Repositorio
Se usa el comando git status para evaluar el estado del repositorio en la rama actual:
$ git status
On branch master
Después de haber hecho cambios en, o agregado/borrado, archivos se deben preparar para
poder hacer commit.
Para agregar todos los cambios hechos se utiliza el comando:
$ git add -A
Unstage un archivo
Para evitar que los cambios a un archivo o archivos agregados sean incluidos en el próximo
commit se utiliza el comando:
Solo los cambios/archivos que han sido “staged” con el comando git add se incluyen en
próximo commit, el cual se realiza con:
--amend = Edit the commit message associated with the most recent commit
--amend <File_1> <File_2> . . . <File_n> = redo the previous commit and include changes to
specified files
Para hacer commit solo de los cambios a un archive especifico:
Donde -<n> es opcional, se muestran los n commits mas recientes (sustiuir <n> por un numero)
$ git log -2 entonces mostraría los últimos dos commits hechos,y quien los hizo.
Para enviar los commits hechos al servidor del repositorio y actualizar el “remote”, se utiliza el
comando:
Donde el comadno
$ git push
Envia todos los commits para todas las ramas al remote, no se toman en cuenta las ramas que
no son comunes al repositorio local y el remoto.
Esto ultimo ocurre cuando se ejecuta por primera vez para cada rama lo siguiente:
Se observa que el repositorio remoto se actualiza con el commit local, incluyendo su mensaje, lo
que significa que nuestro archivo “SomeClass.java” fue agregado exitosamente al remote.
IMPORTANTE: Si alguien más hizo push a la rama master, tendrá que hacer fetch de los
cambios incorporados por la otro persona, antes de hacer push de los suyos.
Fetching
Pulling
Si la rama actual está configurada para ser tracking de una remota (esto ocurre automática
mente con el master local y del remoto al clonar, o al hacer fetch de todo el remote), basta
hacer git pull al estar en la rama local para que se descargue la data de la rama remota, y git
intente hacer merge del remote branch al local.
Para obtener información de que ramas del remote se está haciendo tracking, se puede
llamar al comando:
Note que hasta ahora hemos estado trabajando en la rama master (es el nombre que git le da a
laprimera rama creada por defecto) y al hacer git checkout test nos colocamos en la rama de
ese nombre, esto se observa en el texto en azul en la ventana.
Ahora los cambios y commits de ‘test’ no afectarán a ‘master’ hasta se haga un merge local de
‘master’ con ‘test’
Para adicionar los cambios de una rama a otra, nos colocamos primero en la rama a la que
queremos adicionar cambios de otra:
y llamamos al comando:
Si se hacen cambios en el mismo archivo, en dos ramas diferentes, al tratar de hacer merge de
una rama con la otra, ocurrirá un conflicto.
Por ejemplo, si se cambió una línea del arcihvo ‘SomeClass.java’ en una rama ‘test’, se hizó
commit. Luego se cambió a la rama master, se cambia el mismo grupo de líneas en
‘SomeClass.java’ y se hace commit, al hacer merge de test con mater ocurre:
Git indica el o los archivos donde no pudo hacer merging de manera automática
Para resolver los conflicto hay que manualmente editar el archivo donde ocurre el conflicto,
donde se apreciará los siguiente:
Git nos indica que ambos archivos se modificaron, como mencionamos previamente.
Para resolver esto hay reemplazar todo el bloque con el contenido de alguno del os archivos,
por ejemplo, usaremos los cambios en ‘test’ (puede ser hasta una mezcla)
Una vez resuelto el conflicto hay que agregar (o hacer staging) de los cambios con
git add .