JavaRush /Blogue Java /Random-PT /Vamos conectar o Git ao Intellij IDEA
Roman Beekeeper
Nível 35

Vamos conectar o Git ao Intellij IDEA

Publicado no grupo Random-PT
Como é tradição, dou as boas-vindas a vocês, futuros Engenheiros de Software Sênior. Vamos conectar o Git ao Intellij IDEA - 1Hoje falaremos sobre a continuação lógica do meu artigo sobre Git . Também recomendo a leitura do material sobre estratégias de ramificação que publiquei anteriormente. No artigo sobre Git, descrevi como trabalhar com ele na linha de comando e hoje vou mostrar como fazer tudo isso no Intellij IDEA. No início da minha jornada como desenvolvedor, usei a linha de comando e pensei que não precisava usar a UI para esse assunto. Afinal, está tudo claro e assim... Mas isso foi exatamente até o momento em que comecei a usar o Git no Intellij IDEA... Quero dizer desde já que descreverei minha experiência pessoal. Existem diversas opções para resolver os mesmos problemas utilizando o Intellij IDEA, e se você souber fazer melhor o que descrevo no artigo, escreva nos comentários e discutiremos.

Notas introdutórias necessárias:

  1. Leia, repita e entenda o artigo sobre git . Isso ajudará a garantir que tudo já esteja configurado e pronto para uso.
  2. Instale o IntelliJ IDEA.
  3. Reserve uma hora de tempo pessoal para absorção completa.
Para o trabalho, vamos pegar o projeto de demonstração que usei no artigo sobre git. ATUALIZAR:No momento da publicação, a nova UI do Github já estará disponível e alguns ícones não estarão onde são mostrados no artigo. Não se assuste: você só precisa não mudar para a nova IU ou procurá-los.

Clone o projeto localmente

Existem duas opções aqui.
  1. Se você já tem uma conta no Github e deseja enviar algo mais tarde, é melhor fazer um fork do projeto para você mesmo e clonar sua cópia. Como fazer uma bifurcação - descrevi neste artigo no capítulo um exemplo de fluxo de trabalho de bifurcação .
  2. Clone do meu repositório e faça tudo localmente, sem a capacidade de enviar tudo para o servidor. Afinal, este será meu repositório))
Para clonar um projeto do Github, você precisa copiar o link do projeto e passá-lo para o IntelliJ IDEA:
  1. Copie o endereço do projeto:

    Vamos conectar o Git ao Intellij IDEA - 2
  2. Abra o Intellij IDEA e selecione Obter do controle de versão:

    Vamos conectar o Git ao Intellij IDEA - 3
  3. Copie e cole o endereço no projeto:

    Vamos conectar o Git ao Intellij IDEA - 4
  4. Você será solicitado a criar um projeto Intellij IDEA. Aceitamos a oferta:

    Vamos conectar o Git ao Intellij IDEA - 5
  5. Como não há sistema de compilação e este não é o escopo do artigo, selecione Criar projeto a partir de fontes existentes :

    Vamos conectar o Git ao Intellij IDEA - 6
  6. A seguir haverá uma pintura a óleo como esta: Vamos conectar o Git ao Intellij IDEA - 7Já resolvemos a clonagem, agora podemos dar uma olhada.

Primeiro, observe o Intellij IDEA como uma UI Git

Dê uma outra olhada no projeto clonado: já lá você pode obter muitas informações sobre o sistema de controle de versão. O primeiro é o painel de controle de versão no canto esquerdo inferior. Nele você pode encontrar todas as alterações locais e obter uma lista de commits (análogo ao git log). Vamos passar para a palestra Log . Existe um certo componente visual que ajuda a entender exatamente como foi o processo de desenvolvimento. Por exemplo, você pode ver que um novo branch foi criado com um cabeçalho adicionado de commit ao txt , que foi então mesclado no branch master. Se você clicar em um commit, no canto direito você poderá ver todas as informações sobre o commit: todas as alterações e seus metadados. Подружим Git с Intellij IDEA - 8Além disso, você pode ver quais alterações foram feitas. Além disso, o conflito foi resolvido lá. IDEA também mostra isso perfeitamente. Se você clicar duas vezes no arquivo que foi alterado durante este commit, veremos como o conflito foi resolvido: Подружим Git с Intellij IDEA - 9É perceptível que à direita e à esquerda havia duas versões do mesmo arquivo que precisavam ser mescladas em uma. E no meio está o resultado final. Quando um projeto possui muitas ramificações, commits e usuários que trabalham no projeto, você precisa pesquisar separadamente por branch (branch), usuário (usuário) e data (data): Подружим Git с Intellij IDEA - 10E a última coisa que quero explicar antes de começar é como entender em qual ramo estamos. Vou te dar um minuto para pesquisar... você encontrou? Você está desistindo? :D No canto inferior direito há um botão Git: master , onde depois de Git: mostra em qual branch o projeto está atualmente. Se você clicar no botão, poderá fazer muitas coisas úteis: mudar para outro branch, criar um novo, renomear um existente e assim por diante. Подружим Git с Intellij IDEA - 11

