apostila de git

Antes de tudo, o que é controle de versão? Antes de começar a utilizar o git para versionar seus trabalhos (códigos, imagens, layouts...) você deve entender o que é controle de versão. Após entender esse conceito você estará apto a usar todo o poder que o git proporciona. O controle de versão(CV) é um sistema usado para ter controle sobre todas(isso se for usada corretamente) as mudanças feitas em um determinado arquivo. O CV permite você reverter sua aplicação que se encontra em um estado que está apresentando um bug, para um estado anterior onde o bug não havia se manifestado. Permite você também descobrir quem introduziu um problema, quando foi introduzido e onde foi introduzido. Se estiver usando um repositório remoto, você não correrá o risco de perder seu arquivos e melhor ainda, você também não perderá o controle sobre as mudanças feitas localmente. O controle de versão ajudará na organização, facilitará na hora de trabalhar em equipe, sem aquela história de dois desenvolvedores alterarem o mesmo arquivo ao mesmo tempo por estarem desenvolvendo um mesmo projeto. Segurança, vocês desenvolverão todos os projetos sem medo de perder algum código ou acabar errando alguma atualização sem ter como voltar. Você verá que existem muitas outras razões para usar um sistema para controle de versão. Muitas vezes o controle de versão é confundido com backup, lembre-se que no controle de versão você terá acesso ao arquivo atual e todas alterações ligadas ao arquivo e, no backup você terá acesso apenas a última versão do arquivo. Lembre-se também que todas essas features que o controle de versão oferece só existirão se forem usadas corretamente. 1.1 O Git O Git é a ferramenta que você utilizará para fazer todo o controle de versão. O Git surgiu quando Linus Torvalds, o criador do Linux, começou a enfrentar problemas quando desenvolvia o kernel do linux (projeto open source, ou seja, o Linus trabalhava com apoio de uma comunidade para seu desenvolvimento) com as ferramentas de versionamento da época havendo a necessidade da criação de uma nova ferramenta. A proposta para o Git era apresentar algumas features que o sistema antigo não oferecia:Capítulo 1. Antes de tudo, o que é controle de versão? 6 1. Velocidade; 2. Projeto simples; 3. Forte suporte para desenvolvimento não-linear (milhares de ramos paralelos); 4. Completamente distribuído; 5. Capaz de lidar com projetos grandes como o núcleo o Linux com eficiência (velocidade e tamanho dos dados). Desde 2005 quando o Git foi criado ele passou por um longo período de evolução e ainda continua. Hoje ele está em uma versão estável oferecendo todas as features citadas acima. 1.2 O GitLab O GitLab nada mais é que um gerenciador de repositório git remoto. O Gitlab apresenta algumas vantagens em relação ao Github: 1. Numero de Repositórios ilimitados; 2. Espaço ilimitado (futuramente será cobrado por projetos maiores que 5Gb), atualmente o GitHub limita em 1GB por projeto; 3. Integração continua integrada (GitLab CI); 4. Importação projetos do GitHub, BitBucket e Gitorious; 5. Armazenamento de repositórios em servidores privados. A integração continua integrada funciona apenas para sistemas operacionais baseados no Linux. 1.3 O Git-flow O git-flow é uma extensão do git para auxiliar o controle de versão usando comandos pré-definidos como boas práticas nesse quesito. Na minha opinião o git-flow é muito mais do que uma simples extensão, é uma filosofia, é uma nova maneira de pensar sobre o controle de versão. Você pode aplicar a metodologia do git-flow sem a necessidade de ter ele instalado, usando apenas comandos nativos do git.7 Capítulo 2 A estratégia de ramificação A estratégia de ramificação assemelha-se muito a estrutura de uma árvore, por isso alguns comandos do git usam termos como branch(que significa ramo ou galho), ferramentas como o SourceTree que serve para visualizar toda a ramificação do projeto em forma de grafos (a título de informação, tree significa árvore). A estratégia que está representada na figura 1, é uma estratégia que grandes e pequenas empresas usam a bastante tempo. Explicarei como ela é construída e como iremos trabalhar em cima dessa estratégia usando o git, e como usar a poderosa extensão do git, o git-flow, para facilitar ainda mais nosso trabalho. 2.1 Os branches Na estratégia que iremos adotar vamos trabalhar com seis tipos de ramos, são eles, dois ramos principais e quatro tipos de ramos de apoio. Os ramos principais são os ramos master e o develop. Os ramos de apoio serão os branches feature, release, hotfix e buxfix. A seguir irei descrever cada um desses ramos. 2.1.1 O branch master O branch master é o ramo que irá abrigar os códigos em suas versões mais estáveis, ele será o branch de produção. É o ramo que dará origem a aplicação final. Em algum momento do desenvolvimento todos os códigos produzidos em outros ramos farão um merge(ato de mesclar os ramos, colocar os arquivos de um branch em outro) com o branch master, de forma direta ou indireta. 2.1.2 O branch develop Este ramo será responsável por conter os códigos em nível de desenvolvimento para o próximo deploy(significa implementar, mas pode mudar de significado de acordo com o contexto). Lembre-se que os códigos não serão criados nesse branch, ele é responsável apenas em abrigar os códigos que estão em desenvolvimento. Após os códigos serem devidamente testados o branch develop fará um merge com o branch master, isso se um bug for encontrado no processo de testes, Se o código apresentar bug, será criado outro branch a partir do branch develop para a correção dos bugs e posteriormente mesclado com o branch master. Os branches master e develop possuem “vida infinita”, ou seja, eles sempre estarão presentes durante o desenvolvimento, e sempre serão criados quando o repositório inicializado(isso se você estiver usando o git-flow, por padrão o git cria apenas o master). Os branches a seguir terão vida curta, eles serão criados durante a evolução do projeto e, após suas utilizações eles serão finalizados e excluídos, esse processo firará mais claro na prática. 2.1.3 O branch feature O branch feature será utilizado sempre que uma nova funcionalidade precisar ser criada. Ele sempre será criado a partir do branch develop e finalizado no branch develop independente em qual ramo você esteja(isso se você estiver utilizando o git-flow). Capítulo 2. A estratégia de ramificação 10 Ao contrário do ramo master e develop, o ramo feature pode ser criado múltiplas vezes, uma para cada nova funcionalidade. Esse branch possui como prefixo feature/*, onde o asterisco(*) será substituido pelo nome do “sub-ramo” digamos assim, por exemplo, feature/cadastrodeclientes, feature/teladelogin. São duas as principais maneiras de mesclar branches, figura 4. A primeira é fazendo a mesclagem criando um novo commit com as alterações dentro do ramo develop sem adicionar os commits criados durante o desenvolvimento do ramo feature e, a outra é adicionando os commits criados no ramo feature dentro do ramo develop e mais um novo commit indicando a mesclagem, o git-flow usa como padrão esse último. Novamente, esse processo ficará mais claro durante a prática. 2.1.4 O branch release Esse branch é o ramo intermediário entre o develop e o master. O objetivo desse branch é a criação de tags(são os números que indicam a versão da aplicação, 1.0.0 por exemplo). Ele inicia no branch develop e termina no branch master e no develop. 2. A estratégia de ramificação 11 Você deve está se perguntando porquê um branch que inicia-se no develop tem que terminar no develop. Isso acontece porquê o branch develop tem que ter a mesma tag do branch master. O prefixo usado pelo branch release é release/* onde o asterisco(*) deve ser substituido pela tag da realese, por exemplo, release/0.1.0. Mais na frente iremos aprender um conjunto de regras para a criação dessas tags, conhecido como versionamento semântico. Sempre quando falo que um branch “termina” ou “finaliza”, me refiro a mesclagem de um branch em outro usado por padrão pelo git-flow. 2.1.5 Os branches hotfixes e bugfixes O branch hotfix e bugfix tem o objetivo de correção de erros. A diferença entre eles é onde cada um é inicializado. Se o bug for encontrado no ramo de produção(branch master), um branch hotfix, deve ser criado para tratar o erro a partir do ramo master. Após a correção do erro uma nova tag será criada automaticamente e, o branch hotfix será mesclado com o ramo master e também ao ramo develop para que esse não apresente o erro em futuras versões. Análogo ao branch release o prefixo do branch hotfix é hotfix/*, onde o asterisco(*) deve ser substituido pela nova tag, por exemplo, hotfix/0.1.1. O branch bugfix deve ser criado quando um bug é encontrado durante o desenvolvimento. Ele é iniciado e finalizado no branch develop. Seu prefixo é semelhante ao do branch feature, por exemplo, bugfix/erro-cadastramento.13 Capítulo 3 Primeiros passos com o Git Nessa etapa vamos supor que todos estejam com o Git e o Git-flow instalados, caso haja a necessidade de um guia para as instalações, esse será adicionado como apêncide no final livro em futuras versões. 3.1 Configuração inicial O primeiro passo é abrir seu console preferido, se estiverem no Linux ou macOS, abram o terminal por exemplo. Se estiverem utilizando o Windows vocês podem usar o Git Bash que é instalado com o Git. Ainda para usuários Windows, uma dica que dou é usar o Cmder, é um console free e muito mais agradável de se trabalhar e não prescisa ser instalado, apenas baixado, Sugiro também não utilizar o CMD, nem o PowerShell. Uma alternativa para o CMD, 3. Primeiros passos com o Git 14 Com o seu console aberto digite git e aperte enter, isso irá verificar se o git foi instalado corretamente. Se ele tiver sido instalado corretamente irá aparecer algo semelhante a figura 7. Com o git devidamente instalado vamos começar a configuração. Para isso insira os seguintes comandos, o primeiro será para o git identificar seu nome, e o segundo seu email(figura 8): git config --global user.name "nomeseurepositoriocriado" git config --global user.email "seuemailusadonacriacao" Caso queira visualizar suas configuração globais digite o comando: git config --global --list O próximo comando serve para facilitar o entendimento visual: git config --global color.ui true Capítulo 4 Os 3 estágios Nesse capítulo ensinarei a criar seu primeiro repositório git e, quais são os três principais estágios do processo para o versionamento usado pelo git. 4.1 Criando um repositório O primeiro passo é acessar a pasta pelo terminal que você quer iniciar o repositório git. Para exemplificar eu criei uma pasta chamada gitLegal e usei os seguintes comandos Criando a pasta gitLegal: mkdir gitLegal Acessando a pasta criada: cd gitLegal Verificando o conteudo da pasta: ls Iniciando o repositório git: git init Verificando novamente a pasta: ls Verificando a existência de arquivos ocultos: ls -a O processo de verificação da pasta foi feito apenas para mostrar que quando o repositório é inicializado o git cria uma pasta oculta. Nessa pasta oculta estão todos os arquivos necessário para o git gerenciar seu repositório. Na prática você usará apenas o comando git init.Capítulo 4. Os 3 estágios 16 4.2 O primeiro estágio O primeiro estágio é chamado de "untracked files". Assim que você faz alguma aleteração no repositório, criando uma pasta ou arquivo, ou alterando um arquivo existente, isso faz com que o elemento que você alterou entre no primeiro estágio. Para verificar em que estágio seus elementos estão basta digitar o comando git status. Se for dado um git status na pasta gitLegal não irá aparecer nada, pois, o repositório não teve nenhuma alteração. Para demonstrar o primeiro estágio irei criar um arquivo em branco chamado helloWorld e em seguida executarei o comando para verificar o estágio O comando touch foi usado para a criação do arquivo helloWorld. 4.3 O segundo estágio O segundo estágio é chamado de “Changes to be committed”. Nessa etapa você irá adicionar os elementos do primeiro estágio para serem “commitados” no terceiro estágio. Irei criar outro arquivo em branco chamado helloWorld2, apenas para ficar mais claro a importância dessa etapa Agora vamos entender o que foi feito. Com a adição do arquivo helloWorld2, o primeiro estágio agora tem dois elementos. Vamos supor que você queira adicionar apenas o primeiro helloWorld world para o último estágio. Para fazer isso, foi necessário apenas usar o comando git add helloWorld.Capítulo 4. Os 3 estágios 17 Como mostra a figura 11, no segundo estágio encontra-se apenas o primeiro helloWorld. Peço desculpas pela falta de criatividade ao nomear os elementos. Na maioria das vezes é necessário adicionar mais de uma arquivo ao terceiro estágio e não é viável adicionar um por um. Uma alternativa mais eficiente para essa situação é usar o comando “git add .”, ele irá adicionar todos os arquivos ao terceiro estágio. Preste atenção no ponto seguido do add, ele também faz parte do comando. 4.4 O terceiro estágio Nesse estágio é onde acontece o famoso commit. Para quem não sabe o que é um commit, ele nada mais é que um snapshot do estado de sua aplicação. Observe que após o commit o arquivo helloWorld não aparece mais quando é usado o comando git status. O arquivo só voltará a aparecer quando sofrer alguma alteração novamente. Existem duas principais maneiras de realizar um commit. Outra maneira de realizar um commit A primeira maneira deve ser usada quando você fez poucas alterações, e você consegue descrever todas essas mudanças em apenas uma linha usando o commando git commit -m "comentario". A segunda maneira deve ser usada quando for preciso descrever diversas alterações e apenas uma linha não basta. Uma dica é, evite usar acentuação dentro dos comentários, quando a acentuação é usada, algumas vezes quando você for visualizar os commits a acentuação poderá não ser reconhecida pelo console. Capítulo 5 Comandos mais usados no git Nesse capítulo irei apresentar os principais comandos usados pelo git e sempre estarei dando algumas dicas. 5.1 Visualizando o log Até agora vocês aprenderam a visualizar em que estágio está sua aplicação e a criar os commits. Agora ensinarei como visualizar os commits criados, o log. O comando básico para visualizar um log é o git log, mas ele também pode vim com outras opções, ensinarei os mais usados. Irei adicionar dentro do arquivo helloWorld o texto a seguir e, farei um novo commit. # Comando para imprimir na tela usando o python 2.x print("Hello world!") A figura 15 mostra a execução do commando git log –pretty=oneline. Esse comando exibe o log de forma reduzida, mostrando apenas o hash e os comentários em apenas uma linha. Outra opção para o mesmo comando é: • git log --pretty=oneline -2, o parâmetro -2, faz com que o comando exiba apenas os dois últimos commits(você pode alterar o parâmetro por qualquer outro valor). Abaixo seguem outros comandos para vocês experimentarem: • git log -p, exibe as alterações em cada arquivo de todos os commits; • git log -p -1, exibe as alterações do último commit; • git log --stat, exibe um resumo das alterações; • git log --stat -2, exibe um resumo das alterações dos últimos dois commits; • git log --since=10.minutes, exibe os commits dos últimos 10 minutos; • git log --since=2.hours, exibe os commits das últimas duas horas; • git log --since=1.days, exibe os commits no intervalo de tempo de um dia. Mais uma maneira de visualizar o log Na figura 16 as linhas que começam com um símbolo de mais(+) indica algo que foi adicionado. Se começar com o símbolo de menos(−) significa que algo foi retirado. Os números entre os símbolos de (@) indicam as posições das linhas onde houveram alterações. Quando vocês estiverem praticando isso ficará mais claro. 5.2 Criando branches Para criar um novo branch usamos o comando git checkout -b nomeBranch. Onde nomeBranch deve ser substituído pelo nome do branch que você quer criar. Vale resaltar que um branch é sempre criado baseado no branch atual, ou seja, se você estiver no branch master, o novo branch será um “clone” do branch master, Criando um branch Observe que quando você cria um branch o git já inicia dentro do novo branch. Irei listar abaixo os principais comandos relacionados a manipulação dos branches.Capítulo 5. Comandos mais usados no git 22 • git checkout nomeDoBranch, troca do branch atual para o branch nomeDoBranch; • git branch, exibe os branches criados localmente; • git branch -a, exibe os branches locais e os remotos(se você tiver trabalhano com branches remotos); • git remote -v, exibe os branches remotos; • git branch -d nomeDoBranch, deleta o branch nomeDoBranch; • git branch -D nomeDoBranch, força a exlusão do branch nomeDoBranch. 5.3 Mesclando branches Mesclar branches na maioria das vezes é uma tarefa fácil. Porém algumas vezes ocorrem conflitos, esse assunto será tratado em uma seção mais na frente. Por enquanto vamos se preocupar apenas em mesclar os branches. São duas as principais maneiras de fazer a mesclagem usando o git, você pode usar o merge ou o rebase. 5.3.1 Mesclando usando o merge O comando git merge funcionalidade1 é usado para realizar o merge. Ele irá mesclar o branch funcionalidade1 com o branch atual. A vantagem do merge é que ele preserva um histórico completo do seu projeto e, evita problemas quando está trabalhando em um ambiente cooperativo. 5.3.2 Mesclando usando o rebase O rebase preserva um histórico mais limpo e linear do seu projeto, porém ao trabalhar em grupo isso torna-se uma desvantagem, pois o rebase recria os commits. NaCapítulo 5. Comandos mais usados no git 23 quando o elemento E foi mesclado com o elemento D dando origem ao elemento R, o elemento E foi reescrito com outro commit, isto é, com outro hash. Então para alguém de fora que tenha o elemento E vai ter um commit diferente do seu, apesar de ser o mesmo elemento, tornando algo confuso. O rebase é aconselhado apenas quando você está trabalhando localmente, a não ser que você saiba o que está fazendo. Caso contrário, use sempre o merge. A documentação do git descreve diversos parâmetros que podem e devem ser usados, tanto para o rebase e para o merge. 5.4 Voltando versões Na minha opinião essa é a principal função do git, o processo de voltar versões. Existem diversas maneiras de fazer isso. Algumas são simples, mas não oferecem muita segurança para quem está iniciando nesse novo mundo do controle de versões. Outras envolvem mais etapas, porém você sentirá segurança realizando o processo, o fato de ter mais etapas não o torna mais difícil. A maioria dos comandos para voltar versões necessitam do hash do commit, você pode encontrar esse hash visualizando o log. Não é necessário o hash completo, apenas o começo. A seguir estão os principais comandos: • git reset d3fbdd741 --hard, desfaz todas as alterações anteriores do commit d3fbdd741; • git reset HEAD~2 --hard, desfaz todas as alterações dos dois últimos commits; • git ckeckout d3fbdd741, cria um branch temporário a partir do commit d3fbdd741. Veja que antes do reset existia o arquivo helloWorld2. No final do processo além de apagar o arquivo helloWorld2, as alterações feitas no arquivo helloWorld também foram desfeitas apesar de não mostrar na figura. Essas mudanças aconteceram porquê o arquivo heloWorld2 foi criado no commit eddcb203a como pode ser observado nos comentários do commit mostrado no log e, o conteudo do arquivo helloWorld ocorreu no commit 2bf2040e30. Por isso a importância de documentar corretamente os commits. Você pode combinar diversas técnicas para voltar versões usando o git. Quando forem ganhando mais segurança no que estão fazendo, o processo de voltar versões irá se tornar algo natural. Por exemplo, você pode criar um novo branch a partir do qual queira voltar uma versão, e depois mesclar esse novo branch com o branch principal. Depende apenas da sua engenhosidade, então façam diversos testes usando o git para adquirir experiência. 5.5 Algumas dicas Nas seções seguintes serão descritas algumas dicas.Capítulo 5. Comandos mais usados no git 25 5.5.1 Ignorando arquivos com o Git Geralmente existem arquivos que são criados automaticamente durante um projeto, por exemplo arquivos de log. Tais arquivos sempre ficam aparecendo no segundo estágio e isso não é algo interessante. Para impedir que alguns arquivos fiquem aparecendo ao visualizar o status, o git trabalha com o arquivo .gitignore. Esse arquivo é criado na raiz do projeto e, contém os nomes dos arquivos a serem ignorados, No exemplo os arquivos idea.log e test.aux não aparecerão mais no status. Todos os arquivos que terminarem com a extensão .lot ou apresentarem a extensão .tar, por exemplo ubuntuMobile.tar.xz, também serão ignorados. Observação: Se um arquivo já tiver sido adicionado para o segundo estágio em algum momento do desenvolvimento ele não será ignorado mesmo que o nome do arquivo esteja presente no .gitignore. Se esse for o caso, o comando git rm --cached nomeDoArquivo irá retirar o arquivo do segundo estágio, ou seja, do monitoramento e a partir disso ele passará a ser ignorado normalmente, caso queira retirar uma pasta completa use o comando git rm -r --cached nomeDaPasta experimente ambos como prática. 5.5.2 Alterando o proxy Dependendo do local onde esteja trabalhando será necessário uma configuração prévia do proxy para o git trabalhar com repositórios remotos. Os principais comandos para alteração do proxy são: • git config --global http.proxy "proxy:port"Capítulo 5. Comandos mais usados no git 26 • git config --global http.proxy "10.10.32.1:3128", altera o proxy para 10.10.32.1 na porta 3128 • git config --global http.proxy "", altera o proxy de manual para nenhum • git config --global --unset http.proxy, outra maneira para desativar o proxy27 Capítulo 6 Trabalhando com repositório remoto Na seção 1.2 falei brevemente sobre o gitLab. Nesse capítulo iremos estudar como o git se comporta trabalhando com repositórios remotos e falaremos sobre algumas características do gitLab. Antes de começar a usar os comandos das próximas seções será necessário a criação de uma conta no gitLab. 6.1 Criando seu primeiro repositório remoto Com o gitLab aberto siga as instruções da figura 22 para iniciar o processo de criação do seu primeiro repositório remoto. Em 1 você irá abrir as opções para a criação do novo repositório. Em 2 você irá selecionar New project, subsequentes. em 1 você irá adicionar o nome do repositório, não necessariamente sendo igual ao repositório local. Em 2 exibe as opções de visibilidade do projeto, não tendo relação alguma com as permissões do projeto. Em 3 aperte em Create project. O git pode se comunicar com os repositórios remotos atráves de dois tipos de protocolos, podendo ser o HTTPS e o SSH. Com o HTTPS não é necessário uma configuração prévia (salvas algumas exceções, como o proxy, dependendo do caso) para iniciar seu uso, enquanto o SSH só irá funcionar se você adicionar sua chave pública SSH nas configurações do gitLab. Em 1, você pode escolher o tipo de protocolo que você irá usar para conectar seu repositório local com o remoto. Em 2 você pode manipular seu repositório remotamente, criando novos arquivos, novos branches, informando problemas, entre outras opções. Lembre-se que as alterações feitas no repositório remoto não altera o conteúdo do repositório local, a não ser que você utlize comandos no git para isso, um git pull por exemplo (esse comando será descrito mais a frente). Se você observar o git está sempre dando dicas. Com o gitLab não é diferente. Um exemplo disso está representado na figura 25. O gitLab exibe diversas opções para você conectar seu repositório remoto com o repositório local. Na primeira etapa você irá realizar a configuração inicial do git, se você vem seguindo a apostila desde os primeiros capítulos, esse processo de configuração já foi realizado na seção 3.1. As etapas 2, 3 e 4, serão casos situacionais. A etapa 2 deve ser usada quando não existe um repositório local. A primeira linha da etapa 2 irá criar um repositório local, a partir do repositório remoto, na pasta atual em que seu console se encontra. A segunda linha serve para acessar a pasta do repositório. A terceira linha (opcional) criará um arquivo em branco com o nome README.md. A quarta linha como já devem saber, adiciona o arquivo README.md para o terceiro estágio. A quinta linha realizará o commit. E a última linha irá adicionar o arquivo README.md que foi criado localmente para o repositório remoto, ao branch master remoto. A etapa 3 deve ser utilizada quando você quer iniciar um repositório local e, em seguida fazer a conexão do repositório criado localmente com o repositório remoto. A primeira linha serve para acessar a pasta do repositório. A segunda é utlizada para criar o repositório local. A terceira linha será responsável em estabelecer a conexão entre o repositório local e o remoto. As linhas seguintes vocês já sabem suas devidas aplicações. A etapa 4 deve ser usada quando já existe um repositório criado localmente. Novamente, a segunda linha irá estabelecer a conexão entre os repositórios. A terceira linha adicionará todos os branches locais ao repositório remoto. A quarta linha (opcional) irá adicionar todas as tags criadas, caso existam. Lembre-se de verificar os tipos de protocolos que estão utilizando. Se tiver Trabalhando com repositório remoto dúvida em qual utilizar opte pelo protocolo HTTPS. Lembre-se também de configurar o proxy do seu local de trabalho caso seja necessário. a etapa 6.2 Realizando seu primeiro push O push (empurrar) é o ato de fazer o upload do seu projeto local para um repositório remoto. O push só funcionará corretamente se o seu repositório local estiver conectado com o repositório remoto. Essa conexão é realizada com um comando do tipo git remote add origin ENDEREÇO_DO_REPOSITÓRIO_REMOTO, esse endereço encontra-se na primeira etapa O origin não faz parte do comando, ele é o nome padrão dados aos repositórios remotos, mas nada impede de você utlizar outro nome, o aconselhado pela comunidade é manter como origin. Os principais comandos para realizar um push serão descritos a seguir: • git push -u origin master, sobe o branch master para o repositório remoto, usei como exemplo o master, mas você pode usar qualquer outro branch que tenha criado; • git push -u origin cadastroDeUsuarios, sobe o branch cadastro de usuários; • git push -u origin --tags, sobe as tags criadas (haverá uma seção apenas para tags). 6.3 Realizando seu primeiro clone Realizar um clone é necessário quando você precisa duplicar um repositório remoto para sua máquina. Por exemplo, quando você deleta seu repositório local, ou quando você encontra um projeto opensource e quer utilizá-lo, ou ainda mesmo quando alguém rouba sua máquina e seu projeto está nele(piada interna), mas nesse último caso só irá funcionar se você estiver usando o git corretamente. Para fazer um clone é necessário apenas duas condições, o endereço do repositório e obviamente permissão para fazer tal processo. Se o projeto for público você pode fazer o clone do repositório sem pedir a permissão ao dono. Abaixo segue os dois principais comandos para realizar um clone: • git clone ENDEREÇO_DO_REPOSITÓRIO_REMOTO • git clone https://gitlab.com/.../meu-primeiro-repositorio.git, irá fazer um clone e copiar seus arquivos para a pasta com o nome do repositório, nesse caso meu-primeiro-repositorio.git; • git clone https://gitlab.com/.../meu-primeiro-repositorio.git Test1, irá fazer o mesmo que o comando anterior, porém irá adicionar os arquivos para a pasta Test1. 6.4 Criando um branch a partir do repositório remoto Vocês já sabem criar um branch a partir de um branch local. Nessa seção vamos supor que você tenha criado um branch remotamente, como mostra na segunda etapa da figura 24. Por padrão o git cria um branch baseado no seu branch atual com o comando git checkout -b nomeDoBranch, o comando para criar um branch local a partir de um branch remoto é muito semelhante, ele está descrito abaixo: • git checkout -b test1 origin/test2, cria um branch localmente com o nome test1 a partir do branch remoto test2, o comando para visualizar o nome do branch remoto foi descrito na seção 5.2. 6.5 Realizando seu primeiro pull O pull faz o trabalho inverso do push, enquanto o push sobe seu arquivos do repositório local para o repositório remoto, o pull desce os arquivos que estão no repositório remoto para o repositório local. Os principais comandos para realizar um pull serão descritos a seguir:Capítulo 6. Trabalhando com repositório remoto 32 • git pull origin master, desce os arquivos do branch master localizado remotamente para o branch local atual; • git pull, esse comando é usado quando para atualizar a lista de branches, por exemplo, vamos supor que você tenha criado um branch remotamente, esse novo branch criado não será exibido na sua máquina local até você atualizar a lista (o comando para visualizar os branches está descrito na seção 5.2). 6.6 Trabalhando com tags As tags são os rótulos dados para as versões. Geralmente esses rótulos são numéricos, 1.2.1 por exemplo, vocês provavelmente já viram algumas tags de pré-lançamento (prerelease) usando nomes de letras gregas, versão 1.0.0-alpha ou versão 1.0.0-beta. Para manter um nível de organização, iremos adotar as regras do versionamento semântico para a criação das tags, tais regras são adotadas pela maioria das empresas, comunidades e desenvolvedores. podem ler e usufruir de mais informações através da fonte abaixo: Fonte: (https://danielkummer.github.io/git-flow-cheatsheet/index.html) Disponibilizado no projeto AcessibilidadeTotal por Marcos DV

Comentários

Postagens mais visitadas deste blog

print e comentários em Python.