Prefácio
No trabalho diário, as operações Git são frequentemente usadas. Mas para os recém-chegados, eu era muito novo no Git quando vim pela primeira vez e era muito estranho de operar. Este artigo é voltado principalmente para iniciantes que estão apenas entrando em contato com o Git e entendem os princípios básicos do Git.
Compreensão do processo (substantivo)
Primeiro entenda estas quatro pilhas:
Área de trabalho:
Índice / estágio da área de trabalho: Área de armazenamento temporário
Repositório: Área do armazém (ou armazém local)
Remoto: Armazém remoto
Vamos dar uma olhada em sua função
- Área de trabalho : o local onde o programador faz alterações no desenvolvimento é o que você vê atualmente e também é o mais recente. Normalmente, nosso desenvolvimento consiste em copiar uma filial em um warehouse remoto e desenvolver com base nessa filial. Durante o processo de desenvolvimento, é a operação do espaço de trabalho.
- Armazém local : salva as versões enviadas do objeto, que são mais antigas do que o conteúdo da área de trabalho e da área de armazenamento temporário. Após o git commit, sincronize a árvore de diretório do índice com o warehouse local para facilitar a sincronização do warehouse local e do warehouse remoto por meio do git push da próxima etapa.
- Armazém remoto : O conteúdo de um armazém remoto pode ser modificado por armazéns locais numa relação de colaboração que se distribuem em várias localizações, podendo ou não estar sincronizado com o armazém local, mas o seu conteúdo é o mais antigo.
- Resumo
Qualquer objeto nasce e é modificado no espaço de trabalho;
qualquer modificação é controlada por versão a partir da entrada na área de índice;
somente quando a modificação é enviada ao armazém local, a modificação pode deixar um rastro no armazém;
compartilhar com os colaboradores As mudanças locais podem ser compartilhado, empurrando-os para armazéns remotos.
Usamos outra maneira de entender conceitos
comando
Uma imagem compilada por outra pessoa é muito boa, peça emprestada e use. Depois de ver tantos comandos, vamos explicá-los abaixo, mas a melhor explicação é usar a prática! Antes da prática, ainda é necessário explicar e compreender:
HEAD
HEAD, ele sempre aponta para o último ponto de confirmação do branch atual.Se seu branch mudar ou um novo ponto de confirmação for gerado, HEAD sempre mudará de acordo.
ADICIONAR
O comando add é muito simples, é necessário enviar o conteúdo modificado do espaço de trabalho para a área de armazenamento temporário e entregá-lo ao gerenciamento do git.
1) git add. Adiciona todos os arquivos do diretório atual à área de armazenamento temporário
2) git add dir adiciona o diretório especificado à área de armazenamento temporário, incluindo subdiretórios
3) git add file1 adiciona o arquivo especificado à área de armazenamento temporário
Função COMMIT : A principal realização é enviar o conteúdo da área de armazenamento temporário para a biblioteca de versão local e fazer o HEAD do branch atual retroceder um ponto de confirmação
1) git commit -m message envia a área de armazenamento temporário para o armazém local, e a mensagem representa as informações explicativas
2) git commit file1 -m mensagem Envie o arquivo especificado na área de armazenamento temporário para o armazém local
3) git commit --amend -m mensagem Use um novo commit em vez do anterior
ramo
envolve colaboração envolverá naturalmente ramo em ramo, sobre como mostrar ramo, comutação de ramo, criar um ramo, remover as quatro operações de ramo.
Explicação do comando:
1) git branch lista todos os branches locais
2) git branch -r lista todos os branches remotos
3) git branch -a lista todos os branches locais e remotos
4) git branch branch-name cria um novo branch, mas ainda permanece o branch atual
5) git checkout -b branch-name Cria um novo branch e muda para este branch
6) branch git --track branch remote-branc> Cria um novo branch e estabelece um relacionamento de rastreamento com o branch remoto especificado
7) git checkout branch-name muda para o branch especificado e atualiza o espaço
de trabalho 8) git branch -d branch-name exclui o branch
9) git push origin --delete branch-name exclui o branch remoto
O
comando merge merge mescla diferentes ramos. Conforme mostrado na figura acima, na abertura real, podemos cortar um branch do branch master e, em seguida, concluir o desenvolvimento para completar os requisitos. No meio, os registros de commit de R3, R4 e R5 são passados. Finalmente , o desenvolvimento é concluído e precisa ser mesclado com o mestre. Isso usa mesclagem.
O envio push
faz o upload da filial do warehouse local para a filial do warehouse remoto para obter a sincronização.
1) git push remote branch carrega o branch local designado para o warehouse remoto
2) git push remote --force empurra o branch atual para o warehouse remoto com força, mesmo se houver um conflito
3) git push remote --all empurra todos os branches para o armazém remoto
Outros comandos:
1) git status mostra os arquivos alterados
2) git log mostra o histórico de versão do branch atual
3) git diff mostra a diferença entre a área de teste e a área de trabalho
4) git diff HEAD mostra a diferença entre a área de trabalho e o último commit do branch atual A diferença
5) git cherry-pick seleciona um commit e o mescla no branch atual
usar
O primeiro passo é baixar um git, que é a premissa principal.
1. Instale o git
$ sudo apt-get install git
2. Configuração global do Git
Como o git é um sistema de controle de versão distribuído, cada máquina deve se auto-relatar: seu nome e endereço de e-mail. Digite na linha de comando:
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
--Global significa que todos os warehouses git nesta máquina usarão esta configuração; se você especificar um nome e endereço de e-mail diferente para um warehouse, você só precisa remover o parâmetro --global para configurar um único warehouse.
3. Criar Repositório
Repositório O repositório de nomes, o repositório de nomes em inglês, pode ser simplesmente entendido como um diretório. Todos os arquivos neste diretório podem ser gerenciados por git. Cada arquivo é modificado e excluído por git. Ele pode ser rastreado para que o histórico possa ser rastreado a qualquer momento ou pode ser "restaurado" em algum momento no futuro.
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
Depois de construir um repositório Git vazio, você pode descobrir que existe um diretório .git adicional no diretório atual. Este diretório é usado pelo git para rastrear e gerenciar o repositório. É fácil modificar manualmente os arquivos no diretório. O warehouse foi destruído. Você também pode criar um warehouse selecionando um diretório que já tenha arquivos. Não é recomendado usar projetos de empresa de autodesenvolvimento para aprender git.
4. Adicionando
arquivos ao repositório São necessárias apenas duas etapas para colocar um arquivo no repositório Git.
Na primeira etapa , use o comando git add para dizer ao Git para adicionar o arquivo ao repositório:
$ git add readme.txt
Etapa 2 : use o comando git commit para dizer ao Git para enviar o arquivo ao warehouse:
$ git commit -m "wrote a readme file"
[master (root-commit) cb926e7] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
Explique resumidamente o comando git commit, a entrada após -m é a descrição desse commit, você pode inserir qualquer conteúdo, é claro que é melhor ser significativo, para que você possa encontrar facilmente o registro de alteração no registro de histórico.
5. Área de trabalho, área de armazenamento temporário e biblioteca de versão
Working Directory: refere-se ao diretório de um warehouse de gerenciamento criado que pode ser visualizado no PC, ou seja, o diretório do projeto atual.
Repositório: há um diretório oculto .git no espaço de trabalho. Este não é um espaço de trabalho, mas um repositório Git. Há muitas coisas no repositório Git, a mais importante delas é a área de teste chamada stage (ou índice), o primeiro branch master criado automaticamente pelo Git para nós e um ponteiro para master chamado HEAD.
Ao adicionar um arquivo ao repositório Git, a primeira etapa é adicionar o arquivo com git add, que é adicionar a modificação do arquivo à área de armazenamento temporário; a segunda etapa é enviar as alterações com git commit, que é adicionar toda a área de armazenamento temporário O conteúdo é enviado para a filial atual. Porque quando criamos o repositório Git, o Git automaticamente criou o único branch master para nós, então agora, git commit é enviar alterações para o branch master. Pode ser simplesmente entendido que todas as modificações do arquivo que precisam ser enviadas são colocadas na área de armazenamento temporário, e então todas as modificações na área de armazenamento temporário são enviadas de uma vez.
Origem: Se o código estiver hospedado em um servidor remoto, como github, gitee ou gitlab construído por você, este conceito será projetado e a origem e outros conceitos remotos serão introduzidos posteriormente.
6. Controle de versão
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working
directory)
#
# modified: readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
O comando git status nos permite manter a par do status atual do warehouse.O comando acima nos diz que readme.txt foi modificado, mas não há nenhuma modificação pronta para ser enviada.