instalação Git
Instalar
1. Primeiro, acesse o site oficial para baixar este software e prepare-se para instalá-lo neste computador
git-scm.com/
2. Baixe este software para a máquina de acordo com seu próprio sistema de computador
O sistema Windows pode baixar diretamente o arquivo .exe, o sistema macOS usa a linha de comando Homebrew para instalar e o terminal insere git --version para confirmar a instalação
3. O caminho de instalação padrão pode ser selecionado por padrão. Se você quiser alterar o caminho, certifique-se de usar o caminho em inglês
4. Para o sistema Windows, verifique se a instalação foi bem-sucedida: Clique com o botão direito do mouse em qualquer pasta, verifique se há uma opção Git Base Here, se houver, foi bem-sucedida
introduzir
Três áreas do Git:
- espaço de trabalho: a área onde o trabalho é feito
- Área de armazenamento temporário: uma área para armazenamento temporário
- Local git warehouse: área de armazenamento final
Na pasta é refletido da seguinte forma:
- Workspace: o diretório que você vê no seu computador
- Área de armazenamento temporário: no índice da pasta .git (registros binários)
- Repositório: refere-se a toda a pasta .git (também considerado um depósito local)
Isso é refletido no código da seguinte forma:
Git usa
Documentação oficial: link do tutorial
Tutorial para iniciantes: link do tutorial
Configuração do Git
Depois de instalar o Git, a primeira coisa a fazer é configurar seu nome de usuário e endereço de e-mail. Porque todo commit do Git usará essas informações
O formato do comando é o seguinte: Chinês depende da situação
comando git config fixed, defina a configuração relacionada ao git
--global Configuração global: Uma vez configurada, toda a máquina entrará em vigor ao usar o git
git config --global user.name 你的用户名
git config --global user.email 你的邮箱地址
O efeito de executar o comando é o seguinte:
Após a configuração, você pode executar o seguinte comando para verificar se foi bem-sucedido
git config --list
#如果信息太多,可以输入 q 退出
O efeito de executar o comando é o seguinte:
Se o conteúdo acima aparecer, o registro foi bem-sucedido
Se você quiser modificá-lo posteriormente, basta executar o comando novamente
Marque no lado direito do arquivo no vscode
Geralmente, ao abrir uma pasta contendo um git warehouse, haverá essas marcas
右侧没有标记的时候为“未修改” 或 此文件/文件夹, 被git忽略不跟踪变化
M为“已修改”
A为“已添加”
D为“已删除”
R为“已重命名”
C为“已复制”
U为“已更新但为融合”
Comandos básicos do Git
Inicializar um repositório Git vazio
Criamos uma nova pasta/pasta existente não é um git warehouse, porque não há pasta .git, portanto não é gerenciada pelo git. Na nova pasta/pasta existente, você pode executar o seguinte comando para obter a pasta .git e deixar o git começar a se preparar para o gerenciamento
# Inicialize o git warehouse, produto: pasta .git (gerenciada "dentro" da pasta) git init
Por exemplo, insira o comando git init em uma nova pasta para inicializar um repositório git vazio
Depois de inicializar com sucesso o git warehouse vazio, na pasta do projeto, exiba os arquivos ocultos e você poderá visualizar a pasta .git. Para sistemas Windows, marque a opção Hidden Items em View. Para o sistema macOS, use a tecla de atalho Command + Shift + . para alternar a exibição do arquivo oculto
Gravar atualização no repositório Git
Sempre que você concluir o objetivo de um estágio e quiser documentá-lo, faça o commit no repositório
Operação principal: desenvolvimento do espaço de trabalho ---> adicionar o arquivo modificado à área de armazenamento temporário ---> gravar os arquivos na área de armazenamento temporário no repositório
-
Para alterar o espaço de trabalho e colocá-lo na área de armazenamento temporário, o seguinte comando
bashcopiar código
# (了解) 将index.html 添加到暂存区 git add index.html # 将css目录下一切添加到暂存区 git add css
-
O seguinte comando pode colocar todos os arquivos alterados na área de armazenamento temporário de uma só vez
Nota: Há um espaço após adicionar, o que
.
significa que todas as alterações no diretório atual são armazenadas temporariamentecopiar código
git add .
-
Envie o conteúdo da área de armazenamento temporário para a biblioteca de versões, o comando é o seguinte
bashcopiar código
git commit -m '提交的内容说明'
-
Gráfico:
Equivale a arquivar uma vez, gerando um registro de commit no repositório (e gerando um número de versão)
Este arquivo não nos atrasará para continuar escrevendo projetos no espaço de trabalho (pasta do projeto)
Git log e exibição de status
-
Para visualizar todos os registros de log enviados, o comando é o seguinte
bashcopiar código
git log
O efeito de executar o comando é o seguinte:
-
Quando tivermos mais e mais logs, podemos simplificar a visualização, podemos inserir o seguinte comando
--oneline exibe informações breves em uma linha
copiar código
git log --oneline
O efeito de executar o comando é o seguinte:
-
Se você alterou muito código e esqueceu quais foram alterados, você pode executar o seguinte comando para visualizar as alterações no git warehouse e poderá ver apenas o status de todos os arquivos alterados não confirmados
bashcopiar código
git status
O efeito de executar o comando é o seguinte:
-
Armazenamento temporário e enviar novamente para gerar um registro de versão
bashcopiar código
git add . git commit -m '新建登录页面_和样式'
-
O diagrama é o seguinte:
Reversão da versão do Git
Máquina do tempo, volte ao passado~
-
A sintaxe do comando de fallback é a seguinte, o chinês depende da situação
bashcopiar código
git reset --hard 版本号
-
Ver número da versão
O número da versão é gerado aleatoriamente a cada vez, o nosso é definitivamente diferente
copiar código
git log --oneline
-
Tente reverter
bash477321b
para este registrocopiar código
git reset --hard 477321b
-
Observe o espaço de trabalho, a reversão foi bem-sucedida
-
Se você quiser voltar ao registro do último envio, descobrirá que o git log não pode ver os registros futuros, mas o problema não é grande
Insira o comando git reflog para visualizar todos os registros de operação do git, incluindo seus registros de redefinição
bashcopiar código
git reflog
O efeito de executar o comando é o seguinte:
Comando estendido:
- git bash (terminal) limpa a tela:
clear
- git bash (terminal) inicia uma nova página:
Ctrl + L
Git ignora arquivos
Às vezes, não queremos que o git rastreie e gerencie certos arquivos/pastas. Neste cenário, precisamos criar um arquivo de ignorar chamado .gitignore (nome fixo) ao lado da pasta .git e escrever as regras de ignorar. O nome do arquivo aqui é .gitignore, que não é um sufixo.
A estrutura de pastas do projeto é a seguinte:
gitignore
copiar código
# .gitignore内容: password.txt 其余用法: # 忽略文件夹 css # 忽略文件夹下的某个文件 css/index.js # 忽略文件夹下某类文件 css/*.js
Crie um novo password.txt no diretório raiz para ver quais alterações o git rastreou
bash
copiar código
git status
O efeito de executar o comando é o seguinte:
Verificou-se que apenas .gitignore foi adicionado e aqueles que estavam em conformidade com as regras foram ignorados
ramificação git
natureza do ramo
- Uma ramificação é na verdade uma marca de ponteiro chamada HEAD .Toda vez que o código é enviado, o ponteiro HEAD se moverá para trás uma vez para garantir que o que ele aponta (e no espaço de trabalho) seja o último envio. Quando pressionamos o comando:
git reset --hard a3bcab2
, o ponteiro do HEAD se moverá e, após o movimento do HEAD, afetará o código no espaço de trabalho
criar ramo
-
O comando para criar uma ramificação é o seguinte
bashcopiar código
# 创建分支 git branch 分支名
-
Observação: as ramificações não serão alternadas automaticamente após a criação, podemos executar o comando para visualizar todas as ramificações no repositório .git atual
O comando para visualizar todas as ramificações da biblioteca da versão atual é o seguinte
bashcopiar código
# 查看当前版本库所有分支 git branch # 绿色带*代表, 你现在所处的分支
O efeito de executar o comando é o seguinte:
-
Alternar manualmente para a ramificação
Nota: Crie e mude para este ramo pela primeira vez, aqui você descobrirá que todos os códigos no ramo mestre (e todos os registros de envio do nó atual) foram copiados, com base nisso, você pode desenvolver mais tarde
copiar código
# 切换分支命令 git checkout 分支名
O efeito de executar o comando é o seguinte:
-
O diagrama é o seguinte:
Processo de desenvolvimento da filial
-
Agora podemos escrever sob o ramo reg atual, registrar o código lógico da página, por exemplo, criar um novo arquivo reg.html e escrever algo casualmente
-
Em seguida, armazene e envie temporariamente uma vez, e o registro enviado desta vez aparecerá aqui, conforme mostrado na figura
- Portanto, no futuro, ao desenvolver sob o ramo reg atual, um registro de versão será gerado para cada envio dentro do intervalo reg, mas não afetará outros ramos
fusão de ramificação
-
Podemos mesclar o código escrito na ramificação na ramificação principal/outras ramificações
-
Primeiro, mude para a ramificação de destino na qual deseja mesclar, aqui está a ramificação principal principal como exemplo
bashcopiar código
# 切换分支 git checkout master
-
O diagrama é o seguinte
-
Sintaxe do comando de mesclagem
bashcopiar código
# 把目标分支名下的所有记录, 合并到当前分支下 git merge 目标分支名
-
Aqui executamos o comando
bashcopiar código
git merge reg
-
Diagrama de efeitos após a execução
exclusão de ramificação
-
Se a função de registro for desenvolvida e o código for mesclado na ramificação master, não precisamos da ramificação reg
-
O comando é o seguinte
bashcopiar código
git branch -d 分支名
-
Se o código da sua filial atual não tiver sido mesclado com outras filiais, um erro será relatado
Conflitos ao mesclar branches
Nas duas ramificações, o mesmo arquivo foi modificado e enviado. Ao mesclar, ocorrerão conflitos
-
Simule um conflito simples aqui
-
Na ramificação master, modifique uma linha de código em login.html e conclua um envio temporário
-
Alterne para a ramificação reg, modifique a linha de código correspondente em login.html e conclua um envio temporário
-
-
Em seguida, volte para a ramificação master, use o comando merge para mesclar o código e as alterações na ramificação reg
Não surpreendentemente, haverá conflitos
-
Após um conflito, a interface do VSCode
Neste ponto temos que fazer uma escolha: adotar as mudanças atuais, adotar as mudanças que estão chegando, manter todas as
-
Depois de selecionar o método de retenção, você precisa salvar temporariamente e enviar novamente
Neste ponto, o estado de conflito é encerrado e ele retorna ao estado normal
-
Imprimir registros de log após mesclagens conflitantes
Resumo: quando encontramos um conflito na mesclagem, devemos resolvê-lo manualmente, armazená-lo temporariamente e enviá-lo uma vez
Suplemento - Explicação detalhada do fluxograma da ramificação do Git
- O ponteiro do cabeçalho HEAD, que aponta para o registro de envio, será substituído na área de trabalho e na área de armazenamento temporário, cada envio gerará um novo registro, mestre e HEAD serão movidos para trás
-
Otimista sobre a ramificação e os registros atuais e criar uma nova ramificação com base neste nó (incluindo todos os registros de envio anteriores),
git branch reg
uma marca de ponteiro será criada para identificar o nome do registro apontando para
-
git checkout reg
O switch é apontado pelo ponteiro HEAD (switch branch)
-
Depois que a página de registro é criada,
git add .
ela é adicionada à área de armazenamento temporário egit commit -m
um registro de envio é gerado
-
Depois que o estilo da página de registro é recém-criado, o envio é armazenado temporariamente e um registro de envio é gerado
-
Mesclar ramificação (registro de confirmação)
- Objetivo: você deseja mesclar A em B. Por exemplo: Mesclar reg no master
- git checkout B, depois de mudar para o branch de destino
- git merge A, mescla os registros da ramificação A na ramificação B
Primeiro mude para o branch principal git checkout master
-
Mesclar reg branch git merge reg
-
Xiao Ming - modificou o arquivo index.html, na ramificação reg, e o salvou e enviou temporariamente, resultando em um registro
-
Xiao Ming - modificou o arquivo index.html (o mesmo arquivo), na ramificação master, salvou temporariamente o envio e gerou um registro
-
Mescle o registro e altere o mesmo arquivo para relatar um erro, que precisa ser resolvido
-
Após resolver manualmente os conflitos, um novo registro de confirmação será gerado
-
Exclua a ramificação reg e todo o processo terminará
Git repositório remoto
introduzir
Um repositório remoto é um repositório do seu projeto hospedado na Internet ou outra rede que armazena todos os registros e arquivos do nosso repositório. Oferecer suporte à colaboração entre várias pessoas e gerenciar armazéns remotos em conjunto, para que, quando nosso computador quebrar, também possamos clonar um código enviado anteriormente do armazém remoto para continuar o desenvolvimento localmente
Os principais armazéns remotos incluem o GitHub (centro gay), a maior comunidade de encontros ponto a ponto do mundo, e gitee (nuvem de código), cujo servidor está na China. Como o servidor GitHub está no exterior, é necessário navegar na Internet cientificamente ou usar outras ferramentas de aceleração. Para facilitar, aqui está o Code Cloud como exemplo para referência de iniciantes. O processo do GitHub é semelhante ao gitee
registro
Depois de se registrar e fazer login no site gitee.com, adicione o endereço de e-mail principal como o endereço de e-mail definido em seu git warehouse local. Observe que deve ser o mesmo, caso contrário, não poderá ser enviado corretamente. Se você esquecer o endereço de e-mail definido localmente, pode abrir o console e entrar para git config --list
verificar o endereço de e-mail novamente. Claro, você também pode usar git config --global user.email 你的邮箱地址
o
Na interface de configuração de e-mail, não marque a caixa que não divulga meu endereço de e-mail, caso contrário não conseguirá enviar normalmente
novo armazém
Você pode optar por criar um projeto de armazém remoto (múltiplos), a interface de criação é a seguinte
Após a conclusão da verificação, selecione Create.Após a criação, você obterá um link para o endereço do warehouse remoto, que geralmente termina em .git.
Os endereços se enquadram em dois dos protocolos de transporte mais comumente usados:
- Protocolo HTTPS: é necessário inserir o nome de usuário e a senha gitee.com/(userName)/…
- Protocolo SSH: você precisa configurar a chave secreta, você pode fazer login em [email protected] sem senha : userName/repositoryName.git
Selecione o caminho SSH, a interface é a seguinte
configuração ssh
Podemos fazer login sem senha depois de configurar o SSH nesta máquina uma vez
-
composição e função da chave ssh
textocopiar código
ssh key 的作用:实现本地仓库和 gitee平台之间免登录的加密数据传输 ssh key 由两部分组成,分别是: id_rsa(私钥文件,存放于客户端的电脑中即可) id_rsa.pub(公钥文件,需要配置到 gitee平台 中) 私钥加密的信息,只能通过公钥解密。公钥加密的信息,只能通过私钥解密。安全性高!
Crie e use etapas:
-
Primeiro gere uma chave secreta na máquina local (ela também pode ser regenerada e reconfigurada posteriormente), abra um terminal aleatoriamente e digite o seguinte comando:
bashcopiar código
ssh-keygen -t rsa -C "你注册账号的邮箱"
-
Pressione Enter três vezes seguidas para gerar dois arquivos, id_rsa e id_rsa.pub, no diretório C:\Users\username folder.ssh
-
Use vscode para abrir o arquivo id_rsa.pub e copie o conteúdo de texto dentro
-
Cole a configuração em Code Cloud -> Settings -> ssh public key
-
Se for um mac, você pode entrar no seguinte tutorial para visualizar: mac obtém a chave pública
Inicializar um repositório vazio
Primeiro configure o endereço de um armazém remoto para o armazém local e estabeleça um link entre os armazéns
Como cada operação push precisa trazer o endereço do armazém remoto, isso é muito problemático. Podemos definir um alias para o armazém
bash
copiar código
# 给远程仓库设置一个别名 git remote add 仓库别名 仓库地址 git remote add origin [email protected]:(username)/repository.git # 删除 origin 这个别名 git remote remove origin # 使用 -u 记录 push 到远端分支的默认值,将来直接 git push 即可 git push -u 仓库别名 分支名
O seguinte é um exemplo de operação real:
-
Basta criar uma nova pasta de projeto, inicializar o git e, em seguida, preencher algum conteúdo no arquivo do projeto, aqui eu adiciono um novo
.gitignore
arquivo e, em seguida, salve-o temporariamente e envie-o para o repositório git local -
Digite o seguinte comando:
bashcopiar código
# 注意:这里的existing_git_repo是你的项目根路径 cd existing_git_repo #如果你是在项目文件夹开启的终端,忽略此行 # 添加远程仓库关联,仓库别名origin,可以随意更改,后接ssh地址 # 此处的ssh是自动生成的,可以去gitee空仓库的代码页直接复制即可 git remote add origin [email protected]:li-houyi/test-factory.git # 第一次推送到远程时需要指定具体的分支,因为远程仓库并没有这个分支 # 使用 -u 记录 push 到远端分支的默认值,将来直接 git push 即可 git push -u origin "master"
-
Esta página é considerada bem-sucedida:
Nota: O depósito local enviado não deve estar vazio e o armazenamento temporário local foi enviado, caso contrário, um erro será relatado! Isso também é fácil de entender: se você enviar um projeto vazio para um depósito vazio, isso não deveria causar um erro?
-
Depois que o push for bem-sucedido, entre novamente na página gitee warehouse para verificar se o push está correto
-
Depois que o armazém vazio for criado com sucesso, você pode abrir o armazém na página de gerenciamento, é claro, você não pode definir o código aberto (privado padrão)
nativo sem projeto - clone
Se você não tiver um projeto localmente e quiser obter o código do warehouse de outra pessoa ou do seu próprio warehouse, precisará clonar o projeto
-
O comando é o seguinte:
bashcopiar código
git clone 目标远程仓库的git地址
-
O processo é como se segue:
-
Se o projeto tiver apenas uma ramificação, o código acima foi clonado após a execução (o git clone puxa a ramificação mestre por padrão), mas no desenvolvimento real, não há apenas uma ramificação, portanto, precisamos executar as seguintes etapas:
- Crie uma ramificação localmente, o nome da ramificação é o mesmo que o nome da ramificação remota, verifique o nome da ramificação remota usando
git branch -r
copiar código
git checkout -b 对应远程分支名
- Puxe a ramificação remota ( não puxe diretamente o código da ramificação correspondente na ramificação principal, mude para a ramificação recém-criada )
copiar código
# 每次拉取都需要指定远程仓库名和分支名 git pull 远程仓库名 分支名
- Nota: As 2 linhas de comandos acima podem ser combinadas em uma linha
copiar código
git checkout -b 分支名 origin/分支名
- Extensão: Defina a ramificação puxada por git pull por padrão
copiar código
git branch --set-upstream-to=origin/远程分支名 本地分支名
- Crie uma ramificação localmente, o nome da ramificação é o mesmo que o nome da ramificação remota, verifique o nome da ramificação remota usando
Desenvolvimento colaborativo
- A escreve código, armazena, envia e, em seguida, envia para o servidor remoto
- B escreve o código, salva-o temporariamente e o envia. Você pode primeiro extrair o registro recém-enviado pela outra parte para a mesclagem local e, em seguida, enviá-lo para o controle remoto após a mesclagem estar correta.
- Um pode git pull para puxar a última versão do código remoto para a mesclagem local
A ou B aqui pode ir primeiro, continue puxando o código atualizado, apenas use o comando git pull
Revisão do processo de armazenamento remoto do Git
-
Passo 1:
-
Passo 2:
-
Etapa 3:
-
Passo 4:
Visão geral dos comandos comuns do Git
Autor: Yaonan.
Os direitos autorais pertencem ao autor. Para reimpressão comercial, por favor, entre em contato com o autor para autorização, para reimpressão não comercial, por favor, indique a fonte.