Instalação e uso do Git (controle de versão)

1. Introdução ao Git (controle de versão)

O desenvolvimento de sistemas de controle de versão pode ser dividido em três etapas:

  • sistema de controle de versão local
  • Sistema centralizado de controle de versão
  • Sistema de controle de versão distribuído
  1. O que é controle de versão?
    Você pode pensar em um sistema de controle de versão (abreviado como VCS) como um “banco de dados” que pode ajudá-lo a salvar um instantâneo completo de um projeto quando necessário. Quando você precisa visualizar um instantâneo anterior (chamado de "versão"), o sistema de controle de versão pode exibir os detalhes de todas as alterações entre a versão atual e a versão anterior.

O que é “controle de versão”? O controle de versão é um sistema que registra alterações no conteúdo de um ou vários arquivos para que você possa verificar o status da revisão de uma versão específica no futuro . No GIT CODE, realizamos o controle de versão em arquivos que armazenam o código-fonte do software, mas na verdade, você pode realizar o controle de versão em qualquer tipo de arquivo. Benefícios do uso de sistemas de controle de versão no desenvolvimento de equipes

  1. Gerenciamento de versões
    Evite confusão no gerenciamento de versões. Esta é a principal razão para usar o gerenciamento de versões e o propósito do gerenciamento de versões. Você definitivamente não deseja fazer backup manual de várias cópias localmente, mas no final você não sabe qual backup é o mais recente, quais modificações foram feitas nesse backup, quando foi a data da modificação, etc. todos os problemas. O software de gerenciamento de versão pode resolver esses problemas.Ele possui registros detalhados, pode lembrar cada envio e cada alteração feita, comparar e visualizar as semelhanças e diferenças entre diferentes versões e restaurar para qualquer versão anterior.

  2. Para melhorar a qualidade do código
    , antes de haver gerenciamento de versões, muitas vezes era necessário escrever comentários irrelevantes no código, por exemplo: alguém modificou um determinado código em um determinado dia; ou algum código que não tinha certeza se deveria ser usado foi retido em a forma de comentários, etc. Espere, esses são códigos de zumbis. Agora, essas tarefas podem ser realizadas por ferramentas de gerenciamento de versão e esses códigos zumbis irrelevantes podem ser excluídos do código.
    4. Melhorar a eficiência do desenvolvimento colaborativo e multipessoal.
    O envio do código atualizado em tempo hábil permite que os membros da equipe aprendam sobre o status mais recente do código e evitem a duplicação de trabalho.
    5. Esclareça a divisão de responsabilidades.
    Quando e quem modificou o código e qual conteúdo foi modificado, o gerenciamento de versão irá registrá-lo para facilitar a consulta e a prestação de contas.
    6. Além do código, muitos documentos e dados pessoais, como currículos, etc., podem ser versionados, o que é interessante e eficiente. Todos os documentos que precisam ser modificados continuamente podem ser versionados.
    Ferramentas de controle de versão:
    vamos apresentar as ferramentas de controle de versão atualmente comuns.

  3. Git

Git é atualmente o sistema de controle de versão distribuído mais avançado do mundo. Usar Git e Gitlab para construir um ambiente de controle de versão é agora o método de controle de versão mais popular em empresas de Internet. Introdução: Git é um sistema de controle de versão distribuído de código aberto gratuito
projetado
para seja rápido e eficiente. Lide com tudo, de projetos pequenos a grandes, com eficiência.
Git é fácil de aprender, ocupa pouco espaço de memória e tem desempenho extremamente rápido.
Endereço Github: https://github.com/git/git
site oficial: https://git-scm.com/official
documentação: https://git-scm.com/docs
Documentação chinesa: https://git- endereço de download scm.com/book/zh/v2
: https://git-scm.com/downloads

  1. SVN

Introdução:
TortoiseSVN é um software de controle de versão/controle de versão/controle de código-fonte multiplataforma muito fácil de usar. É baseado no Apache Subversion (SVN)®; o TortoiseSVN fornece uma interface de usuário simples e fácil de usar para o Subversion.
Endereço de código aberto do TortoiseSVN: https://osdn.net/projects/tortoisesvn/
Endereço Github do Subversion: https://github.com/apache/subversion
Site oficial: https://tortoisesvn.net/
Documentação oficial: https:// tortoisesvn.net/docs/release/TortoiseSVN_en/index.html
Documento chinês: https://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/index.html
Endereço para download: https://tortoisesvn.net/downloads.html

  1. HG

