Introducción a Git

1

¿Por qué usar un sistema de control de versiones como Git?

2

¿Qué es Git?

3

Instalando Git y 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 y los repositorios? Ciclo básico de trabajo en Git

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

Cambios en GitHub: de master a main

19

Uso de GitHub

20

Cómo funcionan las llaves públicas y privadas

21

Configura tus llaves SSH en local

22

Conexión a GitHub con SSH

23

Tags y versiones en Git y 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

Git Stash: Guardar cambios en memoria y recuperarlos después

37

Git Clean: limpiar tu proyecto de archivos no deseados

38

Git cherry-pick: traer commits viejos al head de un 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 533

Preguntas 177

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

con solo colocar la etiqueta <meta charset=“UTF-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=“UTF-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 “pull/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 “git 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.

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.

Freddy despues de terminal la clase 😄

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

Apuntes 😊

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇
👉Para sacar los iconos se usa la combinación de win + . eso en Windows 👈
☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝☝

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

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

Por lo general, tengo una computadora así que salto los pasos de “Anita”

El problema de las tildes se puede solucionar añadiendo la siguiente línea dentro de la etiqueta <head>
<meta charset=“UTF-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ó:

Se soluciona con:

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

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.

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]=“comando”

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= “UTF-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 “en” (ingles) por “es” (español).

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…!!!

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=“UTF8”>
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. .

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

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

Esta vez dejo mis apuntes de esta sección al inicio 😄
c

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 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" />

Mi cerebro explota, pero todo esta muuuy bien explicado.

Para el problema con las tildes, debes añadir en tu código al comienzo del head “<meta charset=“utf-8”>”, es el standard para los signos especiales.

<meta charset=“UTF-8”>

Básico de HTML, pero bueno para que empezar… 💚

<meta charset=“UTF-8”>

este te ayuda

🎈 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.

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.

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=“stylesheet” href=“css/estilos.css” />
<meta charset=“UTF-8”>
</head>

<head>
<title>El titulo del blog post</title>
<link rel=“stylesheet” href=“css/estilos.css”/>
<meta charset=“UTF-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 😱

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 “git 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

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

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 =“UTF-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 “Anita” **

Para crear el html: vi blogpost.html

Para crear el css: vi css/estilos.css

Para guardar los cambios: esc+chift+zz

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

No olvidar que la rama por derfecto de github es main:

git pull origin main (antes del merge)
git push origin master:main (después del merge)

Por si le sirva, una forma de realizar la convercion de png o un baniario a texto lo pueden hacer usando encode base64 que crea un codigo laarguisimo y el html lo enteinde como una imagen
https://base64.guru/converter/encode/image/png
suelo usar esta imagen en mi trabajo

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

me encanta el curso pero ya se me hizo imposible seguir el proceso en mi pc … bueno imposible no, solo increiblemente tedioso

Como cuando Freddy reviza tu trabajo.

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

![](url)

Supere el desafio depues de 1 hora ![](

Que clase tan productiva. Me parece que hubiera avanzado como 5 mas, jejejje.

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.

hice todo de nuevo y ahora se lo que antes no, me encanta la explicasion de freddy
https://github.com/EmmanuelSanch/blog_personal

Me estoy muriendo de risa solo por que me parece muy gracioso que cada que Freddy cambia de personalidad a Anita yo igual tengo que cambiar de usuario para trabajar desde la otra parte del proyecto xD

Listo, al final de esta clase quedé fragmentado como Freddy jaja

Cómo unir las ramas (enviar rama header a rama main)

Wao con esta clase aprendi bastante al intentar unificar el footer al main ya que al hacerle merge me generaron conflictos que estuve tratando de entender, moneando, tocando comandos, pull por aqui, commits por alla, merge por donde sea, pero al final entendi y finalize unir de manera exitosa y enviandolo todo a Github, asi que lo único que les puedo recomendar es que si no les sale sigan intentando y ayudense de la comunidad siempre habrá alguien que los ayude 😃

Freddy es fragmentado tiene varias personalidades, cuando le toca ser anita cambia hasta la voz

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.

Notes

  • The best practices say that binary files should be ignored from the repository, the cause is that these files make your project heavier and slower. Therefore it is recommended to use extensions such as Git LFS https://git-lfs.github.com/
  • Only commit in the main when you are ready to release a stable version, otherwise, use other branches
  • If you want to force a website to refresh the page without keeping the caché, press ctrl + shift + r

Commands

  • If you want to abort a merge

    git merge --abort
    

Hola, estoy en WSL y pegué la imagen del logo a mi carpeta usando explorer.exe . y me creó un archivo llamado “nombre_imagen.png:Zone.Identifier”. ¿Alguien sabe qué es ?