Introdução ao conceito Git, comandos comumente usados e organização do fluxo de trabalho com imagens

Primeiro, anexe uma folha de dicas do Git para facilitar a referência: https://education.github.com/git-cheat-sheet-education.pdf

Introdução ao Git

Todos devem estar familiarizados com o Git, deixe-me apresentá-lo novamente simbolicamente: Git é um sistema de controle de versão , em outras palavras, ele pode tirar instantâneos nomeados (ou seja, salvar) de nossa base de código ao longo do processo de desenvolvimento e, quando ocorrerem problemas, podemos reverter facilmente para qualquer estado salvo. Se escrevermos o código errado, sem o Git, precisamos descobrir o que alteramos e restaurá-lo manualmente, o que é demorado e sujeito a erros. Com o Git, se salvarmos quando nosso código estiver funcionando bem, podemos restaurar esse estado com um único comando. Também podemos documentar nosso trabalho passo a passo um para o outro. O Git também possui algumas funções relacionadas à colaboração, como gerenciamento de filiais, que podem ser bem aproveitadas para o desenvolvimento de novos recursos e correções de bugs.

Fluxo de trabalho do Git e comandos comuns:

Antes de tudo, precisamos de uma imagem para entender bem a relação entre o Git e o GitHub instalado em nosso sistema. Usamos cada comando para representar para onde enviar o código. Em seguida, ao apresentar vários conceitos e comandos, consulte esta imagem e ficará muito claro o que estamos fazendo a cada passo do caminho.

conceito:

Repositório Git : Repositório Git (Git Repository) é um banco de dados contendo arquivos e suas versões históricas. Na imagem acima, temos um warehouse localrepo em Local (computador local), que ficará armazenado no .Porque na verdade, você não precisa operá-lo diretamente). Um repositório remoto armazenado remotamente ou online (como no GitHub) é chamado de repositório remoto. Nosso git push e git pull acontecem entre o warehouse local e o warehouse remoto.

Diretório de trabalho : o diretório de trabalho é o código mais recente na ramificação que você está verificando atualmente por meio do git, ou seja, na extremidade esquerda da imagem acima, o conteúdo do arquivo exibido em seu IDE.

Staging area : A área de armazenamento temporário é antes de criar um Git commit commit, colocamos os arquivos que queremos incluir no envio na área de armazenamento temporário. Equivale a fazer um "buffer", não efetuando alterações.

Comandos comuns:

git clone <remote warehouse link> : copie um código do warehouse remoto para o local, neste momento nosso diretório de trabalho local possui todos os códigos e estabelece uma conexão com o warehouse remoto.

git add <nome do arquivo 1> : Adicione o arquivo alterado à área de armazenamento temporário (correspondente ao entendimento na figura acima).

git commit -m “<commit information>” : Envie o conteúdo da área de armazenamento temporário para o warehouse local. A submissão virá com um ID de submissão e informações de submissão. As informações de submissão são personalizadas por você para descrever a modificação e mudança desta vez.

Ao executar o git commit, tente confirmar uma única modificação separadamente, confirme com frequência e em tempo hábil e anexe uma introdução clara às informações de envio e evite mesclar um grande número de modificações em um único commit, o que será difícil de rastrear e entender . Em seguida, não envie alguns arquivos gerados automaticamente, como a pasta node_modules gerada pelo npm install, a pasta de destino gerada pelo site mvn, etc. Você pode escrever um arquivo .gitignore para colocar arquivos que não precisam ser rastreados pelo git nele .

git status : mostra quais arquivos foram alterados e quais arquivos estão na área de teste.

git log : Exibe todas as informações de confirmação, etc.

git branch "<nome da ramificação>" cria uma nova ramificação chamada <nome da ramificação>.

git checkout <nome da ramificação> alterna para a ramificação de <nome da ramificação>. Por meio do comando git checkout -b <branch name> , se a ramificação relevante não existir, ela será criada e alternada diretamente.

git push  : Envie alterações locais para o warehouse remoto.

git pull : Obtenha atualizações do repositório remoto e tente mesclá-las no diretório de trabalho local.

Fluxo de trabalho no trabalho em equipe

pedido de garfo 与 pull

Fork pode ser entendido como copiar um projeto para sua própria conta, permitindo que você modifique o projeto livremente sem afetar o projeto original. Uma relação de ligação é mantida entre o novo projeto produzido pela Fork e o projeto original. Isso é ótimo se você deseja desenvolver um projeto existente ou se deseja contribuir para um projeto para o qual não tem acesso de gravação.

Pull Request (Pull Request): Quando você faz alterações no projeto Fork e sente que essas alterações são úteis para o projeto original, você pode iniciar uma Pull Request. Isso é para o mantenedor do projeto original, esperando que eles mesclem suas alterações no projeto original. Depois de receber o Pull Request, o mantenedor do projeto original pode visualizar o conteúdo modificado, fazer comentários e discussões e então decidir se aceita essas modificações. Na colaboração em equipe, o uso de branches e Pull Requests permite que os membros da equipe trabalhem em diferentes tarefas sem interferir uns nos outros. Quando as respectivas tarefas estiverem concluídas, as alterações de cada ramo podem ser mescladas por meio de Pull Request, para que todas as alterações possam ser gerenciadas e revisadas de forma centralizada.

