En cada clase se aprende más de git y git hub pero aprendes a que no sabes NADA de otras ramas, éste es el mundo de la tecnología, cada paso que des te abre 4 puertas del desconocimiento.
Introducción a Git
¿Por qué usar un sistema de control de versiones como Git?
¿Qué es Git?
Instalando Git y GitBash en Windows
Instalando Git en OSX
Instalando Git en Linux
Editores de código, archivos binarios y de texto plano
Introducción a la terminal y línea de comandos
Comandos básicos en Git
Crea un repositorio de Git y haz tu primer commit
Analizar cambios en los archivos de tu proyecto con Git
¿Qué es el staging y los repositorios? Ciclo básico de trabajo en Git
¿Qué es un Branch (rama) y cómo funciona un Merge en Git?
Volver en el tiempo en nuestro repositorio utilizando reset y checkout
Git reset vs. Git rm
Flujo de trabajo básico en Git
Flujo de trabajo básico con un repositorio remoto
Introducción a las ramas o branches de Git
Fusión de ramas con Git merge
Resolución de conflictos al hacer un merge
Trabajando con repositorios remotos en GitHub
Cambios en GitHub: de master a main
Uso de GitHub
Cómo funcionan las llaves públicas y privadas
Configura tus llaves SSH en local
Conexión a GitHub con SSH
Tags y versiones en Git y GitHub
Manejo de ramas en GitHub
Configurar múltiples colaboradores en un repositorio de GitHub
Flujos de trabajo profesionales
Flujo de trabajo profesional: Haciendo merge de ramas de desarrollo a master
Flujo de trabajo profesional con Pull requests
Utilizando Pull Requests en GitHub
Creando un Fork, contribuyendo a un repositorio
Haciendo deployment a un servidor
Hazme un pull request
Ignorar archivos en el repositorio con .gitignore
Readme.md es una excelente práctica
Tu sitio web público con GitHub Pages
Multiples entornos de trabajo en Git
Git Rebase: reorganizando el trabajo realizado
Git Stash: Guardar cambios en memoria y recuperarlos después
Git Clean: limpiar tu proyecto de archivos no deseados
Git cherry-pick: traer commits viejos al head de un branch
Comandos de Git para casos de emergencia
Git Reset y Reflog: úsese en caso de emergencia
Reconstruir commits en Git con amend
Buscar en archivos y commits de Git con Grep y log
Bonus sobre Git y Github
Comandos y recursos colaborativos en Git y GitHub
Tu futuro con Git y GitHub
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Deploy es el proceso que permite enviar al servidor uno o varios archivos. Este servidor puede ser de prueba, desarrollo o producción.
En el siguiente ejemplo veremos cómo se realiza el deployment de un documento en un servidor web básico.
git clone url
Deploy:
git pull ramaRemota main
Nota: Siempre se debe proteger el archivo .git. Dependiendo del software para el servidor web, existen diferentes maneras. La conexión entre GitHub y el servidor se puede realizar mediante: Travis (pago) o Jenkis (Open source).
Aporte creado por: Brayan Mamani, chedl
Aportes 257
Preguntas 40
En cada clase se aprende más de git y git hub pero aprendes a que no sabes NADA de otras ramas, éste es el mundo de la tecnología, cada paso que des te abre 4 puertas del desconocimiento.
Cuando Freddy asume que sabes montar un servidor y tu solo sabes html a medias :'V
Aquí ya estamos asumiendo que tú ya sabes como montar un servidor en Linux y yo…
creo que me perdi un poco en la clase del fork. me quede en que fork significa “tenedor” jjajaja
Cordial saludo Devs.
Utilizo una herramienta para administrar ramas y observar el flujo de git.
GitKraken
Para practicar de forma fácil pueden levantar un servidor local con python. Primero nos ubicamos en la carpeta del proyecto que queremos inicializar en el servidor y luego ejecutamos el comando según sea python2 o 3.
con Python 2:
python -m SimpleHTTPServer 8000
con Python 3.x:
python3 -m http.server 8000
El 8000 indica el puerto donde va a iniciar, entonces en el navegador vamos a 127.0.0.1:8000 y saldrá nuestro proyecto.
Se puede clonar el repo tranquilamente desde la terminal y para acceder, agrego en la barra de direcciones la ruta a la que quiero ir como hizo Freddy.
Me sirvio de mucho para darme cuenta que me falta mucho de aprender :v
Qué es deploy?
https://www.youtube.com/watch?v=UuF_T1WqlrY
Seria genial que se actualizara el curso, ya que la pagina de github esta actualizada y se ve completamente diferente a la que freddy tiene, en mi caso realizo las practicas y me voy familiarizando con la pagina actualizada de github. Genial, muchas gracias!!
SI son como yo que necesitan elementos más gráficos para entender lo que sucede en cada comando tal vez esto les pueda ser de ayuda
📌 Deploy es el proceso que permite enviar al servidor uno o varios archivos. Este servidor puede ser de prueba, desarrollo.
 para hacer el lanzamiento de software de una manera rápida, eficiente y segura.
