uso git em

Porque muitos têm usado o trabalho recente com base em  Git  desenvolvimento, que exige a compreensão em profundidade de  Git  funciona, anterior Git Basics falhou para atender a demanda, e, portanto, escreveu este  Git  artigo avançado é a introdução de algumas das pessoas geralmente encontram, mas raramente conhecer o  Git  conhecimento e  Git  alguns trabalhos internos. Normalmente, usamos  Git  um monte de ação só pode se lembrar de um termo, ou um comando que, não sei  Git  porque, para escrever este artigo é para deixar todo mundo para  Git  aplicações ainda mais acessível.




Depois de ler este artigo você vai aprender o seguinte Git:

 ✦ Por Git

 Visão geral Uso ✦ Git Básico

 Diferença ✦ check-out, merge, rebase, reset, reverter a

   fluxo GIT

 ganchos ✦ Git

 ✦ Git submódulo

 ✦ Git funcionamento interno



Por Git


controle de versão centralizado

Por exemplo, nós usamos SVN, controle de versão que o maior inconveniente é o ponto único de falha de um servidor central, uma vez que o servidor central vai para baixo, todos os desenvolvedores são incapazes de atualizar o código para funcionar corretamente, se o centro do disco está danificado e não reside de dados de backup, versão dos dados serão perdidos para sempre.


sistemas de controle de versão distribuído

O cliente não apenas extrair um instantâneo da versão mais recente do arquivo, mas irá completar todo o repositório de código espelhamento puxado para baixo, a maneira como as informações são armazenadas em uma lista svn alteração de arquivo, tais sistemas irá poupar-lhes a informação como um conjunto de documentos básicos e todos os arquivos ao longo do tempo acumulado progressivamente diferença.


Visão geral Uso Git Básico


submissão Git e processo de sincronização


mudanças Git undo


Git comandos mais usados


caixa, inversa, de reset, alteração de base, de intercalação


1. check-out

Aqui vamos discutir o funcionamento do git checkout ramo detecção, quando executamos git checkout <branchname> operação, na verdade, o princípio é o ponteiro aponta cabeça para ser verificados para fora neste ramo.


Bifurcação situação:

Quando desenvolvemos simultaneamente em vários ramos, ramos diferentes têm diferentes cometer registro, situação assim não haverá bifurcada.

Neste ponto temos de co-desenvolver vários ramos integradas ao ramo principal, que é nas operações git merge. Como mostrado, o ramo a montante depois que tinha diferenças com nossa filial, desta vez, execute o comando é realmente mesclar o conteúdo do C, D apresentou uma fusão, em seguida, tal como apresentado.


2.   Go merge


3.   git rebase <branchname>

operação de mesclagem é um C, D são combinados em um  commit , se não quer fazer, pode ser operação de rebase usado. Como o nome sugere, é rebase para mudar a base do seu (entendimento pessoal), rebase é atualmente dividida serão enviados diretamente para forçosamente movido para a parte de trás de um outro ramo.


4.   git reset

CABEÇA operação de reposição de ponteiro é alterada de C para D, que é apresentada depois do início da linha a partir da parte traseira B, C torna-se um estado livre.


5.  revert git 

operação relativamente reset, revert relativamente mais seguro, uma vez que não descarta o tom C, mas uma cópia de B após C como B'.



fluxo git 


Git fluxo de trabalho, principalmente para permitir que desenvolvedores para desenvolver um padrão unificado na colaborativo, processo unificado, reduzir a carga de trabalho extra.

Simplesmente significa que nós certas coisas no processo de desenvolvimento para usar um ramo específico, se você pensar sobre o desenvolvimento, teste, altere o bug, solte tudo feito no mesmo ramo, desta vez para o gerente de projeto escolher o que ele quer enviar a fusão é como problemático coisa em muitos ramos. fluxo git é resolver tais problemas.

fluxo Git haverá dois ramos de longa duração:

    mestre: para registro oficial trilha liberação

    desenvolver de: Integração Branch, desenvolver novas funcionalidades para o controle de gravação


Há também algum outro ramo temporária:

    Metragens (ramos novo recurso): derivadas do desenvolvimento ramo ramo, quando você precisa adicionar uma nova funções de tempo disponíveis neste ramo, após a conclusão dos novos recursos, funcionalidade e desenvolver a fusão de ir.

    Release (ramo release): usado para desenvolver o recurso ramos fundir.

    Mantaince (ramo hotfix): bug linha correção ramo, o ramo diretamente derivado do fora radiação, fusão e desenvolver após a conclusão do branch master para cima.

    Release (ramo release): usado para desenvolver o recurso ramos fundir.

    Mantaince (ramo hotfix): bug linha correção ramo, derivado diretamente do maser ramo,

Após a conclusão da fusão e para dominar desenvolver diferente ramo.

ramos azuis no mapa é mestre, é roxo desenvolver, o vermelho é a correcção, laranja é uma característica, o verde é a liberação


Git fluxo de etapas de desenvolvimento


1. Crie desenvolver ramo

     git branch desenvolver

     git push origin -u desenvolver


2. Caixa Iniciar desenvolver ramo

    git checkout -b desenvolver origem / desenvolver


3. Criar um novo ramo de recurso baseado em desenvolver

    git checkout recurso -b / my-recurso desenvolver


4. ramo de mesclagem

    origem git pull desenvolver

    git checkout desenvolver

    recurso de mala git / my-recurso

    git push

    git branchn recurso -d / my-recurso