Trabalhando com o repositório

Teclas de atalho úteis

Para continuar trabalhando, você precisa se lembrar de algumas teclas de atalho muito úteis:
  1. ctrl + t - obtém as alterações mais recentes de um repositório remoto (git pull).
  2. ctrl + k - confirma/visualiza todas as alterações disponíveis no momento. Isso inclui arquivos não rastreados e modificados (veja meu artigo sobre git, isso está descrito lá) (git commit).
  3. ctrl + shift + k é um comando para enviar alterações para um repositório remoto. Todos os commits que foram criados localmente e ainda não estão no remoto serão oferecidos para push (git push).
  4. alt + ctrl + z - reverte as alterações em um arquivo específico para o estado do último commit criado no repositório local. Se você selecionar o projeto inteiro no canto superior esquerdo, poderá reverter as alterações em todos os arquivos.
Подружим Git с Intellij IDEA - 12

O que queremos?

Para funcionar, precisamos dominar o script básico, que é usado em todos os lugares. A tarefa é implementar a nova funcionalidade em um branch separado e enviá-la para um repositório remoto (então você precisa criar outra solicitação pull para o branch principal, mas isso está além do escopo do nosso artigo). O que eu preciso fazer?
  1. Obtenha todas as alterações atualmente no branch principal (master, por exemplo).

  2. Com base neste principal, crie um separado para o seu trabalho.

  3. Implemente novas funcionalidades.

  4. Vá para o branch principal e verifique se houve alguma alteração enquanto você trabalhava. Se não foi, então está tudo bem, e se foi, então fazemos o seguinte: vamos para o branch de trabalho e rebaseamos as alterações do branch principal para o nosso. Se tudo correu bem, ótimo. Mas pode muito bem haver conflitos. E podem ser resolvidos antecipadamente, sem perder tempo em um repositório remoto.

    Ao que parece, por que fazer isso? Esta é uma regra de boa forma, que evita que surjam conflitos após enviar sua branch para o repositório local (há, claro, uma probabilidade de que eles ainda existam, mas ela se torna muito menor).

  5. Envie suas alterações para um repositório remoto.
O que acontece a seguir depende de seus objetivos e imaginação.

Receber alterações de um servidor remoto?

Adicionei uma descrição ao README com um novo commit e quero receber essas alterações. É oferecida uma escolha entre mesclagem e rebase se alterações forem feitas nos repositórios locais e remotos. Selecione uma mesclagem. Digite ctrl + t : Подружим Git с Intellij IDEA - 13Como resultado, você pode ver como o README mudou, ou seja, as alterações do repositório remoto foram acessadas e no canto inferior direito você pode ver todos os detalhes das alterações que vieram do servidor. Подружим Git с Intellij IDEA - 14

Crie um novo branch baseado no master

Tudo é simples aqui.
  1. Vá para o canto inferior direito e clique em Git: master , selecione + New Branch .

    Подружим Git с Intellij IDEA - 15
  2. Deixe a caixa de seleção da filial do Checkout e escreva o nome da nova filial. Para mim seria readme-improver .

    Подружим Git с Intellij IDEA - 16

    Depois disso, Git: master mudará para Git: readme-improver .

Simulando trabalho paralelo

Para que conflitos apareçam, alguém deve criá-los :D Vou editar o README com um novo commit através do navegador e assim simular um trabalho paralelo. Dizem que alguém, durante meu trabalho, fez alterações no mesmo arquivo que eu, o que gerará um conflito. Retirarei a palavra “inteiramente” da linha 10.

Implemente sua funcionalidade

A tarefa é alterar o README e adicionar uma descrição ao novo artigo, ou seja, o trabalho no git é feito através do Intellij IDEA. Adicione isto: Подружим Git с Intellij IDEA - 17As alterações foram concluídas, agora você pode criar um commit. Pressione a tecla de atalho ctrl + k , obtemos: Подружим Git с Intellij IDEA - 18Antes de criar um commit, você precisa observar cuidadosamente o que é oferecido nesta janela. Eu adicionei especificamente uma seta para mostrar onde procurar. Há muitas coisas interessantes lá. Na seção Mensagem de commit escrevemos o texto do commit, e para que ele seja criado é necessário clicar no botão Commit . Ainda não descobri como fazer isso com tecla de atalho, então se alguém encontrar, escreva, ficarei muito feliz. Escrevemos que o README mudou e criamos um commit. Como resultado, um alerta aparecerá no canto inferior esquerdo com o nome do commit: Подружим Git с Intellij IDEA - 19

