O tutorial de aprendizado Git mais completo da história

 

 

O Git é um dos sistemas de controle de versão distribuída mais avançados do mundo.

                                     —— Git entusiastas

O Git é uma "ferramenta de gerenciamento de versão distribuída", que possui muitas vantagens: fusão mais conveniente, gerenciamento mais conveniente, sistema mais robusto, menos dependência da rede, menos "poluição do armazém", etc. , O que torna o Git a melhor maneira de desenvolver código de forma colaborativa.

Este artigo apresentará mais de setenta comandos e técnicas Git comumente usados.Vamos dar uma olhada no encanto de um projeto do Github que excede 1,1W de estrelas.

Deve ler

Se você nunca usou o Git antes, pode aprender o tutorial em branco do Git [1] Introdução:

  1. Certifique-se de testar o efeito do comando antes de usá-lo no ambiente de trabalho para evitar consequências irreparáveis! Não venha para mim com um facão

  2. Todos os comandos estão git version 2.7.4 (Apple Git-66)em teste

  3. Conceito unificado:

  • Área de trabalho: alterações (adição e exclusão de arquivos e conteúdos)

  • Área de armazenamento temporário: digite o comando :, git add 改动的文件名essa alteração será colocada na 'área de armazenamento temporário'

  • Armazém local (abreviação: local): Digite o comando :, git commit 此次修改的描述essa alteração é colocada no 'armazém local', cada confirmação, eu chamo de 'versão'.

  • Armazém remoto (abreviação: remote): Digite o comando :, git push 远程仓库essa alteração será colocada no 'armazém remoto' (GitHub, etc.)

  • commit-id: comando de saída :, git loga linha superior commit xxxxxx, a string por trás é commit-id

 

Diretório

  • Exibir informações de ajuda

  • Voltar ao armazém remoto

  • Redefinir a primeira confirmação

  • Exibir lista de arquivos de conflito

  • Mostrar a diferença entre a área de trabalho e a área de preparação

  • Mostrar a diferença entre a área de preparação e a versão mais recente

  • Mostrar a diferença entre a área de preparação, o espaço de trabalho e a versão mais recente

  • Alterne rapidamente para a ramificação anterior

  • Exclua a ramificação que foi mesclada no mestre

  • Mostrar a situação das filiais locais associadas aos armazéns remotos

  • Filial remota associada

  • Listar todas as ramificações remotas

  • Listar ramificações locais e remotas

  • Exibir a correspondência entre filiais remotas e filiais locais

  • Excluiu a ramificação remotamente e queria excluí-la localmente

  • Crie e mude para a filial local

  • Criar e alternar para uma filial local a partir de uma filial remota

  • Excluir filial local

  • Excluir filial remota

  • Renomear filial local

  • Ver etiquetas

  • Ver detalhes da etiqueta

  • Crie tags localmente

  • Enviar tags para o armazém remoto

  • Excluir marcador local

  • Remover etiquetas remotas

  • Voltar para um rótulo

  • Descartar alterações na área de trabalho

  • Recuperar arquivos excluídos

  • Restaure a modificação de um determinado commit adicionando um novo commit

  • Retorne ao status de uma determinada confirmação e exclua a seguinte confirmação

  • Modifique a descrição do último commit

  • Ver histórico de consolidação

  • Exibir registros de comando git atualizados localmente do HEAD

  • Modificar nome do autor

  • Modifique o URL do armazém remoto

  • Aumentar armazém remoto

  • Listar todos os armazéns remotos

  • Ver alterações dentro de duas semanas

  • Coloque uma confirmação do ramo A no ramo B

  • Alias ​​o comando git

  • Armazene as alterações atuais, mas nenhuma confirmação

  • Salve o estado atual, incluindo arquivos não rastreados

  • Mostrar todos os stashes

  • Voltar para um estado de esconderijo

  • Volte ao estado do último stash e exclua esse stash

  • Excluir todos os stash

  • Retire a modificação de um arquivo do stash

  • Mostrar todos os arquivos rastreados

  • Mostrar todos os arquivos não rastreados

  • Mostrar todos os arquivos ignorados

  • Excluir à força arquivos não rastreados

  • Excluir à força diretórios não rastreados

  • Mostrar histórico de consolidação simplificado

  • Veja quem escreveu um pedaço de código

  • Exportar uma certa ramificação para um arquivo

  • Importar ramificação do pacote

  • Esconder automaticamente antes de executar o rebase

  • No armazém remoto, de acordo com o ID, puxe um determinado estado para a filial local

  • Mostrar detalhes das alterações em uma linha

  • Limpar .gitignorearquivo gravado no arquivo

  • Mostrar todos os aliases e configurações

  • Mostrar arquivos ignorados

  • O histórico de confirmação mostra que o Branch1 o possui, mas o Branch2 não tem confirmação

  • Mostrar assinatura GPG no log de confirmação

  • Excluir configurações globais

  • Crie e alterne para uma nova ramificação, e essa ramificação não possui nenhuma confirmação

  • Mostrar o conteúdo de um arquivo em qualquer ramificação

  • clonar a ramificação única especificada

  • clonar mais recente confirmação

  • Ignorar alterações em um arquivo

  • Ignorar alterações nas permissões de arquivo

  • Listar todos os ramos Git na ordem do último commit

  • Encontre conteúdo relevante no log de confirmação

  • Coloque o arquivo especificado na área de armazenamento temporário na área de trabalho

  • Forçar pressão

  • git configure o proxy http e socks

  • git configure proxy ssh

  • Uma imagem detalhada

  • Enviar mensagens de confirmação normalmente

  • Entre em contato comigo