Un concepto importante y uno de los pilares fundamentales en DevOps es la automatización de procesos, que incluye los procesos de construcción, pruebas y lanzamiento del software con herramientas como Git, Jenkins, Circle CI, Travis, Terraform, entre otras.
Estas herramientas hacen pruebas a nuestra aplicación, antes de salir a producción, para identificar errores y solucionarlos, con esto los usuarios no se verán afectados.
En la empresa que trabajo solemos poner tags con el número de versión que salieron las apps móviles, así si algún usuario nos reporta un error en una versión previa podemos revisar la versión congelada correspondiente a la versión del usuario y así revisar sobre lo que tenga el usuario
Para practicar si no tienes un servidor como Freddy ya previamente configurado. De manera fácil con NPM que es el gestor de paquetes de node. Descargas un paquete que te sirve como servidor local
Comandos para descargar desde npm
Desde la consola de windows ponen esto:
Nota: Deben tener previamente instalado Node.js, porque allí viene npm
Este comando lo que hace es que instala de manera global el paquete http-server
Una vez descargado lo ejecuta de la siguiente manera:
http-server
Luego les saldrá que su servidor está en operación y se podrá acceder a través de dos direcciones.
Listo
OK. Volveré cuando pueda habilitar mi primer servidor 😃
20/08/2020:
http://www.freddier.com/hyperblog/blogpost.html --> 404 not found
F.
http://www.freddier.com/hyperblog/blogpost.html
Ya no está disponible 😢
Tanto GitLab como GitHub cuentan con un servicio gratuito para publicar sitios web estáticos de manera sencilla:
Ya que Freddy se olvido de pagar la cuenta de su servidor, lo subiré a mi propio servidor compartido.
jossiequintero.ga/hyperblog
Deployment me pareció demasiado interesante, siempre subo mis archivos a servidores mediante Filezilla y no sabia que se podía hacer de una manera tan sencilla y rápida.
Buena clase, no se mucho de servidores pero podemos descargar Apache gratuitamente y crear un servidor temporal en nuestro computador para hacer pruebas de este estilo. 🙂
404 Not Found
nginx/1.14.0 (Ubuntu)
¿Qué paso Freddy? ¿Aprobaste un request incorrecto?
Es un chiste 😋
En 2021 ya se perdió esa dirección. Un soldado caído.
las perosnas que estan usando OSX (no se si linux o windows tambien) pueden ejecutar el siguiente comando: python -m SimpleHTTPServer 8000 en el directorio hyperblog y pueden correr el blog y probar cambios de codigo, git y todo eso en caliente.
Like si corriste a ver freddier.com… no me lo esperaba
En lo personal yo use para un proyecto CircleCi, tiene una capa gratuita que sirvio para mis necesidades y quedo satisfecho. Otra alternativa de CI/CD a Travis
Yo monte un servidor utilizando NPM (Node Package Manager) y express.js un frawework web.
Lo primero es crear una carpeta llamada MiServidor, ustedes le pueden llamar como quieran, accedemos a la carpeta por medio de la consola con el comando $ cd MiServidor.
Ahora vamos a iniciar el proyecto utilizando el siguiente comando:
$ npm init que nos genera un archivo package.json
Luego vamos a instalar express.js que nos permitirá crear nuestro servidor rápido con el comando : $ npm install express --save
Ya teniendo express instalado, vamos a crear nuestro servidor web creando el archivo index.js ya sea en consola o por el editor de codigo dentro de las carpeta MiServidor, y escribiremos lo siguiente:
const express = require(‘express’);
const app = express();
app.use(express.static(__dirname + ‘/public/’));
app.listen(‘3000’, function() {
console.log(‘Servidor web escuchando en el puerto 3000’);
});
Luego vamos a crear la carpeta public con un archivo index.html y en el escribiremos lo siguiente:
<!DOCTYPE html>
<html lang=“es”>
<head>
<meta charset=“UTF-8”>
<meta name=“viewport” content=“width=device-width, initial-scale=1.0”>
<title>Mi primer servidor web</title>
</head>
<body>
<h1>HOLA, mi primer servidor web</h1>
</body>
</html>
Ya con todo listo nos vamos a la consola y ejecutamos el comando $ node index.js; el cual nos debería salir que está escuchando en el puerto 3000.
Vamos a localhost y el puerto 3000 y listo.
Mis apuntes
Pasos para colocar el trabajo en un servidor web:
Deploy:
git pull ramaRemota main
NOTA: proteger el archivo .git, dependiendo del software para el seridor web existen diferentes maneras. Conexion entre github y el servidor se puede realizar mediante: Travis pago, Jenkis Open source.
Entonces esto hacer un deployment a un servidor es hacer pull al servidor?
como si el servidor es otro repositorio?
Son impresionantes las ventajas que tiene el utilizar o implementar DevOps en el flujo de trabajo, ahora veamos cómo encaja DevOps dentro de este flujo:
Desarrollo: nuevas características, mejoras, corrección de errores.
Se crea el Pull Request.
Se compila o construye lo que sea necesario y se ejecutan las pruebas: automatización de procesos con GitHub y herramientas como Jenkins, Travis, CircleCI, entre otras.
Se aprueba el Pull Request.
Se hace merge con Master.
Se compila o construye lo que sea necesario para un entorno de staging o producción y se ejecutan las pruebas
Deploy: lo ejecuta automáticamente Jenkins, o la herramienta utilizada, una vez las pruebas pasan.
deployment: agregar el proyecto git al server; no es una buena practica; hay que protejer el .git.
paginas que conectan automatcamente las ramas de gitHub a tus servidores: travis.ci jenkins (integracion continua/desarrollo continuo)
demasiado que digerir x3
freddier.com/hyperblog/blogpost.html … sigue ahí =D
si les interesa aqui esta el blog para que lo visiten 😉
🤯🤯🤯🤯
Compañ[email protected], si alguien quiere hacer esta practica y no puede por que hasta el momento no sabe de Linux o no tiene un servidor Linux como web, no se compliquen, instalen un apache en su maquina local y listo, lo pueden hacer con xampp https://www.apachefriends.org/es/download.html luego en la carpeta C:\xampp\htdocs clonan el repositorio
Para poder simular lo mas parecido posible el ejemplo, para la parte del servidor, recomiendo instalar en Linux (ubuntu) el servidor web con sencillos pasos: www. digitalocean .com/community/tutorials/como-instalar-el-servidor-web-apache-en-ubuntu-18-04-es
Estos cursos te dejan muy claro todo el desconocimiento que tenemos. Sin embargo la gente de esta comunidad siempre tiene conocimiento de algo. Pero es hermoso saber que hay mas por descubriri. ¡Que emocion!
No me quedo muy claro y lo investigare por mi cuenta pero quisiera saber por parte de la comunidad o un colaborardor, ¿Cual es la utilidad de esta herramienta o proceso?, me disculpo pero me desoriento un poco.
Todo eso es lo que quiero aprender, pero apenas comenze, esta largo y dificil el camino pero asi es siempre cuando se quiere llegar al exito
Ni lo intenten, saludos.
Los que quieran ver el proyecto de Freddy en internet
http://freddier.com/hyperblog/blogpost.html
Esto es muy cool 😮 😄
demasiado que digerir x2
Como que ya debo saber de servidores? 😦
cada vez que nombra un curso lo agrego para verlo pero ya ni se cuantos llevo y en que orden debo hacerlo xD
Esta calse me voló la cabeza
En lo personal prefiero usar la consola para trabajar es mas rapido y sencillo
aabando mi ruta d bakend en django, voy por la carrera de servidores
F. Ya no está el Hyperblog del futuro en el sitio de freddier :c
Efectivamente, Freddy dejo caer el sitio.
La rama master es la que normalmente se envía al servidor de producción, depende del flujo de trabajo de cada persona, por ejemplo hay grupos de trabajo que lo que hacen es que le ponen tags a la rama que se envía a producción y ese es el tag que se envía a producción.
No he visto el curso de servidores, yo simplemente habilite Apache en Xampp para poder hacer los cambios de manera local, todo quedo claro ya después veo ese curso. 😃
Hace unos minutos mientras tomaba una clase pense en esto y Ohh! sorpresa toma tu respuesta, esto solo me hace pensar en la calidad de los cursos y que ellos piensan en todo aun sabiendo que la gran mayoría no puede hacer esta practica
hay muchos servicios de pago y algunos free para **hacer deploy “automático” **al hacer commit.
Yo hago mis commits y mis Fetchs en Github-Desktop y automáticamente se hace el deploy usando este servicio www.deployhq.com
Cuando dijo “Alguien puede acceder a nuestra base de datos en .git, por lo que la debemos proteger”, me dije: rayos, cómo no pensé eso antes. Es realmente importante todo lo que se va aprendiendo y lo que se menciona en el curso.
Interesante lo de hacer el deployment a un sever estándar con Linux, aunque yo en cambio uso https://netlify.com pues me abstrae es aparte de administración de servidores para que me puede centrar solamente en desarrollar el website y no en el mantenimiento del servidor. Además es gratis y puedes hacer deploy fácilmente vinculado tu cuenta de GitHub o GitLab
Con los workflows de GitHub actions es relativamente sencillo hacer deployment. Yo tengo mi propia tarea para hacerlo;
name: Despliegue
on: [pull_request]
jobs:
deploy:
runs-on: ubuntu-latest
name: Subida archivos a VPS
steps:
- uses: actions/[email protected]
- name: Desplegar proyecto
uses: appleboy/[email protected]
with:
host: ${{ secrets.SERVER }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: 22
source: "."
target: ${{ secrets.DEPLOY_FOLDER }}
Normalmente la rama master es la que se envia al servidor de producción, incluyendo tags de las versiones de los realeses. Una vez configurando el servidor, con Git instalado, vamos a traer el repositorio copiando la URL de HTTPS.
git clone <url>
Lo podemos visualizar dentro del servidor
ls -al
Y visitar la página apuntando al archivo html.
sitioweb . com /hyperblog/blogpost.html
Cada que se hagan cambios a la rama master del repositorio en GitHub, también se tiene que hacer pull en el servidor.
git pull origin master
Hay muchas consideraciones de seguridad, que no mencionan en este curso, solo se muestra un deploy básico.
Hay muchos que se sienten perdidos con las clases. Freddy explica muy bien pero de igual forma hay que leer por fuera para empaparse más del tema. Esto es una maratón no una carrera de velocidad. Vamo’ con calma muchachos. #NuncaParemosDeAprender
saben que recientemente como microsoft compro github pueden abrir visual studio dando “…” en git hub
Hay mucho por aprender, el camino es largo
git me suena a la serie de Loki con todo esto de las ramas
Creo que esta clase es para mostrarnos de manera minimalista como se realizan los procesos en un servidor y como se interactúa.
like si buscas la pagina y aparece error 404
F.
hahahaha
Ya no está disponible la página blogpost.html de Freddy 💔
https://freddyvega.com/john-freddy-vega/
Que bonito es ver que después de los años Freddy si cumplió con darle mantenimiento… grande Freddy
Yo no se servidores volvere cuando aprenda y seguire con los demas clases
Deberían actualizar el curso. Sería de gran ayuda
En 2021 ya no existe Hyperblog 😦
Cuando abra mi servidor volveré a esta clase.
No tengo mi propio servidor D: y meeenos se hacerlo en linux XD igual hare apuntes para tener la idea en general
Si se tiene una máquina virtual, normalmente a esta también se le instala git, para llevar los cambios que hay en el proyecto. Es más sencillo en ese aspecto pero tiene sus desventajas.
Para hacer deploys bien hechos, se tienen que tener una buena base de microservicios, para que se tenga seguridad en la página, por ello y para que nuestros archivos, no queden expuestos, sobretodo el .git, entonces podemos utilizar travis o el más facha, jenkis.
Como montar un servidor desde python 3.x
Esto es un mundo que desconocía totalmente. Gracias Platzi por tanto!
Deploy o Deployment es cuando montas tu codigo en un servidor y este ya es funcional y visible para todo el mundo.
Agrega tu nombre en la lista https://freddier.github.io/hyperblog/blogpost.html
:V
no le dio mantenimiento 😦
Wow git y todo el mundo que los engloba, en verdad que es un super poder
Otro curso más a mi lista para continuar aprendiendo 😃
Entre mas avanzo, menos sé jaja
Ya no esta 😦
No sobrevivió a la prueba del tiempo :c
Ya no esta online el blogpost.html jaja yo fui a ver si habian echo cosas al archivo 💔
Yo, luego de hacer un pull a mi server y ver que todo cambia xD
Ya me llamó la atención la carrera de DevOps de Platzi
La plena si van al link si esta el proyecto todavia PROYECTO FREDDY
Excelente! este curso es genial!
Platzi es un mundo el cual cada vez me gusta mas.
Para aprender a subir paginas web debo hacer el curso de DevOps?
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.