Curso de R

Git y Github

¿Por qué aprender un control de versiones?

  • Es útil tener un sistema formal de seguimiento de diversas versiones de trabajo.

  • Especialmente útil cuando escribe código.

  • Permite a los equipos colaborar fácilmente en la misma base de código.

  • Permite contribuir a proyectos de código abierto.

  • Es una habilidad atractiva para el empleo.

¿ Qué es Git?

  • Sistema de control de versiones que le permite realizar un seguimiento de archivos y cambios de archivos en un repositorio (repo).

  • Principalmente utilizado por los desarrolladores de software.

  • Sistema de control de versiones ampliamente utilizado con respecto a otros como Mercurial, Subversion, CVS.

  • Se ejecuta desde la línea de comandos (normalmente).

  • Se puede usar solo o en equipo.

¿ Qué es Github?

  • Es un sitio web, no un sistema de control de versiones.
  • Permite color tus repositorios Git línea.
    • El servidor de código más grande del mundo.
    • Alternativa a Bitbucket.
  • Beneficios de GitHub:
    • Copia de seguridad de los archivos.
    • Interfaz visual para navegar en los repositorios.
    • Facilita la colaboración de repositorios.
  • GitHub es sólo el Dropbox para Git.
  • Git no requiere de GitHub

Git puede ser un reto aprender

  • Diseñado (por programadores) para la potencia y la flexibilidad sobre simplicidad.
  • Es difícil saber si lo que hiciste fue correcto.
  • Difícil de explorar ya que la mayoría de las acciones son permanentes (en cierto sentido) y pueden tener serias consecuencias
  • Nos enfocaremos en el 10% más importante de Git.

Más información:

Navegando un repositorio de Github(1)

  • Ejemplo de repositorio: https://github.com/C-Lara/Curso-R.
  • Nombre de cuenta, nombre del repositorio, descripción.
  • Estructura de las carpetas.
  • Visualización de archivos:

    • Vista renderizada (con resaltado de sintaxis).
    • Vista sin formato (raw).
  • README.md:

    • Describe un repositorio.
    • Se muestra automáticamente.
    • Escrito en Markdown.

Navegando un repositorio de Github(2)

  • Commits:

    • Uno o más cambios en uno o más archivos.
    • Revisión con resaltadps
    • Se requieren comentarios para ser commit, puede ser útil la opción *commit -m *.
    • Comentario de confirmación más reciente mostrado en el archivo.
  • Página de perfil : https://github.com/settings/profile.

Creando un repositorio en Github

  • Haga clic en New repository :

    • Definimos el nombre, descripción, público o privado.
    • Inicializa con README (si va a clonar).
  • Notas:

    • No ha sucedido nada a en tu computadora local
    • Esto se hizo en GitHub, pero GitHub utilizó Git para agregar el archivo README.md.