Uso de comando

Exibir informações de ajuda

git help -g

A saída do comando como abaixo:

The common Git guides are:
   attributes          Defining attributes per path
   cli                 Git command-line interface and conventions
   core-tutorial       A Git core tutorial for developers
   cvs-migration       Git for CVS users
   diffcore            Tweaking diff output
   everyday            A useful minimum set of commands for Everyday Git
   glossary            A Git Glossary
   hooks               Hooks used by Git
   ignore              Specifies intentionally untracked files to ignore
   modules             Defining submodule properties
   namespaces          Git namespaces
   repository-layout    Git Repository Layout
   revisions           Specifying revisions and ranges for Git
   tutorial            A tutorial introduction to Git
   tutorial-2          A tutorial introduction to Git: part two
   workflows           An overview of recommended workflows with Git


'git help -a' and 'git help -g' list available subcommands and some concept guides. See 'git help <command>' or 'git help <concept>' to read about a specific subcommand or concept.

Voltar ao armazém remoto

Descarte todas as alterações locais e retorne ao estado do armazém remoto.

git fetch --all && git reset --hard origin/master

Redefinir a primeira confirmação

Ou seja, coloque todas as alterações de volta na área de trabalho e limpe todas as confirmações, para que você possa reenviar a primeira confirmação.

git update-ref -d HEAD

Mostrar a diferença entre o espaço de trabalho e a área de preparação

Área de trabalho de saída diferente (diferente) e área temporária.

git diff

Você também pode exibir alterações de arquivo entre duas confirmações no armazém local:

git diff <commit-id> <commit-id>

Mostrar a diferença entre a área de preparação e a versão mais recente

A diferença entre a área de preparação da saída e a versão mais recente local (confirmação) é diferente.

git diff --cached

Mostrar a diferença entre a área de preparação, o espaço de trabalho e a versão mais recente

Área de trabalho de saída diferenciada (diferente), área de preparação e a versão local mais recente (confirmação).

git diff HEAD

Alterne rapidamente para a ramificação anterior

git checkout -

Remover ramificações que foram mescladas no mestre

git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d

Exibir o status da filial local associada ao armazém remoto

git branch -vv

Filial remota associada

Após a associação, o git branch -vv pode exibir o nome da filial remota associada e o Push diretamente para o armazém remoto: git push, não é necessário especificar o armazém remoto.

git branch -u origin/mybranch

Ou adicione o parâmetro -u ao pressionar

git push origin/mybranch -u

Listar todas as ramificações remotas

O parâmetro -r é equivalente a: remote

git branch -r

Citar ramificações locais e remotas

O parâmetro -a é equivalente a: all

git branch -a

Crie e mude para a filial local

git checkout -b <branch-name>

