Introducci贸n a Git

1

驴Por qu茅 usar un sistema de control de versiones como Git?

2

驴Qu茅 es Git?

3

Instalando GitBash en Windows

4

Instalando Git en OSX

5

Instalando Git en Linux

6

Editores de c贸digo, archivos binarios y de texto plano

7

Introducci贸n a la terminal y l铆nea de comandos

Comandos b谩sicos en Git

8

Crea un repositorio de Git y haz tu primer commit

9

Analizar cambios en los archivos de tu proyecto con Git

10

驴Qu茅 es el staging?

11

驴Qu茅 es branch (rama) y c贸mo funciona un Merge en Git?

12

Volver en el tiempo en nuestro repositorio utilizando reset y checkout

13

Git reset vs. Git rm

Flujo de trabajo b谩sico en Git

14

Flujo de trabajo b谩sico con un repositorio remoto

15

Introducci贸n a las ramas o branches de Git

16

Fusi贸n de ramas con Git merge

17

Resoluci贸n de conflictos al hacer un merge

Trabajando con repositorios remotos en GitHub

18

C贸mo funcionan las llaves p煤blicas y privadas

19

Configura tus llaves SSH en local

20

Uso de GitHub

21

Cambios en GitHub: de master a main

22

Tu primer push

23

Git tag y versiones en Github

24

Manejo de ramas en GitHub

25

Configurar m煤ltiples colaboradores en un repositorio de GitHub

Flujos de trabajo profesionales

26

Flujo de trabajo profesional: Haciendo merge de ramas de desarrollo a master

27

Flujo de trabajo profesional con Pull requests

28

Utilizando Pull Requests en GitHub

29

Creando un Fork, contribuyendo a un repositorio

30

Haciendo deployment a un servidor

31

Hazme un pull request

32

Ignorar archivos en el repositorio con .gitignore

33

Readme.md es una excelente pr谩ctica

34

Tu sitio web p煤blico con GitHub Pages

Multiples entornos de trabajo en Git

35

Git Rebase: reorganizando el trabajo realizado

36

C贸mo usar Git Stash: guarda cambios temporalmente

37

Git Clean: limpiar tu proyecto de archivos no deseados

38

Git cherry-pick: traer commits antiguos al head del branch

Comandos de Git para casos de emergencia

39

Git Reset y Reflog: 煤sese en caso de emergencia

40

Reconstruir commits en Git con amend

41

Buscar en archivos y commits de Git con Grep y log

Bonus sobre Git y Github

42

Comandos y recursos colaborativos en Git y GitHub

43

Tu futuro con Git y GitHub

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Flujo de trabajo profesional: Haciendo merge de ramas de desarrollo a master

26/43
Recursos

Para poder desarrollar software de manera 贸ptima y ordenada, necesitamos tener un flujo de trabajo profesional, que nos permita trabajar en conjunto sin interrumpir el trabajo de otros desarrolladores. Una buena pr谩ctica de flujo de trabajo ser铆a la siguiente:

    1. Crear ramas
    1. Asignar una rama a cada programador
    1. El programador baja el repositorio con git pull origin master
    1. El programador cambia de rama
    1. El programador trabaja en esa rama y hace commits
    1. El programador sube su trabajo con git push origin #nombre_rama
    1. El encargado de organizar el proyecto baja, revisa y unifica todos los cambios

Aporte creado por: Alejandro Dubon.

Aportes 610

Preguntas 185

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

con solo colocar la etiqueta <meta charset=鈥淯TF-8鈥> en el <head> del HTML se soluciona. Yo se que tu lo sabias 馃槈

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