Introdução:
Mercurial é uma ferramenta de gerenciamento de código-fonte distribuída gratuitamente. Ele pode lidar com projetos de qualquer tamanho com eficiência e oferece uma interface simples e intuitiva. Mercurial é um sistema leve de controle de versão distribuído implementado em linguagem Python, fácil de aprender e usar e com forte escalabilidade.
Site oficial: https://www.mercurial-scm.org/Documentos oficiais
: https://www.mercurial-scm.org/wiki/BeginnersGuides
Endereço para download: https://www.mercurial-scm.org/downloads

  1. CVS

CVS é ​​um sistema de controle de versão e uma parte importante do Source Configuration Management (SCM). Com ele, você pode registrar o histórico de arquivos e documentos de origem. O antigo sistema de controle de versão é baseado no comportamento cliente/servidor para poder acomodar vários usuários e também é muito conveniente para formar uma rede. Esse recurso torna o CVS a primeira escolha quando pessoas em locais diferentes trabalham em arquivos de dados (especialmente no código-fonte de um programa) ao mesmo tempo.
Site oficial: http://www.nongnu.org/cvs/Documento oficial
: https://web.archive.org/web/20140629065005/http://ximbiot.com/cvs/manual/cvs-1.11.23/ endereço de download cvs.html
: https://ftp.gnu.org/non-gnu/cvs/

Vantagem:

  1. Gerenciamento mais fácil. Os sistemas tradicionais de controle de versão usam repositórios centralizados, e algum gerenciamento relacionado ao repositório só pode ser executado apenas pelo administrador. Devido ao modelo distribuído, esse problema não existe no Mercurial, cada usuário gerencia seu próprio repositório e o administrador só precisa coordenar e sincronizar esses repositórios.
  2. Sistema mais robusto. Os sistemas distribuídos são mais robustos que os sistemas centralizados de servidor único. Quando ocorre um problema de servidor em um sistema de servidor único, todo o sistema não pode ser executado. Os sistemas distribuídos geralmente não são afetados por um ou dois nós.
  3. Menos dependência da rede. Como a sincronização pode ocorrer a qualquer momento, o Mercurial pode até ser gerenciado offline e só precisa ser sincronizado quando houver uma conexão com a Internet.

Cliente visual para ferramentas de controle de versão

  1. O idiota kraken

Use facilmente repositórios hospedados em GitHub, GitLab, Bitbucket, Azure DevOps (VSTS). GitKraken trata de clonagem, adição de ramificações e criação/abertura de pull requests.
Site oficial: https://www.gitkraken.com/

Características:

  1. IU intuitiva
  2. Editor de código integrado: inicialize um novo projeto e use o editor de código integrado para adicionar novos arquivos e pastas e editá-los diretamente no GitKraken. Salve arquivos, prepare e confirme alterações. Chega de mudanças de contexto!
  3. Rastreamento de tarefas: conecte o Glo Board a um repositório no GitKraken. À medida que avança em uma tarefa, você pode atualizar rapidamente seu código sobre problemas e voltar à codificação. 2.Torre

Site oficial: https://www.git-tower.com

Vantagens da Torre

  1. Facilidade de uso: Não há necessidade de lembrar comandos complexos (e seus parâmetros). O Tower torna muitas operações avançadas tão fáceis quanto arrastar e soltar.

  2. Desfazer tudo: incluindo desfazer alterações locais, restaurar versões antigas, reverter commits, restaurar commits excluídos e desfazer exclusões de ramificações

  3. Visualização clara, melhor compreensão: A interface visual clara do Tower é incrivelmente útil - e torna cenas complexas mais fáceis de entender.

  4. Use o Git com elegância: resolva conflitos de mesclagem de maneira simples e intuitiva, sem necessidade de chaves SSH, nomes de usuário, senhas e tokens de autenticação para verificação

  5. Árvore de origem

Introdução: Sourcetree, um cliente Git gratuito para Windows e Mac,
simplifica a maneira como você interage com repositórios Git. Visualize e gerencie repositórios por meio da GUI Git simples do Sourcetree.
Site oficial: https://www.sourcetreeapp.com/

2. Instalação do GIT e instalação de comando

1. Instalação

Como desenvolvo principalmente no Windows, falarei apenas sobre a instalação do git no Windows (a instalação do git no Linux, Unix e Mac não está listada aqui).

1) Baixe do site oficial: Git - Downloads
2) Clique duas vezes para executar o exe e instalá-lo por padrão (você também pode modificar o caminho de instalação);
após a conclusão da instalação, você poderá vê-lo com o botão direito do mouse , e há várias outras opções:
Insira a descrição da imagem aqui
Git GUI Aqui Isto é principalmente para git. Janela gráfica (geralmente não usada, o TortoiseGit será instalado para uso); Git Bash Aqui está principalmente a linha de comando, como segue
Insira a descrição da imagem aqui