Markdown básico

  • Lenguaje de marcado fácil de leer y fácil de escribir. .
  • Markdown permite editar el archivo README.md usando GitHub.
  • Código HTML válido también se puede utilizar en Markdown.

  • Sintaxis común:

    • ## tamaño del encabezado 2 .
    • *Cursivas* y **negrita**
    • [Enlace a gitHub](https://github.com)
    • * indica una viñeta.

Más información: Mastering Markdown.

Avance de lo que se va hacer

  • Copia tu nuevo repositorio GitHub en tu computadora.
  • Realice algunos cambios de archivos localmente.
  • Guardar los cambios localmente (hacer commit).
  • Actualiza tu repositorio de GitHub con esos cambios.

Clonando un repositorio de GitHub

  • Clonar = copia a una computadora local.
    • Es como copiar tus archivos de dropbox a una nueva máquina.
  • En primer lugar, cambie el directorio de trabajo en lugar donde se almacene localmente el repositorio: cd
  • Entonces, clone el repositorio: git clone <URL>.
    • Consigue el URL desde GitHub (termina en .git).
    • Clona en un subdirectorio del directorio de trabajo.
    • No hay comentarios visuales cuando escribes tu contraseña.
  • Navegamos hasta el repositorio con cd, luego lista los archivos ls.

Comprobación de repositorios remotos

  • remoto es una referencia a un repositorio que no se encuentra en una computadora local.
    • Como una conexión a una cuenta de dropbox.
  • Vemos los repositorios remotos: git remote -v.
  • El repositorio remoto origen fue configurado por git clone.
  • Nota: Los repositorios remotos son repositorios específicos.

Realizar cambios, comprobar el estado del repositorio

  • Haciendo cambios:
    • Modificar el README.md en cualquier editor de texto.
    • Crear un nuevo archivo: touch <nombrearchivo>
  • Comprueba tu estado: git status.
  • Estado de los archivos (posiblemente con código de colores):

    • Sin seguimiento (rojo).
    • Bajo seguimiento y modificado (rojo).
    • Preparado para confirmar (verde).
    • Confirmado.

Preparar y confirmar cambios

  • Preparar cambios para confirmar:
    • Añadir un solo archivo: git add .
    • Añadir todos los archivos rojos: git add -A.
  • Compruebe tu estado:
    • Los archivos rojos se han vuelto verdes.
  • Confirmar cambios:
    • git commit -m “mensaje para confirmar”
  • ¡Vuelve a comprobar tu estado!.
  • Comprueba el registro: git log.

Enviando cambios a Github

  • Todo lo que has hecho al repositorio clonado (hasta ahora) ha sido local.
  • Se ha estado trabajando en la rama principal master.
  • Envie los cambios confirmados a GitHub:
    • Es como sincronizar los cambios de archivos locales en Dropbox.
    • git push [nombre-remoto][nombre-rama].
    • A menudo: git push origen master.
  • ¡Actualice tu repositorio GitHub para comprobarlo!.

Cambios realizados de manera remota

  • Los cambios de los repositorios se han realizado en una máquina local y luego se han enviado a GitHub.
  • ¿Qué sucede si clona el repositorio de GitHub de otras personas y luego estos realizan cambios en él?.
  • Git no actualiza automáticamente un repositorio local con cambios remotos.

Recuperando cambios de GitHub

• Git permite recuperar manualmente los cambios de localizaciones remotas.

  • Es como realizar la sincronización de tus archivos locales desde Dropbox.
  • git pull [nombre-remoto][nombre-rama].
  • A menudo: git pull origen master.

Diagrama de flujo de Github

¿Cuándo es necesario realizar git pull ?

  • Realizar un git pull sólo es necesario cuando se han realizado cambios remotamente pero no localmente.
  • El escenario más común: el repositorio es propiedad de otra persona.
  • También es común que se realicen cambios en el mismo repositorio desde varios equipos.
  • Es un buen hábito realizar un git pull antes de empezar a trabajar-
    • Ningún daño se produce a un repositorio que no ha cambiado.

Conflictos de fusión

  • El problema más común cuando se recuperan datos desde github es un conflicto de fusión: existe un conflicto entre los cambios que se están fusionando y los cambios que se han realizado localmente.

  • Cómo evitar conflictos de fusion:

    • Si desea editar archivos de algún repositorio, realiza copias y edite las copias en su lugar. ? Cómo resolver un conflicto de combinación:
    • Descarta tus cambios: git checkout --<nombrearchivo>.
    • Luego intente realizar un pull.

Eliminar o mover un repositorio

  • Eliminación de un repositorio en GitHub:
    • Setting y a continuación Delete this repository.
  • Eliminación de un repositorio local:
    • ¡Borrar la carpeta!
  • Mover un repositorio local:
    • ¡Sólo mueve la carpeta del repositorio!

Gists: repositorios ligeros

  • Se tiene acceso a Gist: https://gist.github.com/.
  • Se puede incluir uno o más archivos.
  • Útil para snippets, presentaciones de tareas.
  • Pueden ser públicos o secretos (no privados).
  • Soporta edición, clonación, comfirmaciones, comentarios, etc.
  • ¡Creemos uno ahora mismo!.

Excluir archivos de un repositorio

  • Crea un archivo .gitignore en un repo: touch.gitignore.
  • Especificar exclusiones, una por línea:
    • Archivos individuales: pip-log.txt.
    • Todos los archivos con la extensión correspondiente: *.pyc.
    • Directorios: env /.
  • Ejemplos: https://github.com/github/gitignore

Dos formas de inicializar Git

  • Inicializando en GitHub:
    • Crear un repositorio en GitHub (con un README).
    • Clona el repositorio en una máquina local.
    • Esto es lo que se hizo en estas notas (recomendado).
  • Inicializando localmente:
    • Inicializar Git en un directorio local existente: git init.
    • Crear un repositorio en GitHub (sin un README).
    • Añadir un repositorio remoto: git remote add origen <URL>.

Saliendo de Vim

  • Siempre se incluye un mensaje como confirmación: git commit -m "mensaje"-
  • Se le llevará a un editor de texto si intenta hacer una confirmación sin un mensaje: git commit.
  • El editor de texto por defecto suele ser Vim.
  • Cómo salir de Vim:
    • Pulse la tecla Esc (para entrar en el modo de comando).
    • Escribe :q! (para salir sin guardar) y :wq para guardar y salir
    • Pulse la tecla *Enter.*