Dado que GitHub proporciona aplicaciones GUI para Mac y Windows , ¿cuáles son los beneficios de aprender a usar git desde la línea de comandos?
Actualmente estoy usando su aplicación mac para actualizar mis repositorios, y hasta ahora parece cubrir mis necesidades. ¿Qué podría estar perdiendo?
Respuestas:
Creo que esta pregunta es solo un caso especial de "¿Por qué debería aprender cualquier CLI para la cual existe una alternativa GUI?". Sospecho que la última pregunta es tan antigua como las GUI, y supongo que hubo muchos intentos de responderla a lo largo de los años. Podría tratar de encontrar mi propia respuesta a esta pregunta, pero Neal Stephenson articuló lo que estoy de acuerdo como la 'respuesta final' hace más de diez años en su notable ensayo In the Beginning ... Was the Command Line .
Si bien el ensayo toca muchos aspectos de la informática, e incluso si el mismo Stephenson cree que gran parte de esto ahora está obsoleto, el ensayo explica de qué manera las CLI son mejores GUI de una manera extremadamente convincente que literalmente cambió mi vida. Es una lectura larga (~ 40 páginas), pero no puedo recomendarla lo suficiente a cualquiera que haga preguntas como las que usted hizo aquí.
Finalmente, aunque respondería cualquier tipo de pregunta CLI vs GUI en una línea similar, creo que mi respuesta es especialmente cierta para su pregunta específica ya que de todas las cosas de la computadora que eligió preguntar
git
.git
podría decirse que es la última herramienta en una lista no tan larga de herramientas informáticas que realmente son dignas de la metáfora del agujero como la descrita en el ensayo de Stephenson.git
, como muchas otras cosas de Unix-ish, es una razón para conocer las CLI en sí mismas. A veces a pesar de su errática 'porcelana' ; a veces por eso.Entonces sí, definitivamente puede ser productivo con la GUI de github, ya sea para OSX o incluso solo en su sitio web. Sí, en realidad es bastante elegante, uso las características del sitio a menudo. Pero no, nunca tendrás ese sentimiento piadoso cuando tu meñique derecho cuelga por encima de un
git filter-branch
comando loco por un eón o dos. Si tuviera que guardar una sola cosa de mi experiencia con la informática: los desafíos mentales, las amistades cercanas formadas en un centro de datos a las 2 de la mañana, la escala infinita de competencia para escalar, tocar las vidas de los usuarios y reinar sobre PB de datos preciosos, el cómodo trabajos y vida cómoda, conserve solo una cosa , sería ese sentimiento divino.fuente
Si todas sus necesidades están cubiertas, increíble, no es necesario profundizar en git, su tiempo se gastaría mejor en aprender algo que realmente necesita.
git es solo una herramienta, cuando necesites hacer algo que no puedes hacer con una aplicación GUI, lo sabrás. Solo ten en cuenta que github! = Git.
fuente
La mayoría de las características exclusivas de CLI solo entran en juego cuando accidentalmente coloca su repositorio en un estado extraño y desea solucionarlo. Por otro lado, la forma más común de llevar tu repositorio a un estado extraño es usar funciones avanzadas que no entiendes. Si se atiene a lo que proporciona la GUI, eso cubrirá sus necesidades el 99% del tiempo.
La otra razón por la que es posible que desee aprender el CLI es que es la lengua franca de git. Eso significa que, si bien muchas personas usan diferentes GUI en diferentes plataformas, si solicita ayuda en StackOverflow o en otro lugar, la respuesta probablemente sea en forma de comandos de CLI. Si no conoce la CLI, sus opciones para obtener ayuda serán mucho más limitadas.
fuente
Las aplicaciones GUI se basan en interacciones manuales para realizar comportamientos complejos. Esto es genial para configurar proyectos y desarrollar cosas nuevas.
Los beneficios de una interfaz de línea de comandos (CLI) provienen de la capacidad de crear scripts predeterminados que pueden automatizarse. Todo lo que la GUI de GitHub es, son algunos gráficos agradables y botones elegantes que llaman a la CLI de git.
Lo que la aplicación GUI no hará por usted es actualizar automáticamente la troncal de un repositorio en un servidor diariamente a la 1:30 a.m., pero un trabajo cron que llama a la CLI de git es una forma realmente fácil de configurarlo.
Además, cuando se trabaja en un proyecto en un equipo, es conveniente configurar scripts de instalación, construir scripts, implementar scripts y similares para que los compañeros de equipo puedan concentrarse en resolver problemas en lugar de tediosas tareas repetitivas.
fuente
Otra razón por la cual la CLI podría ser preferible es una cuestión de flujo de trabajo. Muchos marcos se gestionan a través de la línea de comando. Usar git a través de la CLI me permitió concentrarme en mi proyecto y en ese directorio de proyectos. Por ejemplo, podría ejecutar una prueba y luego decidir confirmar los nuevos cambios, todo desde la misma interfaz y ubicación.
fuente
Recientemente tengo que profundizar en Git para poder ayudar con una migración de SVN a Git. Y lo que aprendí es que las herramientas de línea de comandos de Git no son la parte complicada de aprender.
Los conceptos e ideas detrás de Git son la parte compleja (y eso no es porque estén mal diseñados, sino simplemente porque son extraños para la mayoría de las personas que provienen de otro VCS centralizado).
Una vez que he comprendido los conceptos, las declaraciones reales de la línea de comando se volvieron relativamente fáciles. Eso significa que una interfaz de usuario realmente no ayuda a comprender Git (a excepción de las operaciones más simples).
fuente
git
son tan simples que las personas no pueden entenderlos, están buscando algo más difícil.Conocer la CLI es útil para cuando (no si) estás en un entorno donde no puedes acceder a una aplicación GUI.
Un escenario potencial: se le pide que ayude por solo un par de días en un proyecto en un lugar cerrado donde es molesto y largo obtener nuevas herramientas en el sistema. Solo usan CLI. Su productividad acaba de recibir un golpe porque necesita aprender todo de nuevo.
fuente
Una razón para aprender git de línea de comandos es que la mayoría de la documentación está escrita para ese entorno. Además, si hace una pregunta: "¿cómo hago X con git?", Es probable que la respuesta contenga comandos de línea de comandos.
fuente
Uno de los principales problemas con el uso de una GUI en comparación con la línea de comandos es que no puede tener el mismo control sobre su proceso, en la mayoría de los casos. Por ejemplo, la aplicación GitHub es excelente en términos de usabilidad para muchos flujos de trabajo de git, pero aún podría ser engorrosa para los procesos avanzados de git.
Como ejemplo, aquí hay algunas cosas que no he descubierto cómo hacer usando la aplicación GitHub (otra cosa a tener en cuenta es que cada GUI también tiene una curva de aprendizaje).
Finalmente, las CLI permiten a los usuarios usar estas herramientas cuando crean secuencias de comandos.
fuente
No sé acerca de GitHub para Mac, pero la aplicación de Windows solo realiza las tareas más comunes: agregar, confirmar, empujar, tirar, etc. Las tareas más complejas como
git merge --no-ff
deben realizarse desde la línea de comandos.Además, hay casos con git cuando GUI no está disponible, por ejemplo, cuando SSHing en servidores remotos.
Pero, de lo contrario, si la GUI le brinda todo lo que necesita, aprender la línea de comandos puede ser una pérdida de tiempo. Mi trabajo utiliza TortoiseSVN en un entorno solo para Windows, y no he tenido que tocar la línea de comando SVN ni una sola vez.
fuente
Acabo de aprender un caso en el que la CLI puede ser mejor que la GUI. Para ilustrar esto, tomé un ejemplo de un libro git - control de versiones para todos.
Cuando desee compartir a través de una intranet, puede usar:
Mire los pasos para crear un repositorio desnudo.
Crear un repositorio desnudo en modo CLI
El comando para crear un repositorio desnudo sería el mismo que usó para clonar un repositorio, excepto el parámetro --bare, que marca la diferencia.
git clone --bare C:\Users\raviepic3\Desktop\Workbench C:\generic_share\ Bare_Workbench
La ejecución del código anterior en su consola debería crear un clon de nuestro repositorio de Workbench en su carpeta compartida común llamada generic_share.Crear un repositorio desnudo en modo GUI
Crear un clon desnudo a partir de un repositorio ya existente utilizando GUI es un proceso fácil. Todo lo que necesitas hacer es:
Copie el directorio .git del repositorio existente y péguelo con un different_name.git (cualquier nombre que desee dar a su nuevo repositorio desnudo) fuera del repositorio. En nuestro caso, tenemos un repositorio no denominado Workbench en C: \ Users \ raviepic3 \ Desktop \ dentro del cual tenemos content.docx. Y ahora quiero crear un nuevo repositorio desnudo a partir de esto usando GUI. Copiaré C: \ Users \ raviepic3 \ Desktop \ Workbench.git y lo pegaré como C: \ generic_share \ Bare_Workbench.git.
Abra el
config file
interior Bare_Workbench.git con un editor de texto y busque la línea que dicebare = false
y reemplace la cadena false por true.Guardar y Salir.
En la GUI, debe hacer tantos clics y recordar qué archivo se va a editar. En CLI, un simple comando lo hace todo por usted.
fuente