Notas introductorias necesarias:
- Lea, repita y comprenda el artículo sobre git . Esto ayudará a garantizar que todo esté configurado y listo para funcionar.
- Instale Intellij IDEA.
- Reserve una hora de tiempo personal para una absorción completa.
Clonar el proyecto localmente
Aquí hay dos opciones.- Si ya tienes una cuenta de Github y quieres impulsar algo más adelante, es mejor que bifurques el proyecto y clones tu copia. Cómo hacer una bifurcación: describí en este artículo en el capítulo un ejemplo del flujo de trabajo de bifurcación .
- Clonar desde mi repositorio y hacer todo localmente sin la capacidad de enviar todo al servidor. Después de todo, este será mi repositorio))
-
Copie la dirección del proyecto:
-
Abra Intellij IDEA y seleccione Obtener del control de versiones:
-
Copie y pegue la dirección del proyecto:
-
Se le pedirá que cree un proyecto Intellij IDEA. Aceptamos la oferta:
-
Dado que no existe un sistema de compilación y este no es el alcance del artículo, seleccione Crear proyecto a partir de fuentes existentes :
-
A continuación habrá un óleo como este: Hemos resuelto la clonación, ahora podemos mirar a nuestro alrededor.
Primer vistazo a Intellij IDEA como una interfaz de usuario de Git
Mire de nuevo de cerca el proyecto clonado: allí puede obtener mucha información sobre el sistema de control de versiones. El primero es el panel de control de versiones en la esquina inferior izquierda. En él puede encontrar todos los cambios locales y obtener una lista de confirmaciones (análoga a git log). Pasemos a la conferencia de Registro . Hay un cierto componente visual que ayuda a comprender exactamente cómo fue el proceso de desarrollo. Por ejemplo, puede ver que se creó una nueva rama con un encabezado de confirmación agregado a txt , que luego se fusionó con la rama maestra. Si haces clic en un commit, en la esquina derecha podrás ver toda la información sobre el commit: todos los cambios y sus metadatos. Además, puede ver qué cambios se han realizado. Además, allí se resolvió el conflicto. IDEA también lo muestra perfectamente. Si hace doble clic en el archivo que se modificó durante esta confirmación, veremos cómo se resolvió el conflicto: se nota que a la derecha y a la izquierda había dos versiones del mismo archivo que debían fusionarse en una. Y en el medio está el resultado final. Cuando un proyecto tiene muchas ramas, commits y usuarios que trabajan en el proyecto, es necesario buscar por separado por rama (branch), usuario (user) y fecha (date): Y lo último que quiero explicar antes de comenzar es cómo entender en que sucursal estamos. Te daré un minuto para buscar... ¿lo encontraste? ¿Te estás rindiendo? :D En la esquina inferior derecha hay un botón Git: master , donde después de Git: muestra en qué rama se encuentra actualmente el proyecto. Si hace clic en el botón, puede hacer muchas cosas útiles: pasar a otra rama, crear una nueva, cambiar el nombre de una existente, etc.Trabajar con el repositorio
Teclas de acceso rápido útiles
Para seguir trabajando, es necesario recordar algunas teclas de acceso rápido muy útiles:- Ctrl + T : obtiene los últimos cambios desde un repositorio remoto (git pull).
- Ctrl + K : confirmar/ver todos los cambios que están disponibles actualmente. Esto incluye archivos modificados y sin seguimiento (consulte mi artículo sobre git, esto se describe allí) (git commit).
- Ctrl + Shift + K es un comando para enviar cambios a un repositorio remoto. Todas las confirmaciones que se crearon localmente y que aún no están en el control remoto se ofrecerán para envío (git push).
- alt + ctrl + z : revierte los cambios en un archivo específico al estado de la última confirmación creada en el repositorio local. Si selecciona todo el proyecto en la esquina superior izquierda, puede revertir los cambios en todos los archivos.
¿Qué queremos?
Para trabajar, necesitamos dominar el script básico, que se usa en todas partes. La tarea es implementar una nueva funcionalidad en una rama separada y enviarla a un repositorio remoto (luego debe crear otra solicitud de extracción para la rama principal, pero esto está más allá del alcance de nuestro artículo). ¿Que necesito hacer?-
Obtenga todos los cambios actualmente en la rama principal (maestra, por ejemplo).
-
Basado en este principal, crea uno separado para tu trabajo.
-
Implementar nueva funcionalidad.
-
Vaya a la rama principal y verifique si hubo algún cambio nuevo mientras trabajaba. Si no fue así, entonces todo está bien, y si lo fue, entonces hacemos lo siguiente: vamos a la rama de trabajo y rebase los cambios de la rama principal a la nuestra. Si todo salió bien, entonces genial. Pero es muy posible que haya conflictos. Y se pueden solucionar con antelación sin perder tiempo en un repositorio remoto.
Al parecer, ¿por qué hacer esto? Esta es una regla de buena forma, que evita que surjan conflictos después de enviar su sucursal al repositorio local (existe, por supuesto, la posibilidad de que aún existan, pero se vuelve mucho menor).
- Envíe sus cambios a un repositorio remoto.
¿Recibir cambios desde un servidor remoto?
Agregué una descripción al archivo README con una nueva confirmación y deseo recibir estos cambios. Se ofrece la posibilidad de elegir entre fusionar y reorganizar si se realizaron cambios tanto en el repositorio local como en el remoto. Seleccione una combinación. Ingrese Ctrl + T : como resultado, puede ver cómo ha cambiado el archivo README, es decir. Se han extraído los cambios del repositorio remoto y en la esquina inferior derecha puede ver todos los detalles de los cambios que provienen del servidor.Crear una nueva rama basada en master
Aquí todo es sencillo.-
Vaya a la esquina inferior derecha y haga clic en Git: master , seleccione + New Branch .
Deje la casilla de verificación de la sucursal de Checkout y escriba el nombre de la nueva sucursal. Para mí sería readme-mejorador .
Después de esto, Git: master cambiará a Git: readme-improver .
Simulando trabajo paralelo
Para que aparezcan conflictos alguien debe crearlos :D Editaré el README con un nuevo commit a través del navegador y así simular trabajo paralelo. Dicen que alguien, durante mi trabajo, realizó cambios en el mismo archivo que yo, lo que generará un conflicto. Eliminaré la palabra “completamente” de la línea 10.Implementa tu funcionalidad
La tarea es cambiar el README y agregar una descripción al nuevo artículo, es decir, el trabajo en git se realiza a través de Intellij IDEA. Agregue esto: Los cambios están completos, ahora puede crear una confirmación. Presione la tecla de acceso rápido Ctrl + K , obtenemos: Antes de crear una confirmación, debe observar detenidamente lo que se ofrece en esta ventana. Agregué específicamente una flecha para mostrarte dónde buscar. Hay muchas cosas interesantes allí. En la sección Mensaje de confirmación escribimos el texto del compromiso, y para que se cree es necesario hacer clic en el botón Confirmar . Todavía no he encontrado cómo hacer esto con una tecla de acceso rápido, así que si alguien la encuentra, que me escriba, estaré muy feliz. Escribimos que el README ha cambiado y creamos un compromiso. Como resultado, aparecerá una alerta en la esquina inferior izquierda con el nombre de la confirmación:Compruebe si la rama maestra ha cambiado
Completamos la tarea, funciona, escribimos las pruebas, todo está bien. Pero antes de enviar al servidor, debe verificar si ha habido algún cambio en la rama principal durante este tiempo. ¿Cómo pudo pasar esto? Es muy simple: a alguien se le asignó una tarea después de ti y ese alguien la hizo más rápido que tú. Por tanto, pasamos a la rama master. Para hacer esto, debe hacer en la esquina inferior derecha lo que se muestra en la siguiente figura: En la rama maestra, presione ctrl + t para obtener los últimos cambios del servidor remoto. Si observa los cambios que se realizaron, podrá notar fácilmente lo que sucedió: como puede ver, se eliminó la palabra "completamente". Quizás fue alguien de marketing quien decidió que no se podía escribir así y dio a los desarrolladores la tarea de actualizarlo. Ahora tenemos la última versión de la rama master localmente. Volvamos a readme-mejorador . Ahora necesitamos cambiar la base de los cambios de la rama maestra a la nuestra. Lo hacemos: si siguió todo correctamente conmigo, el resultado debería ser un conflicto en el archivo README: aquí también hay mucha información que debe comprenderse y absorberse. Esto muestra una lista (en nuestro caso de un elemento) de archivos que tienen conflictos. Podemos elegir tres opciones:- acepte el suyo: acepte solo los cambios del archivo readme-improver.
- acepte el suyo: acepte solo cambios del maestro.
- fusionar: elija usted mismo qué conservar y qué eliminar.
- Estos son cambios del readme-mejorador.
- Resultado. Por ahora es igual que antes de los cambios.
- Cambios desde la rama maestra.
GO TO FULL VERSION