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 624

Preguntas 189

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Bienvenidos a platzi
![](

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>

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.

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

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í

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=“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)

Resumen del flujo de trabajo de un equipo interno 😀✍:

Parte 1

Parte 2

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ó:

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

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

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”

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.

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.

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

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

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

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.

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:

Anita la barbudita xd

Que ligeras se sienten las clases de Freddy! 😄 super bien!

git y linux no son cosas de este planeta

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

<meta charset=“UTF-8”>

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.

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=“UTF-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=“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. .

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

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

Dale 💚 si a ti también te sorprendió que Freddy edita HTML en vim 😱

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>

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.

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

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.

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!


Flujo de trabajo de ramificación y desarrollo colaborativo


En un flujo de trabajo de desarrollo colaborativo, la creación de ramas independientes permite a los miembros del equipo trabajar simultáneamente en diferentes características o correcciones de errores sin interferir en el trabajo de los demás. El proceso básico consiste en crear una rama, realizar cambios, enviarlos a un repositorio remoto y fusionar las ramas en la rama principal (normalmente llamada “master” o “main”).
.


El proceso es el siguiente:


1. Comienza creando una nueva rama a partir de la rama principal (main) y cambiando a esa rama. Esto se hace utilizando el siguiente comando: git checkout -b <new-branch>.
.
Ahora, puedes hacer cambios en el proyecto, como añadir, modificar, o eliminar archivos.
.
2. Después de realizar los cambios deseados, confírmelos a la rama usando el siguiente comando: git commit -am “Commit message”.
.
3. Luego, envía la rama y los commits hacia el repositorio remoto usando el comando: git push <remote> <new-branch>.
.
Ten en cuenta que esto lo debes hacer desde la misma rama que creaste y con el mismo nombre.
.
4. Una vez finalizado el trabajo en la nueva rama y quieras fusionarla a tu rama principal, sigue estos pasos:

a. Cambia a la rama principal: git checkout <principal-branch>.
.
b. Actualiza la rama con respecto al repositorio remoto: git pull <remote> <principal-branch>.
.
c. Fusiona la nueva rama con la rama principal: git merge <new-branch>.
.
d. Si hay algún conflicto entre los cambios realizados en su rama y la rama principal, deberá resolverlo manualmente. Git resaltará las áreas conflictivas en los archivos afectados y puedes editarlas para resolver los conflictos.
.
e. Después de resolver los conflictos, envía los cambios fusionados al repositorio remoto: git push <remote> <principal-branch>.

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

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.

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

<head>
<meta charset=“utf-8”/>

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

Complementando, adicional al Ctrl+Shift+R para recargar, se puede usar Shift+‘Click 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=“UTF-8”>
!Y LISTO!

Supere el desafio depues de 1 hora ![](

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

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

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>

**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

Con el nuevo diseño, ya no se ven los recursos? Hay algún otro espacio en donde los coloquen? Recuerdo que esta clase te incluía la imagen del curso. Ahora no lo encuentro, me pueden precisar si lo tienen en algún lado?

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,
“meta 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.