Crie da filial remota e mude para a filial local

git checkout -b <branch-name> origin/<branch-name>

Remover filial local

git branch -d <local-branchname>

Remover ramificação remota

git push origin --delete <remote-branchname>

Ou

git push origin :<remote-branchname>

Renomear filial local

git branch -m <new-branch-name>

Ver etiquetas

git tag

Exibir a tag mais recente da ramificação atual

git describe --tags --abbrev=0

Ver detalhes da etiqueta

git tag -ln

Crie tags localmente

git tag <version-number>

A tag padrão é a confirmação mais recente.Se você precisar especificar a tag de confirmação:

$ git tag -a <version-number> -m "v1.0 发布 (描述)" <commit-id>

Enviar tag para o armazém remoto

Antes de tudo, precisamos garantir que o rótulo seja construído localmente antes de podermos enviar o rótulo para o armazém remoto:

git push origin <local-version-number>

Envie todas as tags de uma vez e sincronize com o armazém remoto:

git push origin --tags

Remover etiqueta local

git tag -d <tag-name>

Remover etiquetas remotas

Para remover um rótulo remoto, é necessário remover primeiro o rótulo local e, em seguida, execute o seguinte comando:

git push origin :refs/tags/<tag-name>

Voltar para um rótulo

Geralmente, as tags são adicionadas antes de ficar on-line, a fim de evitar problemas depois de ficar on-line e reverter rapidamente para a versão anterior. O comando a seguir retorna ao estado sob um determinado rótulo:

git checkout -b branch_name tag_name

Descartar alterações na área de trabalho

git checkout <file-name>

Descartar todas as alterações:

git checkout .

Recuperar arquivos removidos

git rev-list -n 1 HEAD -- <file_path> # 得到 deleting_commit
git checkout <deleting_commit>^ -- <file_path> # 回到移除文件 deleting_commit 之前的状态

Reverta as alterações de um determinado commit adicionando um novo commit

git revert <commit-id>

Retorne ao status de uma determinada confirmação e remova a seguinte confirmação

Diferença da reversão: O comando reset apagará todas as confirmações após um determinado ID de confirmação

git reset <commit-id> # 默认就是-mixed 参数。
git reset –mixed HEAD^ # 回退至上个版本,它将重置 HEAD 到另外一个 commit, 并且重置暂存区以便和 HEAD 相匹配,但是也到此为止。工作区不会被更改。
git reset –soft HEAD~3 # 回退至三个版本之前,只回退了 commit 的信息,暂存区和工作区与回退之前保持一致。如果还要提交,直接 commit 即可
git reset –hard <commit-id> # 彻底回退到指定 commit-id 的状态,暂存区和工作区也会变为指定 commit-id 版本的内容

Alterar a descrição do último commit

Se houver mudanças na área de preparação, as alterações na área de preparação também serão enviadas para a confirmação anterior

git commit --amend

Ver histórico de consolidação

git log

Ver colaboradores de um pedaço de código

culpa significa "culpa", você sabe.

git blame <file-name>

Exibir registros de comando git atualizados localmente do HEAD

Os comandos git, tais como commint, alterar, selecionar, redefinir, reverter etc., que são atualizados todas as vezes, serão registrados (ramificações ilimitadas), assim como o histórico do shell. Dessa forma, você pode redefinir para qualquer operação após atualizar o HEAD, não apenas para retornar ao estado após uma confirmação na ramificação atual.

git reflog

Alterar nome do autor

git commit --amend --author='Author Name <[email protected]>'

Alterar a URL do armazém remoto

git remote set-url origin <URL>

Aumentar armazém remoto

git remote add origin <remote-url>

Listar todos os armazéns remotos

git remote

Ver alterações dentro de duas semanas

git whatchanged --since='2 weeks ago'

Coloque uma confirmação do ramo A no ramo B

Este processo requer o comando cherry-pick, consulte [2]

git checkout <branch-name> && git cherry-pick <commit-id>

Alias ​​o comando git

Comandos simplificados

git config --global alias.<handle> <command>
比如:git status 改成 git st,这样可以简化命令
git config --global alias.st status

Salve as alterações atuais sem confirmar

