Git en profundidad

16 septiembre, 2024 0 Por admin
Git en profundidad

1. Clonando, no descargues el zip

Vamos a la cuenta de github de un usuario cualquiera: https://github.com/AngellLSF9987

Dentro pinchamos en “Repositorios” para ver sus programas.

Vamos a ver su proyecto de AVA_CURSO_PYTHON

Para descargarnos su programa en nuestro pc tenemos 3 opciones:

1 Download zip

3.copiar el enlace

2.Abrir con github desktop

Si pinchamos en Download zip:

Los archivos que hay dentro del zip no tienen ninguna carpeta “.git” y por lo tanto no tienen un control de versiones o rastreamiento:

La mejor opción es pinchar en copiar el enlace y clonarlo:

Vamos al git bash, nos situamos en el escritorio y escribimos “git clone lo_que_hemos_copiado”

Nos metemos al proyecto con cd AVANZA… y escribimos “code .” para que se abra el Vscode en este directorio:

Abrimos una nueva terminal:

 

2. Manejando archivos

Cuando cambiamos de idea y no queremos comitear los cambios nuevos tenemos varias opciones.

Vamos a crear un archivo llamado “main.py” (1), dentro le ponemos print (“hola mundo”)(2), y como ya sabes escribimos git init(3), git add .(4), git commit -m “primer commit”(5) y git log(7):

2.1 git restore

2.2 git rm nombre_archivo_a_eliminar

Creamos el archivo dos.py(1), le añadimos un texto (2), los añadimos al versionador (3) y le hacemos una foto al proyecto (4):

Llegado a este punto nos arrepentimos y queremos sacarlo del versionador y borrarlo:

Lo hemos borrado por completo.

2.3 Recuperar hasta el commit anterior con git reset –hard xxxxx<

Ahora creamos el archivo “dos.py”(1) y lo hemos comiteado como 2 commit (4)

Lo borramos y queremos volver a recuperarlo, es decir, queremos volver al punto del commit anterior, escribimos “git reset hard xxxx”:

Al pulsar intro:

recuperamos el estado anterior.

2.3 git checkout nombre_archivo para deshacer cambios del archivo:

Nos hemos equivocado y hemos puesto palabras sin sentido en nuestro archivo versionado “dos.py”, queremos volver a ponerlo como estaba:

Escribimos git checkout nombre_archivo:

 

2.4 git reset –hard o git stash

Para deshacer los cambios de todos los archivos

2.5 git reflog

2.6 Archivos ignorados en .gitignore

No versionar los archivos en todas las carpetas que terminen por .DS_Store:

**/DS_Store

Ignorar un archivo:

nombre_arvido.extension

ignorar todos los archivos que terminen en una extensión:

*.extensión

Ignorar una carpeta

nombre_carpeta/

ignorar el contenido de una carpeta:

nombre_carpeta/*.*

3.Parámetros del Log, consultando commits y los alias

3.1Limitar los commits mostrados con “git log -n entero”

Vamos a descargarnos este juego: https://github.com/juan1639/pacman-python-pygame

Le hacemos un “git log -n 2” para que solo nos muestre los 2 últimos commits:

3.2 Mostrar los commits en una sola línea con “git log –oneline”

3.3 Mostrar los commits cronológicamente con “git log –before=”aaaammdd” y “git log –after=”aaaammdd”

3.3 Mostrar los commits según los participantes con “git log –author=”””

4 Alias

Los alias nos van a permitir  escribir “git tu_alias” en lugar de un texto muy largo, ya que git tiene muchas opciones

git config –global alias.nombre_del_alias_que_elijas “log –graph –decorate –all –oneline”

5. Gestionando los commits

                                                        

5.1 git commit –amend -m “nuevo texto”

Sirve para cambiar el texto del commit indicado

5.2.git reset  –hard git reset

5. Etiquetas

6.Ramas

Git nos permite crear diferentes estados de tiempo en nuestros proyectos.

6.1 git brach  ver rama actual

6.2 git branch -a  para ver todas las ramas

6.3 git branch nombre_nueva_rama, crea una nueva rama

6.4 git checkout nombre_rama, para cambiar a otra rama

6.5 git checkout -B “nombre_nueva_rama”, para crear una nueva rama y pasar a ella

6.7 (situado en la rama principal) git merge rama_para_unir_a_la_principal

6.8 git branch -d nombre_rama_a_borrar 

6.9 git branch -M nuevo_nombre_rama_actua 

6.10 Establecer la rama principal por defecto

7. Gestionando repositorios remotos

git config –global init.defaultBranch nombre_rama

7.1 git remote -v para ver los repositorios remotos

7.2 git remote add origin git://github.com/tu_usuario/tu_proyecto.git, para añadir repositorios

7.3 git fetch o git pull, para recibir las actualizaciones

7.4 git push origin nombre_rama, para enviar tus cambios al repositorio

7.5 git remote show origin

7.6 git remote rename origin nuevo_nombre_que_no_sea_origin, para renombrar

7.7 git remote rm origin, para borrarlo