Indica que a instalação do git foi bem-sucedida

2. Fluxo de trabalho

1) Clonar recursos git do armazém remoto como armazém local;

2) Retire o código do armazém local e modifique-o;

3) Enviar o código adicionado à área de armazenamento temporário antes de enviar o código;

4) comprometer-se a enviar alterações (enviar para o armazém local e salvar cada versão histórica das alterações);

5) Depois que a modificação for concluída e o código precisar ser compartilhado, envie-o para o armazém remoto.

Como mostrado abaixo:
Insira a descrição da imagem aqui

Espaço de trabalho: o diretório que pode ser visto localmente é um espaço de trabalho

Área de teste: no arquivo de índice (.git/index) no diretório .git, também chamado de índice

3. Versão do arquivo de gerenciamento Git

3.1 Criar um repositório
Um repositório pode ser entendido simplesmente como um diretório. Todos os arquivos neste diretório podem ser gerenciados pelo Git. O Git pode rastrear a modificação e exclusão de cada arquivo e seu histórico.

Há uma pasta .git no armazém git. Esta pasta está oculta. Se a pasta oculta não estiver configurada para ser exibida, o usuário não poderá ver a pasta. O usuário pode criar a pasta .git diretamente por meio da linha de comando git init. Crie ou clique com o botão direito em "TortoiseGit cria repositório aqui" (não marque "Criar repositório puro (sem diretório de trabalho)" na janela pop-up. Se marcado, o repositório criado não terá um diretório de trabalho, ou seja, os arquivos não podem ser adicionado ao repositório local), o diretório que contém a pasta .git é chamado de diretório de trabalho.

O Git criará automaticamente um branch master e executará um ponteiro HEAD do master.

4. Pedido

1)iniciar

——Inicializar o repositório git

git init //Inicializa o git warehouse
git init project //Inicializa o git warehouse no diretório do projeto
2) add

——Adicionar arquivos ao controle de versão

git add readme.txt //Envia readme.txt para o warehouse
3) clone

——Copie o projeto do repositório git existente

git clone https//test.git test //Copie o conteúdo do armazém test.git para o diretório de teste
4) config

—— Definir comando

git config --list //Exibe as informações de configuração atual do git
git config -e //Definir git config -e para o armazém atual
git config -e --global //Para todos os armazéns no sistema
5) status

—— Visualize o status atual do warehouse e exiba os arquivos alterados

git status
git status -s //Obter breve conteúdo
6) diff

——Compare as diferenças entre arquivos, as diferenças entre a área de armazenamento temporário e a área de trabalho

git diff [nome do arquivo] //Alterações que não foram armazenadas em cache
git diff --cached [nome do arquivo] //Ver alterações em cache
git diff --staged [nome do arquivo]
git diff HEAD //Ver todas as alterações armazenadas em cache e não armazenadas em cache
git diff --stat //Mostra o resumo em vez do diff inteiro
git diff [first-branch] [second-branch] //Mostra a diferença entre 2 commits
7) commit

——Envie a área de preparação para o armazém local

git commit -m [message] //Envia
git commit [file1] ... [fileN] //Envia o arquivo especificado para a área do warehouse
git commit -a //Não há necessidade de executar git add, envie diretamente
8) reset

——Retornar à versão, você pode especificar para retornar a uma determinada versão enviada

git reset [–soft | --mixed | --hard] [HEAD]
–mixed é o padrão e pode ser usado sem este parâmetro. Ele é usado para redefinir os arquivos na área de teste para serem consistentes com o último envio, e o conteúdo dos arquivos do espaço de trabalho permanece o mesmo.

git reset HEAD~1 //Reverter todo o conteúdo para a versão anterior
git reset HEAD readme.txt //Reverter a versão do arquivo readme.txt para a versão anterior
git reset xxx //Reverter para a versão especificada
–soft parâmetro é usado Reverter para uma versão

git reset --soft HEAD~3 //Volte para as 3 primeiras versões
– o parâmetro hard desfaz todas as modificações não confirmadas no espaço de trabalho, retorna a área de teste e o espaço de trabalho para a versão anterior e exclui todas as anteriores Envio de informações: (Observação: todas as informações anteriores ao ponto de reversão serão excluídas)

git reset --hard HEAD~3 //Retorna às 3 primeiras versões
git reset --hard xxxx //Retorna a todas as informações antes do ponto de rollback de uma determinada versão
git reset --hard origin/master //Restaura local O status volta para o mesmo que o remoto
9) rm