Verifique se o branch master mudou

Concluímos a tarefa, funciona, escrevemos os testes, está tudo bem. Mas antes de enviar para o servidor, você precisa verificar se houve alguma alteração na ramificação principal durante esse período. Como isso pôde acontecer? É muito simples: alguém recebeu uma tarefa depois de você, e esse alguém a fez mais rápido que você. Portanto, passamos para o branch master. Para fazer isso, você precisa fazer no canto inferior direito o que é mostrado na figura abaixo: Подружим Git с Intellij IDEA - 20No branch master, pressione ctrl + t para obter as últimas alterações do servidor remoto. Se você observar quais alterações foram feitas, poderá perceber facilmente o que aconteceu: Подружим Git с Intellij IDEA - 21como você pode ver, a palavra “completamente” foi removida. Talvez tenha sido alguém do marketing que decidiu que não poderia ser escrito assim e deu aos desenvolvedores a tarefa de atualizá-lo. Agora temos a versão mais recente do branch master localmente. Vamos voltar ao readme-improver . Agora precisamos rebasear as alterações do branch master para o nosso. Nós fazemos: Подружим Git с Intellij IDEA - 22Se você seguiu tudo corretamente comigo, o resultado deverá ser um conflito no arquivo README: Подружим Git с Intellij IDEA - 23Também há muitas informações aqui que precisam ser compreendidas e absorvidas. Isso mostra uma lista (no nosso caso de um elemento) de arquivos que apresentam conflitos. Podemos escolher três opções:
  1. aceite o seu - aceite apenas as alterações do readme-improver.
  2. aceite as deles - aceite apenas alterações do mestre.
  3. mesclar - escolha você mesmo o que manter e o que remover.
Não está claro o que mudou lá, e se as alterações estão no master, então elas são necessárias lá, e não podemos simplesmente aceitar nossas alterações, então selecionamos merge : Подружим Git с Intellij IDEA - 24Aqui você pode ver que existem três partes:
  1. Estas são alterações do readme-melhorador.
  2. Resultado. Por enquanto é o mesmo que era antes das mudanças.
  3. Mudanças do branch master.
Precisamos coletar o resultado de forma que satisfaça a todos. Portanto, estudamos o que eles fizeram ANTES de nós e percebemos que simplesmente removeram a palavra “completamente”. Bem, tudo bem, não há problema. Isso significa que iremos removê-lo e adicionar nossas alterações. Assim que corrigirmos o resultado, você pode clicar em Aplicar . Depois disso, aparecerá uma notificação informando que o rebase foi bem-sucedido: Подружим Git с Intellij IDEA - 25Foi assim que resolvemos nosso primeiro conflito usando o Intellij IDEA :D

Enviar alterações para um servidor remoto

A próxima etapa é enviar as alterações para o servidor remoto e criar uma solicitação pull. Para fazer isso, basta pressionar ctrl + shift + k , após o que obteremos: Подружим Git с Intellij IDEA - 26À esquerda haverá uma lista de commits que não foram enviados para o repositório remoto, e à direita estarão todos os arquivos que foram mudado. Isso é tudo: clique em Push e você ficará feliz :) Se o push for bem-sucedido, haverá uma notificação como esta no canto inferior direito: Подружим Git с Intellij IDEA - 27

Parte bônus

Inicialmente, não queria adicionar a criação de uma solicitação pull ao artigo, mas acabou não sendo muito completo por causa disso. Portanto, vamos ao repositório GitHub (se for seu, claro)))) e vemos que o GitHub já sabe o que nos oferecer: Подружим Git с Intellij IDEA - 28Clique em Compare & pull request e depois clique em Create pull request . Devido ao fato de termos resolvido os conflitos antecipadamente, agora, ao criar uma solicitação pull, você pode mesclá-la imediatamente: Подружим Git с Intellij IDEA - 29Isso é tudo que eu queria dizer desta vez. Claro, acabei de abrir a porta e mostrei uma pequena parte. Você encontrará o resto conforme necessário. Como de costume, convido você a se inscrever na minha conta GitHub , onde posto projetos baseados em diversas tecnologias que utilizo no trabalho. Recentemente tive uma conquista pessoal – meu projeto já foi avaliado por mais de uma centena de desenvolvedores. É uma sensação incrível de alegria que alguém use o que você fez. E usa isso para o bem.

Links Úteis

  1. JavaRush: Primeiros passos com Git: um guia detalhado para iniciantes
  2. GitHub: projeto de demonstração para trabalhar
  3. JavaRush: Analisando estratégias de ramificação no Git
  4. JetBrains: configure um repositório Git
  5. Habr: rebase do Git
  6. GitHub: Minha conta
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION