Cómo automatizar su proyecto y la configuración del repositorio de Github desde la línea de comandos

Esta publicación surge de una irritación que enfrenté personalmente, cuando estaba aprendiendo a codificar por primera vez: configurando mi repositorio local y sincronizándome con Github.

Aprendí haciendo proyectos (¡a menudo freeCodeCamp!). Pero necesitaba asegurarme de no perder mi arduo trabajo y que otros pudieran ver el arduo trabajo que estaba realizando, por lo que todos los proyectos tenían que ir a Github. Cuantos más proyectos completos tuviera en Github, más fácil sería para los reclutadores. Pero los pasos necesarios para configurar un proyecto, inicializar un repositorio y sincronizar con Github eran realmente molestos y repetitivos, así que decidí resolver el problema.  

Malas noticias: esta no será una publicación grande, elegante, detallada y técnicamente sexy. Va a ser muy poco sexy.

Buenas noticias: no necesitas ser un dios de los scripts de shell (dess) para hacerlo.

Entonces, el flujo de trabajo de configuración de mi proyecto típico suele ser así:

1) Vaya a mi   ../projectscarpeta y ejecute mkdir project-of-some-namepara crear una carpeta con el nombre project-of-some-name.

2) cden esa carpeta del proyecto y hazlo git initpara inicializar un repositorio git local allí.

3) ejecutar touch README.MDpara crear el READMEarchivo, abrirlo y agregar algunas descripciones básicas, incluyendo enlaces a los recursos / tutoriales que estaba implementando en ese proyecto. Guarda el archivo.

4) corre git add .y luegogit commit -m ' ...some initial commit message...

5) abra un navegador, vaya a Github, inicie sesión, cree un nuevo repositorio (remoto), copie la url, regrese a mi terminal, asegúrese de que estaba en la carpeta del proyecto correcta project-of-some-name... luego ejecute los scripts de git necesarios para configurar el repositorio remoto como repositorio 'ascendente' y conectar mi repositorio local a él. Luego, finalmente, puedo ejecutar un git pushy mi confirmación local se elevaría

6) Acuéstate y toma una siesta, exhausto por este proceso repetitivo.

Es cierto que este era mi proceso, pero me gustaba mantenerme organizado y poder acceder siempre a mis proyectos para poder consultarlos.

Dado que la automatización es una excelente manera de practicar sus habilidades de codificación, decidí escribir un pequeño script de shell que automatice estos horribles y repetitivos pasos. El guión está al final de esta publicación, y tenga cuidado, no es sofisticado ni elegante. ¡Pero seguro que hace el trabajo, y no necesito iniciar sesión en Github y perder el tiempo con todos esos pasos!

Antes de copiar el script, necesita saber cómo ejecutarlo en su Mac. Entonces, a continuación se muestran los pasos que debe implementar para poder usar el script para automatizar su flujo de trabajo de configuración.

1) Guardo mis scripts en mi carpeta raíz / de inicio, en una subcarpeta llamada scripts. Te sugiero que hagas lo mismo o similar. Para llegar a la carpeta raíz / de inicio, en su terminal escriba cd ~porque la tilda ( ~) es el símbolo de la carpeta de inicio. En su aplicación Mac Finder, aparece como el que tiene el icono de una casa. Entonces todos mis scripts se almacenan en~/scripts

2) Esto es importante porque para ejecutar un script de shell desde cualquier directorio de la terminal, debe escribir la ruta completa. En mi caso, tengo que escribir ~/scripts/git-script.shpara ejecutar el script. Pero nos estamos adelantando.

3) Copie el fragmento de código en la parte inferior de esta publicación y luego abra un editor de texto, péguelo y luego guárdelo como [filename].sh. El .shes la extensión de secuencias de comandos shell. Guarde el archivo en el directorio en el que desea guardarlo; nuevamente, lo recomiendo ~/scriptscomo la carpeta para guardar sus scripts.

4) Navega a esa carpeta en tu terminal. Para estar seguro, ejecute lsen la terminal para verificar que puede ver que el script está allí. Si no es así, está en la carpeta incorrecta o el paso 3 no se completó correctamente.

5) Haga ejecutable el script de shell. Para hacer que escriba lo siguiente en el terminal: chmod +x <>. Esta es la forma en que Unix hace que un script de shell sea "ejecutable". No estoy seguro de entender completamente lo que eso significa, aparte de que es necesario para hacer que cualquier script de shell que escriba sea ejecutable, así que no me pregunte y no le mentiré.