A versão online é liberado

    a. Criar ramo realse pronto para liberar a partir do ramo desenvolver

            git checkout liberação-1.0.0 -b desenvolver

            git push

    b. Coloque desenvolver ramo em realse

    c. para jogar tag. realse é um mestre evoluir para um dos ramos do tampão, sempre de origem necessita de ser incorporado na etiqueta o mestre

    git tag -a 1.0.0-release -m "primeira versão" master

    --tags git push


6. correções de bugs online

No código apresentado ao mestre na linha após o início do projeto, desta vez como enviar código de linha correção de bug?

    a. Criar um ramo hotfix git checkout -b issue- # 001 mestre

    b. correção de bug

    c. para completar a reparação incorporada no mestre

    d. Marcação

    e. desenvolver para mesclar

 

git ganchos (gancho)


ganchos Git são alguns scripts podem ser a qualquer momento no armazém automaticamente executar esses scripts são interceptores semelhantes que podem executar alguns eventos específicos antes e depois das operações de prazo git.

Ao inicializar um armazém, irá gerar automaticamente .example sob .git / ganchos arquivos sufixo diretório, que é ganchos, ganchos git para prevenir estes execução padrão, mais o sufixo .example para executar esses ganchos simplesmente .example sufixo removido.


Ganchos em ganchos e o servidor local.

ganchos Locais:

        pré-compromisso

        preparar-commit-msg

        comprometer-msg

        post-commit

Estes são no processo de alguns cometem ganchos.

        pós-checkout

        pré-rebase

Estes dois ganchos são usados ​​para fazer alguma operação extra ou algumas verificações de segurança.

pré ganchos prefixo para a adição de uma operação adicional, ganchos pós prefixo servir para notificação.

Apresentação do caso:

    A montagem de um gancho preparar-commit-msg.

    Primeiro, nós primeiro .git / sufixo preparar-commit-msg.example sob o diretório ganchos removido.


     Então nós usamos para abrir o arquivo para edição, que é um script shell, também podemos usar python ou Ruby tal linguagem para ganchos de escrita.


Salvar e sair, os ganchos são acionados após a adição de msg quando a operação de confirmação.

Comprometemo-nos a realizar a operação.


Pode ser visto nos ganchos do programa foi executado .

Mais destes ganchos são ganchos locais, e alguns ganchos são adicionados ao repositório remoto, que é um ganchos do lado do servidor.

pré-receber: git impulso desencadeia operação execução

actualização: Após cada accionador de emissão

pós receber: empurrar o gatilho depois do sucesso de


git submódulo


No trabalho que, muitas vezes encontramos tal situação um: queremos introduzir excepções a um projeto no projeto atual, pode haver uma biblioteca, mas se adicionado diretamente a este projecto, temos de assegurar que cada armazém contidas neste biblioteca, ou implantar muito difícil, cada vez que neste projeto ou casos de fusão da biblioteca vai fazer uma ação personalizada a montante incrivelmente difícil. Se pudermos usar esses clones da biblioteca para os seus próprios projectos, e mantenha esta biblioteca para enviar independente seria perfeito. git sub-módulo é para resolver este problema.

Em seguida, vamos mostrar-lhe como ser dividida em sub-projectos em mais de um projeto para o desenvolvimento.

Em primeiro lugar, queremos acrescentar sub-módulo pró-serviço em nosso projeto principal no pro-main

endereço armazém pró-main: [email protected]: CodeNerverEnd / pró-main.git

pró-service endereço do armazém: [email protected]: CodeNerverEnd / pró-service.git

Primeiro, nosso Senhor clonagem projeto para baixo,


Em seguida, adicionando submodule no artigo principal,

Use o suplemento de comando git submódulo [email protected]: CodeNerverEnd / pró-service.git


Podemos ver o seguinte diretório no armazém


mais um arquivo .gitmodules, abra o arquivo para ver o caminho para salvar o sub-módulo, se você não quer sub-módulo no caminho principal repositório do projeto, um caminho onde você pode alterar o caminho desejado.


Nós adicionamos um sub-módulo dos principais projectos apresentados para o repositório remoto, todos os desenvolvedores podem usar esta biblioteca, aqui vamos dar uma olhada em outros desenvolvedores como usá-lo.

Primeiro, outros desenvolvedores podem clonar o projeto com sub-módulo, podemos usar o seguinte comando:

git clone --recursive [email protected]: CodeNerverEnd / pró-main.git

Se clonar quando não há aumento --recursive, padrão não é o conteúdo do sub-módulo de clone para baixo, você só pode ver a pasta de arquivo em um sub-módulo do projeto, mas o que está dentro está vazio.


Agora, se os desenvolvedores precisam para atualização sub-módulo, execute o seguinte comando:

--remote atualização submodule git


Neste momento, se o desenvolvedor deseja codificar o programa principal, ao mesmo tempo, no sub-módulo de código, execute os seguintes passos

1. Vá para um diretório submodule detecção ramo

    estável git checkout

2.merge sub-módulo

    atualização submodule git --remote --merge

3. Se outros fizeram mudanças no upstream, precisamos incorporar

    git submódulo --remote --rebase

4. Queremos localmente mudando para melhor após o lançamento mudanças sub-módulo

    git push --recurse-submódulos = ondemand


    Para Git está em causa, estes não são suficientes para descrevê-lo está longe de ser abrangente. Eu vou no próximo espaço, continuam a apresentar-lhe  Git avançado.


发布了55 篇原创文章 · 获赞 31 · 访问量 8万+

Acho que você gosta

Origin blog.csdn.net/zengfanwei1990/article/details/80611566
Recomendado
Clasificación