——Excluir arquivos do espaço de trabalho

git rm [arquivo] //Excluir arquivos da área de teste e da área de trabalho
git rm -f [arquivo] //Para excluir arquivos modificados anteriormente que foram colocados na área de teste, você precisa usar a opção de exclusão forçada -f
git rm -- cached [arquivo] //Remova o arquivo da área de armazenamento temporário e mantenha-o no diretório de trabalho atual
git rm -r * //Exclua recursivamente, exclua todos os arquivos e subdiretórios no diretório
10) mv

——Mover ou renomear arquivos do espaço de trabalho

git mv [arquivo] [novoarquivo] //Mover ou renomear um arquivo, diretório ou link virtual
git mv -f [arquivo] [novoarquivo] //o novo arquivo existe e precisa ser forçado a executar
11) log

——Ver registros históricos de envio

git log //Ver registros históricos de commits
git log --online //Ver uma versão concisa dos registros históricos
git log --graph //Ver o tempo em que ramificações e fusões ocorreram no histórico
git log --reverse //Exibir todos os logs inverter
git log --author //Ver o log enviado pelo usuário especificado
git log --before(–since)={3.week.ago} --after(–until)={2021-07-25} // Ver 3 semanas atrás e todos os logs de commit após 25/07/2021
git log --no-merges //Ocultar commits de mesclagem
12) culpa

—— Visualize o registro de modificação do arquivo especificado, exibido em forma de lista

git culpa [arquivo]
13) remoto

——Operação de armazém remoto

git remote -v //Exibe todos os repositórios remotos
git remote show [remote] //Exibe informações sobre um repositório remoto
git remote add [shortname] [url] //Adiciona repositório remoto
git remote rm name //Exclui repositório remoto
git remote rename old_name new_name //Modifique o nome do armazém.
Se a transmissão entre o armazém git local e o github for criptografada por meio de SSH, você precisará configurar as informações de verificação:

Primeiro gere a chave SSH;

Gere a pasta .ssh em ~/, abra id_rsa.pub e copie o valor da chave;

14) buscar

——Obtenha a base de código do controle remoto. Depois de executar este comando, você precisa executar git merge da ramificação remota para a ramificação onde ele está localizado.

git merge //Busca dados do warehouse remoto e tenta mesclar na ramificação atual
git fetch [alias] //Busca dados atualizados
git merge [alias]/[branch] //Mescla quaisquer atualizações do warehouse remoto na ramificação atual
15) puxar

—— Baixe o código remoto e mescle-o, que é a abreviatura de git fetch e git merge FETCH_HEAD.

git pull [nome do host remoto] [nome da ramificação remota]:[nome da ramificação local] // Extraia a ramificação do host remoto e mescle-a com a ramificação local. Se for a ramificação local atual, ela pode ser omitida
.

16)empurrar

——Carregar código remoto e mesclar

git push [nome do host remoto] [nome da filial local]: [nome da filial remota]
Se o nome da filial local for igual ao nome da filial remota, o nome da filial remota poderá ser omitido.

git push --force [nome do host remoto] [nome da filial local]:[nome da filial remota] //Há uma diferença entre a versão local e a versão remota, force push git push [
nome do host remoto] --delete [remote nome da filial] // Exclui a filial correspondente ao host
17) Gerenciamento da filial

git branch [branchname] //Criar branch
git checkout [branchname] //Alterar branch
git branch //Listar branchs
git branch -d [branchname] //Excluir branch
git merge [branchname] //Mesclar branchname para ferver branch
18) tag

——Tag, você pode atrasar a rotulagem

git tag -a xxx [xxxx] //Cria tags anotadas
git tag -a [tagname] -m "xxx" //Especifica informações da tag
git tag -s [tagname] -m "xxx" //Tag de assinatura PGP

O objetivo do GitHubDaily é enviar um lote de excelentes projetos de código aberto no GitHub para desenvolvedores de vez em quando, todos os dias, para ajudar os desenvolvedores a descobrir os projetos de código aberto mais interessantes do momento, para que os desenvolvedores possam controlar o pulso da tecnologia e expandir seus horizontes técnicos. e obter melhorias de capacidade técnica aprendendo com projetos de código aberto. Portal: github.com/GitHubDaily/GitHubDaily

3. Uso

4. Controle de versão

5. Gestão de filiais

6. Tags Git

7. Git + VsCode minimalista (Windows)

Acho que você gosta

Origin blog.csdn.net/SDXYGZH/article/details/126541769
Recomendado
Clasificación