###### tags: `UNIAT` `TERMINAL` `OPS` `Clase` `Sistemas Operativos` # Git ![](https://image.slidesharecdn.com/versioncontrolgit-180130175149/95/version-control-git-3-638.jpg?cb=1517335204) Sistema de control de versiones. En lugar de tener muchos archivos con multiples versiones, podemos tener un sistema que gestiona las versiones. Donde facilita: * Trabajar de forma colaborativa. * Detectar errores. * Hacer cambios precisos. * Modificar y mezclar versiones ### git & GitHub ![image alt](https://miro.medium.com/max/2732/1*mtsk3fQ_BRemFidhkel3dA.png) Git funciona de forma local, instalas en tu computadora en cualquier sistema operativo, puedes utilizar acciones como: * checkout. * commit. * add. * init En cambio Git extiende esas funcionalidades a una plataforma en linea, donde permite compartir el proyecto de forma privada o publica. Llega a ser visto como una red social, el perfil personal puede ser armado como un CV que muestra realmente los proyectos que ha desarrollado. No es solo para programadores, puede ser utilizado para cualquier proyecto que involucre versiones. ## Descarga git https://git-scm.com/ ## ## git .gitignore ## Area de trabajo Crea un proyecto vacío de consola en Visual studio. Una vez que se haya generado el proyecto abre la carpeta desde la terminal. Genera el .git ignore para el proyecto desde https://www.gitignore.io/ ### Commandos comunes $ git init = Empieza en tu carpeta un repositorio (es el que arranca el repositorio). $ git add biografia.txt = Con esto el sistema de control de versiones, ahora sabe que existe biografia.txt. $ git commit -m “versión 1” = Es el que envía los últimos cambios del archivo a la base de datos del sistema de control de versiones para controlar los cambios que se hallan hecho. $ git add . = Esta es otra opción para agregar archivos, cuando le agregas el punto lo que haces es que agregas todos los archivos que hallan cambiado en la carpeta donde en ese momento estás. $ git status = Sirve para ver el estatus de tu base de datos. $ git show = Muestra todos los cambios históricos que hallas hecho. $ git log biografia.txt = El comando log sirve para ver la historia entera de un archivo. $ git push = El comando push sirve para re enviar hacia otro repositorio remoto lo que estás haciendo. $ git checkout = Cambia de branch ``` git init git add . git add .\ConsoleApplication1\ git add .\gitTest.sln git add .\.gitignore git add .\gitTest\ git add .\gitTest.sln git commit - "first commit" ``` ## Ingresar credenciales git config --global user.email "you@example.com" git config --global user.name "Your Name" ## Add remote ```bash= git remote add origin https://github.com/osadsanu/repo.git // Agregar tú propia repo git push -u origin master ``` ## Subir actualización de Git 1. Abre la solución de Visual studio (el archivo con terminación .sln) ## branches 1. Crear un branch desde github nuevo llamado loops 2. desde terminal `git pull` 3. desde terminal `git checkout loops` * Esto cambia la version del código a un nuevo branch 4. modificar el código fuente (Agregan un ciclo al código). 5. Agregamos los cambios `git add gitTest/*` 6. Commit a los cambios `git commit -m "add loops"` 7. push al repo `git push origin` ## git stages ![](https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2016/11/Git-Architechture-Git-Tutorial-Edureka-2-768x720.png) ## Tarea 16/oct * Crear un repositorio publico en GitHub. * Utilizando el código de algún proyecto de programación que tengas disponible. * Inicializa el repositorio de git desde la terminal. * Agrega un archivo .gitignore. * Agrega los archivos indispensables para él proyecto utilizando git add. * Has commit a estos cambios. * Publica esa version del código en el repositorio. * Crear un nuevo branch (uno nuevo ademas de master) * Publica una ligera modificación al proyecto ( puede ser un comentario, cambiar de nombre alguna variable, imprimir algo.) * Agregar un archivo de documentación README.md * Dentro de la carpeta contenedora :::warning (NO selecciones la opción inicializar con un archivo README.md al momento de crear el repositorio[Es para evitar un problema de mergeo y versiones]) ::: * Debe contener un titulo (puede ser clickbait) alusivo al proyecto. * Debe contener una descripción. * Debe contener una imagen. * Responder el correo con el enlace al repositorio. :::danger ### 👎🏻No hacer: * Subir el código compartiendo la misma cuenta de Git (una cuenta por usuario). ::: :::success ### 👍🏻 Puedes hacer: * Agregar suficiente información a la documentación del .README * En caso de no tener información para documentar, agrega texto, e imágenes de cualquier otro tema. ::: :::info ### Puntos extras Estos puntos son puntos extras a la calificación en el examen del siguiente parcial. En caso de no necesitarlos puedes regalarlos a algún compañero en necesidad de puntos con un valor de la mitad del valor. * Crea una copia del repositorio en GitLab (alternativa a GitHub) (+ 5 puntos). * Genera un issue y pull request en el repo de algún compañero. ( +2 [limitado a 1 uso]) * Acepta el pull request de algún compañero(+1 [limitado a 1 uso). ::: ## Git stages 1. `mkdir git2` 2. `cd git2` 3. `$null > README.md` 4. Agregar al archivo readme: ``` # Titulo Nuevo Hello world # Imagen ![nombre](https://cdn-media-1.freecodecamp.org/images/1*TnsFDs-DEye722CrQXjv8w.png) # Tabla | Alumno | Calificacion | | ------ | -- | | Michel | 100| | Alguien| 54| # Linea de codigo `$null > README.md` # bullets * Bullet 1 * Bullet 2 1. Bullet 1. 2. Bullet 2. <h1>Titulo1 </h1> <h2>Titulo2 </h2> # Bloque de codigo ```C++ cout << "texto" << endl; ``` 5. crear un repositorio en github. 6. Agregar el codigo a github. ## Actividad / Tarea (23/oct) 1. En la maquina virtual, clona el repo que creaste. `git clone url` 2. compilalo utilizando g++ `g++ main.cpp -o app` :::warning Posible problema: Abre el programa No utilices funciones con `System` estas solo funcionan en windows, comentalas o cambialas por el equivalente en linux ::: 3. corre el programa `./app` 4. Crea otro branch llamado 'update' `git checkout -b update` 6. Modifica el codigo. 7. agrega y has commit a los cambios. `git add .` `git commit -m "mensaje"` 9. cambia al branch master `investiga este comando` 11. has merge a los camibios. `investiga este comando` 12. has push a los cambios (incluyendo el archivo compilado por g++) `git add .` `git commit -m "example"` `git push` 13. Envia el enlace de la repo a `oscar@ebron.tech`