JavaRush /Blog Java /Random-ES /Conectemos Git con Intellij IDEA

Conectemos Git con Intellij IDEA

Publicado en el grupo Random-ES
Como ya es tradición, les doy la bienvenida a ustedes, futuros Ingenieros de Software Senior. Conectemos Git con Intellij IDEA - 1Hoy hablaremos de la continuación lógica de mi artículo sobre Git . También recomiendo leer el material sobre estrategias de ramificación que publiqué anteriormente. En el artículo sobre Git, describí cómo trabajar con él en la línea de comandos y hoy te mostraré cómo hacer todo esto en Intellij IDEA. Al comienzo de mi viaje como desarrollador, usé la línea de comando y pensé que no necesitaba usar la interfaz de usuario para este asunto. Después de todo, todo está claro y así... Pero eso fue exactamente hasta el momento en que comencé a usar Git en Intellij IDEA... Quiero decir de inmediato que describiré mi experiencia personal. Hay varias opciones para resolver los mismos problemas usando Intellij IDEA, y si sabes cómo hacer mejor lo que describo en el artículo, escribe en los comentarios y lo discutiremos.

Notas introductorias necesarias:

  1. Lea, repita y comprenda el artículo sobre git . Esto ayudará a garantizar que todo esté configurado y listo para funcionar.
  2. Instale Intellij IDEA.
  3. Reserve una hora de tiempo personal para una absorción completa.
Para trabajar, tomemos el proyecto de demostración que utilicé para el artículo sobre git. ACTUALIZAR:En el momento de la publicación, la nueva interfaz de usuario de Github ya estará disponible y algunos íconos no estarán donde se muestran en el artículo. No te alarmes: sólo tendrás que no cambiar a la nueva interfaz de usuario o buscarlos.

Clonar el proyecto localmente

Aquí hay dos opciones.
  1. 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 .
  2. Clonar desde mi repositorio y hacer todo localmente sin la capacidad de enviar todo al servidor. Después de todo, este será mi repositorio))
Para clonar un proyecto desde Github, debe copiar el enlace al proyecto y pasarlo a IntelliJ IDEA:
  1. Copie la dirección del proyecto:

    Conectemos Git con Intellij IDEA - 2
  2. Abra Intellij IDEA y seleccione Obtener del control de versiones:

    Conectemos Git con Intellij IDEA - 3
  3. Copie y pegue la dirección del proyecto:

    Conectemos Git con Intellij IDEA - 4
  4. Se le pedirá que cree un proyecto Intellij IDEA. Aceptamos la oferta:

    Conectemos Git con Intellij IDEA - 5
  5. 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 :

    Conectemos Git con Intellij IDEA - 6
  6. A continuación habrá un óleo como este: Conectemos Git con Intellij IDEA - 7Hemos 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. Conectemos Git con Intellij IDEA - 8Ademá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: Conectemos Git con Intellij IDEA - 9se 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): Conectemos Git con Intellij IDEA - 10Y 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. Conectemos Git con Intellij IDEA - 11

Trabajar con el repositorio

Teclas de acceso rápido útiles

Para seguir trabajando, es necesario recordar algunas teclas de acceso rápido muy útiles:
  1. Ctrl + T : obtiene los últimos cambios desde un repositorio remoto (git pull).
  2. 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).
  3. 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).
  4. 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.
Conectemos Git con Intellij IDEA - 12

¿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?
  1. Obtenga todos los cambios actualmente en la rama principal (maestra, por ejemplo).

  2. Basado en este principal, crea uno separado para tu trabajo.

  3. Implementar nueva funcionalidad.

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

  5. Envíe sus cambios a un repositorio remoto.
Lo que suceda a continuación depende de tus objetivos y tu imaginación.

¿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 : Conectemos Git con Intellij IDEA - 13como 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. Conectemos Git con Intellij IDEA - 14

Crear una nueva rama basada en master