6) navegue hasta la carpeta de sus proyectos y cree una nueva carpeta en la que desee albergar su proyecto. Efectivamente, tienes que hacer esto:   mkdir- crear un project-of-some-namedentro de la carpeta donde guardas todos tus proyectos. Entonces, su proyecto eventualmente se colocará adentro my-computer/my-projects/project-of-some-name. cden esta carpeta y luego escriba pwdpara obtener la ruta completa. Copia eso, tendrás que pegarlo en breve. Debería verse comomy-computer/my-projects/project-of-some-name

7) abre tu terminal nuevamente y luego escribe . ¡El script se ejecuta! Se le guiará a través de algunas entradas ... Los pasos principales son:~/scripts/<>

    > ¿Qué es lo que quiere llamar tu repositorio Github ( no utilice espacios- 'mi-impresionante-proyecto es bueno. No utilice 'mi impresionante proyecto' como el nombre de recompra.

  > Ingrese una descripción que aparezca en la descripción del repositorio de Github. Para ello es seguro utilizar espacios.

 > Ingrese la ruta del proyecto que obtuvo en el paso 6, la que obtiene después de escribir pwden la terminal y obtener algo comomy-computer/my-projects/project-of-some-name

 > ingrese su nombre de usuario de Github (no la dirección de correo electrónico) y luego su contraseña de Github. Tenga cuidado al escribir, ya que estos valores no aparecen en la pantalla.

 > .... eso es todo. El script configurará su repositorio git localmente en el interior my-computer/my-projects/project-of-some-namey luego creará un README.MD(en blanco) y luego lo enviará localmente, luego configurará un repositorio remoto en Github (inicie sesión a través de API), etc., ¡y luego subirá todo!

 > finalmente, verá que la terminal con la que estaba interactuando ha cambiado el directorio activo actualmente a la carpeta de su proyecto. Ahora estará en my-computer/my-projects/project-of-some-namey puede escribir lsy ver el README.MDarchivo. Si luego escribe git status, verá el estado de su repositorio local (el estado de su proyecto local) y si escribe git remote, ¡le mostrará la URL de Github para su proyecto!

¡Hecho! ¡Feliz codificación!

Annnd ..... finalmente ...... aquí está el guión! He comentado cada paso para que puedas razonar a través de él.

# Make executable with chmod +x <> CURRENTDIR=${pwd} # step 1: name of the remote repo. Enter a SINGLE WORD ..or...separate with hyphens echo "What name do you want to give your remote repo?" read REPO_NAME echo "Enter a repo description: " read DESCRIPTION # step 2: the local project folder path echo "what is the absolute path to your local project directory?" read PROJECT_PATH echo "What is your github username?" read USERNAME # step 3 : go to path cd "$PROJECT_PATH" # step 4: initialise the repo locally, create blank README, add and commit git init touch README.MD git add README.MD git commit -m 'initial commit -setup with .sh script' # step 5 use github API to log the user in curl -u ${USERNAME} //api.github.com/user/repos -d "{\"name\": \"${REPO_NAME}\", \"description\": \"${DESCRIPTION}\"}" # step 6 add the remote github repo to local repo and push git remote add origin //github.com/${USERNAME}/${REPO_NAME}.git git push --set-upstream origin master # step 7 change to your project's root directory. cd "$PROJECT_PATH" echo "Done. Go to //github.com/$USERNAME/$REPO_NAME to see." echo " *** You're now in your project root. ***"

Posdata Para estudiantes de f reeCodeCamp

Realmente creo que sus recursos más preciados son su tiempo, esfuerzo y dinero. De estos, el recurso más importante es el tiempo, porque los otros dos pueden renovarse y recuperarse. Entonces, si vas a dedicar tiempo a algo, asegúrate de que te acerque a este objetivo.

Con eso en mente, si quieres invertir 3 horas conmigo para encontrar tu camino más corto para aprender a codificar (especialmente si cambias de carrera, como yo ...), dirígete al sitio de mi curso y usa el formulario allí registrarse (¡no la ventana emergente!). Si agrega las palabras “GRATIS MI TIEMPO” al mensaje, sabré que es un lector de freeCodeCamp y le enviaré un código de promoción, porque al igual que usted, freeCodeCamp me dio un buen comienzo.

Además, si desea obtener más información, consulte el episodio 53 del podcast freeCodeCamp, donde Quincy (fundador de FreeCodeCamp) y yo compartimos nuestras experiencias como cambios de carrera que pueden ayudarlo en su viaje. También puede acceder al podcast en iTunes, Stitcher y Spotify.

Me pueden contactar en Twitter: @ZubinPratap