Prévia do material em texto
Git e GitHub 1 Git e GitHub Progresso Progredindo 1. O que é Git e GitHub? 1.1 Git Git é um sistema de controle de versão popular. Foi criado por Linus Torvalds em 2005 (o mesmo ccriador do Linux) e é mantido por Junio Hamano desde então. 1. O que é Git e GitHub? 1.1 Git 1.2 GitHub? 1.3 Instalando o Git 2. Iniciando no Git 2.1 Configurando o Git na sua máquina 2.2 Criando pasta e inicializando o .git 3. Novos arquivos no Git 3.1 Adicionando novos arquivos 3.2 Ambiente de preparação do Git 4. Enviando arquivos para repositório remoto 5. Fazendo Git Pull 6. Criando uma nova ramificação (branch) 7. Mesclando duas ramificações (merge) Git e GitHub 2 É usado para: Rastreamento de alterações no código Rastreando de quem fez as alterações Codificação de colaboração 1.2 GitHub? Git não é o mesmo que GitHub. O GitHub cria ferramentas que usam o Git. O GitHub é o maior host de código-fonte do mundo e pertence à Microsoft desde 2018. Vamos nos concentrar no uso do Git com o GitHub. 1.3 Instalando o Git Você pode baixar o Git gratuitamente no seguinte site: https://www.git-scm.com/ 2. Iniciando no Git 2.1 Configurando o Git na sua máquina Antes de começar a usar o Git, você precisa informar quem é você. Isso é extremamente importante para sistemas de controle de versão, pois todas as alterações e configurações devem está vinculadas à pessoa que as fez. Para configurar seu nome no Git, use: git config --global user.name "Seu nome" https://git-scm.com/ Git e GitHub 3 Para configurar seu e-mail, use: git config --global user.email "Seu e-mail" 2.2 Criando pasta e inicializando o .git Agora, vamos criar uma nova pasta para o nosso projeto: mkdir meuProjeto cd meuProjeto mkdir cria uma nova pasta/diretório cd entra na pasta/diretório desejado Agora que estamos na pasta/diretório correto. Podemos começar inicializando o Git! Depois de navegar para a pasta correta, você pode inicializar o Git nessa pasta usando: git init Dessa forma, você acabou de criar seu primeiro repositório Git. Após você dar esse comando, uma pasta oculta será criada com o nome .git . Essa pasta será a responsável por rastrear todas as alterações feitas. 3. Novos arquivos no Git Git e GitHub 4 3.1 Adicionando novos arquivos Acabamos de criar o primeiro repositório Git local. Mas ele ainda se encontar vazio, não tem nenhum arquivo guardado nele. Então, vamos adicionar alguns arquivos ou criar um novo arquivo usando seu editor de texto favorito. Em seguida, salve ou mova-o para a pasta que você acabou de criar. Para este exemplo, vou usar um arquivo HTML simples como este: <!DOCTYPE html> <html> <head> <title>Olá, mundo!</title> </head> <body> <h1>Olá, mundo!</h1> <p>Este é meu primeiro arquivo no repositório Git</p> </body> </html> E salve-o na pasta “meuProjeto” como index.html . Vamos voltar ao terminal e listar os arquivos em nosso diretório de trabalho atual: dir index.html dir listará os arquivos no diretório. Podemos ver que index.html está lá. Em seguida, verificamos o Git status e vemos se ele faz parte do nosso repositório: git status Git e GitHub 5 Assim, irá aparecer na tela: git status On branch master No commits yet Untracked files: (use "git add ..." to include in what will be committed) index.html nothing added to commit but untracked files present (use "git add" to track) Agora o Git está ciente do arquivo, mas não o adicionou ao nosso repositório. Os arquivos na pasta do repositório Git podem estar em um dos dois estados: Rastreado - arquivos que o Git conhece e são adicionados ao repositório Untracked - arquivos que estão em seu diretório/pasta, mas não adicionados ao repositório Quando você adiciona arquivos pela primeira vez a um repositório vazio, eles não são rastreados. Para fazer o Git rastreá-los, você precisa testá-los ou adicioná-los ao ambiente de teste. 3.2 Ambiente de preparação do Git Uma das principais funções do Git são os conceitos do Staging e do Commit. Enquanto trabalha, você pode adicionar, editar e remover arquivos. Mas sempre que atingir um marco ou terminar uma parte do trabalho, você deve adicionar os arquivos a um Staging. Existe 3 modos em que os seus arquivos podem se encontar dentro de um diretório/pasta Git: Git e GitHub 6 1 - Untracked Os arquivos estão na pasta, mas não estão sendo rastreados 2 - Staging Os arquivos estão preparados para serem confirmados para serem rastrados e posteriormente serem comitados/confirmados no Git. Enquanto trabalha, você pode adicionar, editar e remover arquivos. Mas sempre que atingir um marco ou terminar uma parte do trabalho, você deve adicionar os arquivos a um Staging. Para deixar um arquivo no estado Staging, use: git add index.html Usado essa forma, só podemos adicionar um arquivo por vez ao modo Staging. Caso tenha mais de um arquivo, podemos usar o seguinte comando: git add . Assim, quando usarmos o comando Git status, teremos: git status On branch master No commits yet Changes to be committed: (use "git rm --cached ..." to unstage) new file: index.html 3 - Commited Git e GitHub 7 Quando o arquivo está no modo commit, significa que o Git está rastreando todas as mudanças no arquivo. Adicionar commits acompanha nosso progresso e mudanças enquanto trabalhamos. O Git considera cada commit ponto de mudança ou "ponto de salvamento". É um ponto do projeto ao qual você pode voltar se encontrar um bug ou quiser fazer uma alteração. Todos os commits devem sempre receber uma mensagem clara do que foi alterado. Pois, assim, fica fácil para você (e para os outros) ver o que mudou e quando mudou. Após adicionar todos os arquivos no modo Staging, usamos o seguinte comando para dar commit: git commit -m "MENSAGEM DO QUE FOI ALTERADO" Após isso, teremos: git commit -m "MENSAGEM DO QUE FOI ALTERADO" [master (root-commit) 221ec6e] MENSAGEM DO QUE FOI ALTERADO 1 files changed, 2 insertions(+) create mode 100644 index.html Assim, o Git marcará esse commit na linha do tempo do repositório . Apartir de agora, qualquer alteração feita no arquivo index.html será identificado pelo Git. 3.3 Recapitulando git init //cria o repositório git git add . (ou nome do arquivo) //prepara para o commit git commit -m "mensagem" //inicia o rastreamento Git e GitHub 8 4. Enviando arquivos para repositório remoto Iremos está usando a plataforma do GitHub para hospedar nosso código. Mas existe outras, como: o bitbucket e o GitLab. Acesse o GitHub e crie uma conta: Após criar um repositório no GitHub, iremos enviar os arquivos do nosso repositório local para o repositório remoto que criamos no GitHub. Lembre-se de usar o mesmo endereço de e-mail usado na configuração do Git. https://www.github.com/ Git e GitHub 9 Agora, no terminal damos o seguinte comando: git branch -M main Aqui inserimos o link do repositório do GitHub que queremos enviar nossos arquivos. git remote add origin git@github.com:fabioarrudes/first-repositorio.git Nessa estapa nosso arquivos ainda não foram enviados para o repositório remoto no GitHub, apenas especificamos para onde ele deve ser encaminhado. Para enviar, precisamos dar o comando push git push -u origin main copie e guarde o link desse repositório, iremos usar depois Git e GitHub 10 Agora, nossos arquivos foram enviados para o repositório remoto no GitHub. Se esta for a primeira vez que você está enviando arquivos para o GitHub, você receberá algum tipo de notificação para autenticar a conexão do Git para o GitHub. Agora, volte ao GitHub e veja se o repositório foi atualizado. 5. Fazendo Git Pull Enquanto o comando git push envia as atualizações do repositório local para o repositório remoto, o comando git pull faz o contrário, puxa as atualizações do repositório remoto para o repositório local. Esse comando é extremamente útil para trabalho em equipe, onde um membro da equipe envia sua versão atualizada do programa para o repositório remoto e vocêatualiza seu repositório local com a atualização que foi feita pela outra pessoa. Exemplo: Você finalizou seu horário de trabalho e deu git push , enviando essa versão para o repositório remoto, e foi dormir. Git e GitHub 11 Mas outra pessoa continuou trabalhando e resolveu inserir uma atualização no programa e deu git push . Assim, o programa ficou dessa forma no repositório remoto: Git e GitHub 12 Então você acordou e iniciou um novo dia de trabalho, mas o programa da noite anterior ainda não foi concluido pela equipe. Você precisa continuar o desenvolvimento do programa. Assim, você abre o programa na sua máquina: Git e GitHub 13 Mas essa não é a versão mais recente do programa, você sabe que outras pessoas continuaram trabalhando nele enquanto você estava dormindo. Versão do seu repositório local Git e GitHub 14 Versão do seu repositório remoto, após outras pessoas atualizarem Git e GitHub 15 Agora, antes de você iniciar seu trabalho e enviar atualizações para o repositório remoto, você precisa atualizar seu repositório local com as recentes atualizações da equipe para não ocorrer conflitos estruturais. Para isso, usamos o seguinte comando: git pull Com isso, você puxou todas atualizações feita pela sua equipe enquanto você dormia. Agora seu repositório local está igual ao repositório remoto e você já pode voltar a trabalhar normalmente. Git e GitHub 16 6. Criando uma nova ramificação (branch) No Git existe o conceito de Branch, que é uma espécie de linha do tempo do código. Ao criarmos um repositório Git, automaticamente criamos a branch master/main, é nessa branch que ficará o nosso projeto principal. Seu repositório local após o comando git pull Git e GitHub 17 Mas, digamos que você tem uma nova aplicação para implementar no seu projeto e não quer que seu projeto principal corra o risco de ser comprometido caso dê algum erro. Nessa situação, você cria uma nova branch, ou seja, uma ramificação do seu código (faz uma cópia do seu projeto para uma nova branch), e implementa essa nova aplicação sem comprometer seu projeto na branch principal. E, se caso tudo ocorrer bem, você tem a possibilidade de mesclar a branch criada com a principal. Para saber quais branch’s possui seu repositório Git, use o seguinte comando: git branch Caso possua apenas uma, o terminal irá lhe retornar: * main Para criar uma nova branch, usamos o mesmo comando acima, mas dessa vez com o nome que queremos dar a ela: Git e GitHub 18 git branch develop Agora, consultamos quantas branch’s possuímos: git branch Dessa vez, o terminal irá lhe retornar: develop * main O asterisco indica em qual branch estamos trabalhando. Como podem observar, estamos na branch “main”. Para mudar de branch usamos o seguinte comando: git checkout "nome da branch" Como queremos mudar para a branch “develop”, usamos: git checkout develop Assim, o terminal irá nos retornar: Switched to branch 'develop' Se usarmos o comando git branch , para verificar quais branch’s possuímos, agora teremos o asterisco na branch “develop”: * develop main Git e GitHub 19 Nos indicando que não estamos mais na branch “main”, mudamos para a branch “develop” ao usarmos o comando git checkout . Dessa forma, qualquer alteração que fizermos no projeto da branch “develop”, não terá efeito no projeto da branch principal. E é exatamente isso que queremos: Criar novas funcionalidades no projeto, testar, revisar e, se caso tudo estiver ocorrendo bem, mesclar uma branch com a outra para que a branch do projeto principal recebar a nova funcionalidade. Mas, como fazemos uma mesclagem de duas branch’s? 7. Mesclando duas ramificações (merge) Git e GitHub 20 Git e GitHub 21 Git e GitHub 22 Git e GitHub 23 Git e GitHub 24