Bienvenidos a platzi
![](

Por aqu铆 un apunte pendiente 馃榿

Y pensar que hace solo 25 clases no sabia nada de Git y ahora puedo trabajar en equipo con alguien m谩s.

Para solucionar el problema de tildes es necesario agregar dentro del <head> un <meta>, es el siguiente:
<meta charset=鈥淯TF-8鈥>
Si usas VSCode al crear un archivo, teclear el simbolo** ! **te crear谩 la estructura completa, se le llama Emet donde ya viene la estructura del HTML. Lo ideal es generar todo desde cero si apenas est谩s aprendiendo pero les dejo mi aporte.

dejo los cambios realizados en header y footer:
header


cambios en footer


Reto del merge

Basicamente el flujo de trabajo seria como:

  1. Crear ramas
  2. Asignar una rama a cada programador
  3. El programador baja el repositorio con git pull origin master
  4. El programador cambia de rama
  5. El programador trabaja en esa rama y hace commits
  6. El programador sube su trabajo con git push origin #nombre_rama
  7. El jefe baja y unifica todos los cambios

Mi pregunta es como Freddy le compartio el repositorio a Anita, 驴le compartio la llave publica? o simplemete le compartio el link de su repositorio???
Alguien que me ayude???

Carpe Diem:
Esta es probablemente la clase m谩s interesante del curso, o por lo menos lo fue para m铆. IO trat茅 de sacarle al m谩ximo provecho, Como conclusi贸n puedo decir lo siguiente:
-Simular dos ambientes es agotador para el profesor y su equipo de producci贸n. Tambi茅n lo es para el estudiante.
-El verdadero poder de Github se desata en cuanto se ordena el trabajo colaborativo mediante ramas.
-El manejo adecuado de este poder es m谩s sencillo para quienes ya tienen experiencia (alias, muy malas experiencias, s铆 es mi caso) en programaci贸n en grupo (s铆, te miro a t铆 Team Fundation).
-Observen que el instructor pone mucho cuidado cuando ejecuta el 鈥減ull/push鈥, no s贸lo que lo ejecuta en ese orden, sino que respeta el emparejamiento de ramas, es decir, s铆 localmente est谩 situado en header, hace un pull/push de la rama remota header.
-Bueno IO me equivoqu茅, aunque no la lie tan parda, pude hacer un 鈥済it merge --abort鈥 y luego una muy corta sesi贸n de soluci贸n de conflictos y revisi贸n del c贸digo. A煤n as铆 esto me dejo la mejor experiencia.
-Esta es la 煤ltima y nos vamos, EQUIVOQUENSE!!! Por Dios, mejor aqu铆 entre las criaturas del Se帽or, que en un puesto corporativo jug谩ndose su cuello flaco.
Saluti,
Fabricio

Un bigote hubiese facilitado el cambio de personajes.

Ay es que yo si ser茅 inteligente! Cuando fui a hacer el git add me sal铆a error de que no encontraba la ruta del archivo y cuando ejecutaba ls tampoco me sal铆a la carpeta de la imagen del logo:

Y bueno luego de buscar como 20 minutos la soluci贸n en internet me di cuenta de que me hab铆a descargado la imagen en otra carpeta de mi disco duro鈥 Mov铆 la imagen a la carpeta de mi repositorio y ya me dej贸 a帽adir la imagen.
F por m铆

Si queren cancelar un **merge ** pueden usar git merge --abort , esto quita los archivos del staying area.

Freddy despues de terminal la clase 馃槃

Apuntes 馃槉

Soy la 煤nica que pausa el video r谩pido para tratar de hacer el blog como lo tiene Freddy? hacer esto me motiv贸 a tomar el curso de Platzi de HTML y CSS, pero aun as铆 tambien tome lo que hizo freddy para darle un peque帽o twist!!!
creo que muchos de ustedes mis compa帽eros tambien lo hicieron

Para el Reto, el footer me marc贸 varios conflictos, despu茅s de solucionarlos realic茅 los siguientes comandos:
git checkout master
git merge footer
git pull origin master
git push origin master

Haciendo todo con buenas pr谩cticas de antes de enviar un push, hacer un pull.

Es bien curioso como en otros cursos como el de Inteligencia emocional miembros del team Platzi hacen las actuaciones, pero en sus cursos Freddy hace sus mismas actuaciones. Jajaja, todo un multifac茅tico. xD

馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞馃憞
馃憠Para sacar los iconos se usa la combinaci贸n de win + . eso en Windows 馃憟
鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤鈽濃槤

El problema de las tildes se puede solucionar a帽adiendo la siguiente l铆nea dentro de la etiqueta <head>
<meta charset=鈥淯TF-8鈥/>
Esto permite a帽adir la codificaci贸n de caracteres de 8 bits de Unicode (Lo que permite ver las tildes y el coraz贸n)

Bueno, en esto se aprende cag*ndola 馃槷

Me volv铆 loco con el git cometiendo errores y arreglando.

Total, esto fue todo lo que me ocurri贸:

Resumen del flujo de trabajo de un equipo interno 馃榾鉁:

Parte 1

Parte 2

Por lo general, tengo una computadora as铆 que salto los pasos de 鈥淎nita鈥

Entonces cual seria la forma correcta de subir imagenes a github???

Lol por que no todos los cursos de platzi son con Freddy xD? es demasiado divertido

Esta vez dejo mis apuntes de esta secci贸n al inicio 馃槃
c

Se soluciona con:

<meta charset ="utf-8">
<head>
        <title> Bienvenido a Hyperblog 2.0 </title>
        <meta charset = "utf-8"/>
    </head>

Creo que para resolver el problema de unicode se tiene que hacer en el head:

<head>
	...
	<meta charset='UTF-8'/>
	....
</head>

No se mucho de html, si me equivoco haganmelo saber porfa se los agradeceria.

Si al colocar arbolito, no funciona, puedes volver a crearlo asi: alias arbolito="git log --al --graph --decorate --oneline"
En general para crear un alias : alias [nombre del alias]=鈥渃omando鈥

consulta, en el dia a dia, en un proyecto que requiera imagenes u otros archivos que no sea codigo. y este compartido por multiples Dev, cual seria el repositiorio unico para dichos archivos ?, partiendo de la premisa que es una mala practica subir imagenes a github, lab, otros.

Despues de varios dias de darle vuelta a esta clase, por fin la he concluido exitosamente, y para entenderla y poder practicar con mis proyectos personales, le he dedicado bastantes horas鈥!!!

Soy un hombre sencillo, veo algo de SpaceX y doy like autom谩ticamente

Mi resumen:

Pull request -> Estado intermedio del codigo antes del merge, para que otros miembros del equipo puedan aprobarlo y hacer merge en master, esto es una caracteristica de GitHub y para Gitlab se llama Merge Request

Anita la barbudita xd

Que ligeras se sienten las clases de Freddy! 馃槃 super bien!

git y linux no son cosas de este planeta

En HTML 5 se usa la etiqueta meta en el head, con el atributo charset= 鈥淯TF-8鈥 para que puedan leerse las tildes. Es bueno tambi茅n cambiar el idioma en el que HTML detecta que estamos escribiendo cambiando en lang el 鈥渆n鈥 (ingles) por 鈥渆s鈥 (espa帽ol).

Pensando que el reto era sencillo, comet铆 un error gravisimo y envi茅 los cambios a GitHub. Tuve que resetar los commits y fusionar las ramas nuevamente (en mi repositorio local), pero me encontr茅 que al hacer git push origin master, el repositorio remoto no se actualizaba. Si esto les sucede, descubr铆 que se puede hacer git push origin master --force forzando todos los cambios.

B谩sico de HTML, pero bueno para que empezar鈥 馃挌

<meta charset=鈥淯TF-8鈥>

Para el problema con las tildes, debes a帽adir en tu c贸digo al comienzo del head 鈥<meta charset=鈥渦tf-8鈥>鈥, es el standard para los signos especiales.

Mi cerebro explota, pero todo esta muuuy bien explicado.

馃巿 UTF-8 es la codificaci贸n de caracteres m谩s com煤n en Internet. Adem谩s es compatible con ASCII y puede representar cualquier car谩cter Unicode.

<meta charset=鈥淯TF-8鈥>

este te ayuda

Mis notas
Flujo de trabajo:

  1. Crear ramas ramaDesarrollo1, ramaDesarrollo2:
        git branch ramaDesarrollo1 ramaDesarrollo2
        git pull origin ramaDesarrollo1
        git push origin ramaDesarrollo1  
  1. Asignar una rama a cada programador.
  2. El programador baja el repositorio para cada programador, ejemplo programdor 1:
        git pull origin ramaDesarrollo1
        git push origin ramaDesarrollo1
  1. El programador trabaja en esa rama y hace commits:
   git commit -am "comentarios"
  1. El programador sube al repositorio remoto su trabajo, ejemplo programdor 1:
        git pull origin ramaDesarrollo1
        git push origin ramaDesarrollo1
  1. El jefe baja y unifica todos los cambios

en brach:

	git checkout ramaDesarrollo1
	git pull origin ramaDesarrollo1
            REVISA

revisi贸n pasa, entonces en main:

            git checkout main
            git merge ramaDesarrollo1

envio repositorio remoto:

            git pull origin main
            git push origin main

Para corregir el problema de la codificaci贸n se puede usar algo como <vocalConTilde>acute; y con esto no hay problema del OS o del navegador en el que se abra. Por ejemplo:

<h1>Esto es un t&iacute;tulo</h1>
<p>Esto es un p&aacute;rrafo</p>

Esta parte es basicamente un repaso de las demas, pero hay que estar atento a los cambios que haces y donde los haces, la ultima parte es solo merge, pull y push.

suponiendo que estoy en la rama master
coloco git pull origin footer para traer la rama footer actualizada desde github,
git log para verificar los commits y revisar que mi master este con el merge anterior
git checkout master
una vez revisados los cambios en mi rama master puedo hacer git merge footer
para subir la fusion de master y footer hago git pull original master, git push original master para que en github quede la fusi贸n de las ramas: master y footer

Esa respuesta tambien la pueden conseguir en el curso del desarrollo web esto pasa por que no definimos .
Como va a leer los caracteres el navegador y en que idioma los va escribir .
Soluci贸n .
<meta charset=鈥淯TF8鈥>
Este meta le indica a los navegadores en que lenguaje va escribir, va incluido en la zona no visible del html el head .
Este meta sirve para el espa帽ol. .

<head>
    <meta charset="utf-8">
    <title>XXXX</title>
  </head>

Cuando hacia merge del header con el master, me di cuenta que en la historia de commits este no aparecia como un merge, sino como un commit mas sumado a master, esto es por que partian de lo mismo y era solo header el que se modificaba, normalmente los merge los toma asi:

Pero al no haber modificaci贸n en master y hacer un merge lo toma como fast forward.

Podemos usar la opcion --no-ff pata tener lo siguiente

Ya que al hacerlo de forma normal tenemos lo siguiente:

aplicamos mejor git merge header --no-ff

Para que no tengan el problema de las tildes, dentro de la etiqueta <head> colocas el tipo de unicode con el que vas a trabajar as铆:

 <meta charset="UTF-8" />

Esto soluciona el problema de las tildes.

<head>
        <meta charset="UTF-8">
</head>

驴se podr铆a realizar un trabajo entre los participantes del curso para reforzar lo aprendido?

En el minuto 6:34 hay algo obvio, y es que StackOverflow nunca falla en la vida de un desarrollador.

Si quieren personalizar su blog con Colores gradientes de fondo les dejo el link 馃槃 solo eligen los colores y pegan en css. Si tienen alguna duda (por si no saben de HTML o CSS) respondan y cuando los vea les contesto! 馃槃

si es mala practica dejar los archivos binarios en el repo (imagenes) entonces en donde se deben dejar?

Para resolver el problema de las t铆ldes hay que agregar al head

<meta charset="utf-8">

Para arreglar el problemas de caracteres se puede modificar la cabecera lo siguiente;

<head>
<title>Bienvenido a Hyperblog 2.2</title>
<link rel=鈥渟tylesheet鈥 href=鈥渃ss/estilos.css鈥 />
<meta charset=鈥淯TF-8鈥>
</head>

<head>
<title>El titulo del blog post</title>
<link rel=鈥渟tylesheet鈥 href=鈥渃ss/estilos.css鈥/>
<meta charset=鈥淯TF-8鈥><!-- Esto soluciona el tema de los caracteres raros鈥>
</head>

Me encanta estar confundido! Hice un enredo y record茅 que me faltaba hacer commit XD. Ahora si siento que estoy aprendiendo!

Dale 馃挌 si a ti tambi茅n te sorprendi贸 que Freddy edita HTML en vim 馃槺

Espero les sirva en mi caso me aparecio este error

no me dejaba realizar el merge, entonces ejecute

  • git add . && git commit -m "Resuelto el conflicto"
    volvi a hacer el merge y fue sin problemas

Para vos que est谩s en este video, yo ven铆a realizando todas las pr谩cticas, pero aqu铆 necesitas 2 computadoras para hacer otro github, ya que tu m谩quina te permite una sola.
O realizar un cambio de credenciales como encontr茅 en un aporte.
Es importante que los veas y con copiar y pegar para que te quede en un cuadernillo en un documento es suficiente.
Reci茅n en el video 29 con FORK podr谩s practicar clonando del repositorio de Freddy para poder hacer el push al github de uno mismo directamente. As铆 no te frustras y continuas con el aprendizaje.

Como cuando Freddy reviza tu trabajo.

Informaci贸n resumida de esta clase
#EstudiantesDePlatzi

  • Una buena pr谩ctica es no agregar archivos binarios en GitHub

  • Importante que los desarrolladores trabajen en sus propias ramas y no en la principal

  • Al ser el l铆der del proyecto o el product manager es mi responsabilidad hacer el merge entre las ramas que se necesiten

Por si tenias curiosidad sobre la diferencia de logotipo, isotipo,etc

<head>
<meta charset=鈥渦tf-8鈥/>

</head>
As铆 solucionas el problema de las tildes.

Complementando, adicional al Ctrl+Shift+R para recargar, se puede usar Shift+鈥楥lick en Bot贸n de Recargar鈥

Mi blog hasta el momento:

No s茅 como pero hice un super truco, pero s贸lo se puede hacer una vez, por alguna raz贸n cuando hice merge env铆e footer y header al mismo tiempo xD鈥 ahora que sige? desde Master ir a una version anterior cuando no estaba ese merge. y repetir el proceso con fines educativos. eso si, leyendo notas y repitiendo el video.

por practicidad estos son los cambios que hizo en el css 馃槂 saludos

![](url)

Cometiendo errores aprend铆 bastante, prefiero romper las cosas aqu铆 y ahora. Le voy perdiendo el miedo a los errores n_n

Para un buen flujo de trabajo:

  1. Podemos trabajar d谩ndole una rama a cada programador
  2. Cada programador sube sus cambios a su rama con $git push origin <rama>
  3. Luego de revisar los cambios podemos hacer los cambios de forma local. Bajamos un branch y le hacemos merge con master, luego la subimos fusionada en la main:master del remoto

Logre unir Footer y Header en master/ El comienzo de un gran camino con la ayuda del gran freddy

El problema de que las tildes y algunos otros caracteres salgan mal, se soluciona f谩cilmente colocando en el <head> del documento .html la etiqueta <meta chraset=鈥淯TF-8鈥>
!Y LISTO!

Supere el desafio depues de 1 hora ![](

El capitulo 25 y 26 me sacaron canas, pero lo logre. Ya que trabaje en una maquina virtual para simular anita, tuve mil y un problemas, con la maquina con las extensiones, con Linux con git en la parte de autenticaci贸n y muchos mas jaja. Pero vali贸 la pena porque aprend铆 el triple, solo intent谩ndolo.

Algo me dice que los comandos que m谩s se usan son git status y git pull

Aqui una pregunta, COntexto Inicial : tengo una rama master y una develop q esta digamos 3 commits mas adelante del mater
Ahora: Clono master n mi local, este me crea un master local q sta sincronizado con el remote master, PERO yo debo trabajar en develop, asi que hacer el PULL ORIGIN DEVELOP, estando en el master local, lo que hace es actualizar mi master local con los 3 commist de remote develop , cosa que no quiero pq solo debo hacer commits a develop.

Solucion que encontre es:

Despues de clonar master, crear y selecionar el nuevo branch local develop, estando en local develop , ALLI!!! recien hacer el PUL ORIGIN DEVELOP.

git clone 鈥
git branch develop
git checkout develop
git pull origin develop

Ahora tengo localmente a develop sincronizado con remote develop

Hola PlatziNautas;

Desafio logrado:

Saludos!

Hubiera sido epico si Anita usaba peluca 馃槢

Como trabaje con una maquina virtual para simular anita tuve inconvenientes con el comando 鈥済it config --global user.email鈥 ya que cuando hacia git config --l me aparec铆a dos cuentas de correo una con email y otra con mail tuve problemas por q no me reconoc铆a mi usuario hasta q me percate que funciona con user.mail

Ingres茅 en Azure, cree una maquina vitual y de esa manera tengo mi equipo personal y otra maquina virtual windows donde tengo un usuario diferente para hacer estas pruebas, Amen.

Excelente la muestra de un flujo de trabajo real, esto me hace ver los errores que estoy cometiendo para seguir mejorando.

<head>
<metacharset =鈥淯TF-8鈥>
</head>

Resolve!

Set de caracteres para la soluci贸n de tildes. Insertar en el head

<meta charset="utf-8">

El problema de compatibilidad se soluciona con eso

 <meta charset="utf-8">```

fragmentado XD

agregar libreria en html UTF-8

Para arreglar lo de las tildes y acentos, basta con colocar en el c贸digo HTML (blogpost.html) encima de la etiqueta <title> o dentro del head esto

<meta charset="UTF-8">

con eso se cambia, Espero

Tuve un peque帽o conflicto, dado que en ambas hab铆a modificado el 鈥#post鈥. Tras un corto instante, todo sali贸 bien y pude obtener mi merge correctamente.

Se siente bien practicar y dar soluci贸n a tus propios errores.

Para solucionar el problema de las tildes solo debes agregar

<meta charset = "utf -8"/>```
esto va dentro del <head>

Se Coloca esto para agregar el alfabeto latino

<head>
<meta charset="utf-8">
</head>

Cuando hice merge de master a header no me salio para colocarle el nombre al merge, es normal?
No se si fuer porque hice commit a los cambios de los archivos nuevos.

**Si crearon el otro usuario 鈥淎nita鈥 **

Para crear el html: vi blogpost.html

Para crear el css: vi css/estilos.css

Para guardar los cambios: esc+chift+zz

Mi blog post despues de fusionar la rama main con la rama footer de anita
l
las tags meta se utilizan en el <head> de html , son visibles para los motores de busqueda,
鈥渕eta charset=UTF-8鈥 define la codificacion de caracteres, si no se utiliza habr谩 caracteres que no ser谩n legibles, como por ejemplo la 帽 o las tildes, que no se mostrar谩n correctamente.

Para forzar la actualizacion debido a que el cacheo en github no te permite ver la actualizacion de los binarios(imagenes), los comandos en Window son: ctrl + shift + r / ctrl + f5 y en Mac es con command + shift + r.

El problema de los simbolos se arregla con <meta charset="UTF-8">