Para detalhes, consulte o tutorial git do professor Liao Xuefeng

git stash

Armazene o status atual, incluindo arquivos não rastreados

arquivos não rastreados: arquivos recém-criados

git stash -u

Mostrar todos os stashes

git stash list

Voltar para um estado de esconderijo

git stash apply <stash@{n}>

Volte ao estado do último esconderijo e remova o esconderijo

git stash pop

Remova todo o estoque

git stash clear

Fazer uma alteração de arquivo do stash

git checkout <stash@{n}> -- <file-path>

Mostrar todos os arquivos rastreados

git ls-files -t

Mostrar todos os arquivos não rastreados

git ls-files --others

Mostrar todos os arquivos ignorados

git ls-files --others -i --exclude-standard

Forçar a remoção de arquivos não rastreados

Pode ser usado para remover arquivos recém-criados. Se nenhum nome de arquivo for especificado, todos os arquivos não rastreados em trabalho serão limpos. O comando clean, preste atenção a dois pontos:

1. Após a limpeza, os arquivos removidos não podem ser recuperados

2. Não afeta as alterações nos arquivos rastreados, apenas remova os arquivos não rastreados

git clean <file-name> -f

Forçar a remoção de diretórios não rastreados

Pode ser usado para remover diretórios recém-criados.Nota: Este comando também pode ser usado para remover arquivos não rastreados. Veja o artigo anterior para detalhes.

git clean <directory-name> -df

Mostrar histórico de consolidação simplificado

git log --pretty=oneline --graph --decorate --all

Exportar uma ramificação para um arquivo

git bundle create <file> <branch-name>

Importar ramificação do pacote

Crie uma nova ramificação, o conteúdo da ramificação é o conteúdo exportado pelo comando git bundle create acima

git clone repo.bundle <repo-dir> -b <branch-name>

Esconder automaticamente antes de executar o rebase

git rebase --autostash

No armazém remoto, de acordo com o ID, puxe um determinado estado para a filial local

git fetch origin pull/<id>/head:<branch-name>

Mostrar alterações em uma linha em detalhes

git diff --word-diff

Limpe os arquivos gravados no arquivo gitignore

git clean -X -f

Mostrar todos os aliases e configurações

Nota: a configuração é dividida em: diretório atual (local) e configuração global (golbal), o padrão é a configuração atual do diretório

git config --local --list (当前目录)
git config --global --list (全局)

Mostrar arquivos ignorados

git status --ignored

O histórico de confirmação mostra que o Branch1 o possui, mas o Branch2 não tem confirmação

git log Branch1 ^Branch2

Mostrar assinatura GPG no log de confirmação

git log --show-signature

Remover configurações globais

git config --global --unset <entry-name>

Crie e alterne para uma nova ramificação, e essa ramificação não possui nenhuma confirmação

Equivale a salvar alterações, mas reescrever o histórico de confirmação

git checkout --orphan <branch-name>

Exibir o conteúdo de um arquivo em qualquer ramificação

git show <branch-name>:<file-name>

clonar a ramificação única especificada

git clone -b <branch-name> --single-branch https://github.com/user/repo.git

Ignorar alterações em um arquivo

Desative as alterações no arquivo especificado da faixa, ou seja, o Git não gravará alterações nesse arquivo

git update-index --assume-unchanged path/to/file

Recuperar alterações para rastrear arquivos especificados

git update-index --no-assume-unchanged path/to/file

Ignorar alterações nas permissões de arquivo

Não trate mais as alterações nas permissões de arquivo como alterações

git config core.fileMode false

Listar todos os ramos Git na ordem do último commit

O mais recente está no topo

git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/

Encontre conteúdo relevante no log de confirmação

Localizar por grep, texto fornecido: o campo a ser encontrado

git log --all --grep='<given-text>'

Coloque o arquivo especificado na área de armazenamento temporário na área de trabalho

Nenhum parâmetro adicionado, o padrão é -mixed

git reset <file-name>

Force Push

git push -f <remote-name> <branch-name>

 

Publicado 45 artigos originais · ganhou elogios 2 · Vistas 5228

Acho que você gosta

Origin blog.csdn.net/xixiaoyaoww/article/details/105037023
Recomendado
Clasificación