resolver conflitos mesclar conflitos

Quando você está prestes a aceitar uma pull request, mas o Github o notifica sobre um conflito de merge, isso geralmente significa que seu branch contém as mesmas alterações que o branch no qual você está fazendo o merge. Se o conflito for simples o suficiente, geralmente você pode resolvê-lo no editor da Web clicando em "Resolver conflitos" na página de solicitação de pull.

Depois de abrir o arquivo, você verá alguns marcadores de conflito como ">>>>>branch1" e "<<<<<branch2" em seu arquivo de conflito. Você pode corrigir conflitos manualmente removendo os marcadores de conflito e as alterações que deseja descartar. Depois de resolver todos os conflitos de mesclagem, você pode clicar em "Marcar como resolvido" para prosseguir com a solicitação pull.

Aprender fazendo:

Esta é uma página da web online para exercícios visuais para operar o git: Learn Git Branching

Esta página da web se parece com isso. Ela irá guiá-lo através das operações do Git desde o início do git. Você pode ver as alterações do branch atual durante a operação. Envolve o commit mais básico, branch, etc., e também há uma série de operações de nível.

Em seguida, vamos inserir alguns comandos comuns para ver como eles realmente são exibidos para a ramificação.

git commit

Observe que a seta aqui não aponta na direção oposta, pois c2 é a última alteração de confirmação, ela "aponta" para o estado antigo. O Git retrocede de alguma forma dessa maneira.

 git branch newImage, git checkout newImage

 Como ainda está no branch master, git commit irá empurrar o master para frente neste momento. Se você quiser avançar newImage, você deve primeiro fazer check-out para newImage e então confirmar.

Mesclar e rebasear

git mergee git rebasesão formas de mesclar ramificações no Git, mas diferem em sua abordagem e resultados.

git merge

git merge O comando criará um novo commit com dois pais: um é o commit mais recente do branch em que você está atualmente e o outro é o commit mais recente do branch que você deseja mesclar. Este novo commit é chamado de "merge commit". A vantagem da fusão é que ela preserva todo o histórico de confirmação e o contexto da ramificação. No entanto, essa abordagem também pode levar a históricos complexos de confirmação, especialmente em repositórios ativos.

git rebase

git rebaseO comando move os commits de um ramo para outro. Primeiro, o Git encontra o ancestral comum mais próximo das duas ramificações e, em seguida, busca todos os commits na ramificação atual desde então. Esses commits são chamados de "patches". O Git verifica a ramificação na qual você deseja aplicar os patches e aplica os patches um por um. A vantagem de usar rebase é que ele cria um histórico de projeto mais linear, o que é mais fácil de entender. No entanto, essa abordagem também perde algumas informações de contexto (porque a ordem original dos commits é alterada) e o rebase em um branch público pode causar problemas porque altera o histórico de commit.

Redefinir e reverter

git resete git revertsão comandos usados ​​no Git para desfazer alterações, mas funcionam de maneira diferente e para finalidades diferentes.

 git reset

git resetO comando é usado para desfazer alterações no warehouse local, o que equivale a deletar o commit que você acabou de fazer. git reseté um comando perigoso, pois mudará seu histórico do Git. Se você já enviou alterações para um repositório remoto, usá-lo git resetpode causar problemas. Não use este comando se estiver conectado a um armazém remoto.

git reverter

git revertcomando para desfazer alterações que foram confirmadas no histórico do Git. Este comando cria um novo commit que reverte as mudanças feitas no commit histórico especificado. git revertA vantagem disso é que não altera o histórico existente do Git, portanto é uma opção mais segura, especialmente se você precisar desfazer alterações que já foram enviadas para um repositório remoto.

 git cherry-pick

cherry-pick permite que você escolha qualquer commit existente e aplique-o ao branch de trabalho atual. Por exemplo, se você está trabalhando em seu branch de recursos, mas alguém fez um bugFix no branch principal, você pode aplicar o bugFix em seu próprio branch por meio de cherry-pick. Na figura acima, o master aplicou as alterações dos dois commits em outro branch para si mesmo.

É preciso enfatizar que cada nó de confirmação no gráfico registra as alterações , não o status do código mais recente atual , portanto, podemos usar a seleção seletiva para selecionar as alterações que desejamos aplicar à vontade. Da mesma forma, o git revert anterior está realmente enviando uma "alteração" que é completamente oposta ao commit anterior como um novo commit.

resumo:

Este artigo apresenta o Git, um poderoso sistema de controle de versão, apresenta alguns comandos básicos de conceito, métodos de resolução de conflitos e compreende o significado específico de algumas etapas da operação por meio de práticas e ilustrações. Descobrir esses conhecimentos básicos é basicamente o suficiente para o estudo e o trabalho diários. Outros princípios mais profundos e operações avançadas do Git têm a oportunidade de explorar novamente~

Atualização : Com base neste artigo, algumas operações comuns de alto nível do git são classificadas: Git advanced advanced operations_TranSad's Blog-CSDN Blog

Acho que você gosta

Origin blog.csdn.net/weixin_44492824/article/details/130592598
Recomendado
Clasificación