Aquí todo es sencillo.
  1. Vaya a la esquina inferior derecha y haga clic en Git: master , seleccione + New Branch .

    Conectemos Git con Intellij IDEA - 15
  2. 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 .

    Conectemos Git con Intellij IDEA - 16

    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: Conectemos Git con Intellij IDEA - 17Los cambios están completos, ahora puede crear una confirmación. Presione la tecla de acceso rápido Ctrl + K , obtenemos: Conectemos Git con Intellij IDEA - 18Antes 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: Conectemos Git con Intellij IDEA - 19

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: Conectemos Git con Intellij IDEA - 20En 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ó: Conectemos Git con Intellij IDEA - 21como 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: Conectemos Git con Intellij IDEA - 22si siguió todo correctamente conmigo, el resultado debería ser un conflicto en el archivo README: Conectemos Git con Intellij IDEA - 23aquí 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:
  1. acepte el suyo: acepte solo los cambios del archivo readme-improver.
  2. acepte el suyo: acepte solo cambios del maestro.
  3. fusionar: elija usted mismo qué conservar y qué eliminar.
No está claro qué ha cambiado allí, y si los cambios están en el maestro, entonces son necesarios allí y no podemos simplemente aceptar nuestros cambios, por lo que seleccionamos fusionar : Conectemos Git con Intellij IDEA - 24Aquí puede ver que hay tres partes:
  1. Estos son cambios del readme-mejorador.
  2. Resultado. Por ahora es igual que antes de los cambios.
  3. Cambios desde la rama maestra.
Necesitamos recopilar el resultado de tal manera que satisfaga a todos. Por eso, estudiamos lo que hicieron ANTES de nosotros y nos dimos cuenta de que simplemente eliminaron la palabra "completamente". Bueno, está bien, no hay problema. Esto significa que lo eliminaremos como resultado y agregaremos nuestros cambios. Tan pronto como corrijamos el resultado, puede hacer clic en Aplicar . Después de esto, aparecerá una notificación indicando que la rebase fue exitosa: Conectemos Git con Intellij IDEA - 25Así es como resolvimos nuestro primer conflicto a través de Intellij IDEA :D

Enviar cambios a un servidor remoto

El siguiente paso es enviar los cambios al servidor remoto y crear una solicitud de extracción. Para hacer esto, simplemente presione Ctrl + Shift + K , después de lo cual obtenemos: Conectemos Git con Intellij IDEA - 26A la izquierda habrá una lista de confirmaciones que no se han enviado al repositorio remoto, y a la derecha estarán todos los archivos que se han enviado. cambió. Eso es todo: haz clic en Enviar y estarás contento :) Si el envío se realiza correctamente, habrá una notificación como esta en la esquina inferior derecha: Conectemos Git con Intellij IDEA - 27

parte extra

Inicialmente no quería agregar la creación de una solicitud de extracción al artículo, pero resulta que no está muy completo debido a esto. Por tanto, vamos al repositorio de GitHub (si es el tuyo, claro)))) y vemos que GitHub ya sabe qué ofrecernos: Conectemos Git con Intellij IDEA - 28Pulsamos en Comparar y solicitud de extracción , y luego pulsamos en Crear solicitud de extracción . Debido a que resolvimos los conflictos de antemano, ahora, al crear una solicitud de extracción, puedes fusionarla inmediatamente: Conectemos Git con Intellij IDEA - 29eso es todo lo que quería decirte esta vez. Por supuesto, simplemente abrí la puerta y les mostré una pequeña parte. El resto lo encontrará usted mismo según sea necesario. Como siempre, te invito a suscribirte a mi cuenta de GitHub , donde publico proyectos basados ​​en diversas tecnologías que uso en el trabajo. Recientemente obtuve un logro personal: mi proyecto ya ha sido calificado por más de cien desarrolladores. Es un sentimiento de alegría increíble que alguien use lo que tú hiciste. Y lo usa para siempre.

Enlaces útiles

  1. JavaRush: Primeros pasos con Git: una guía detallada para principiantes
  2. GitHub: proyecto de demostración para trabajar
  3. JavaRush: Análisis de estrategias de ramificación en Git
  4. JetBrains: configurar un repositorio Git
  5. Habr: rebase de Git
  6. GitHub: Mi cuenta
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION