Article image
Leandro Garcia
Leandro Garcia06/09/2022 17:37
Compartilhe

Tutorial - Git Bash

    Git

    Git é um sistema de controle de versão distribuído gratuito e de código aberto projetado para lidar com tudo, desde projetos pequenos a muito grandes com velocidade e eficiência.
    Git é fácil de aprender e tem um desempenho extremamente rápido. Ele supera as ferramentas SCM como Subversion, CVS, Perforce e ClearCase com recursos como ramificação local barata, áreas de teste convenientes e vários fluxos de trabalho.

    Inicialmente projetado e desenvolvido por Linus Torvald em 2005, Git rapidamente se tornou uma das mais populares ferramentas de controle de versão, principalmente em projetos open source. Muito do aumento da popularida de Git se deve a plataformas como GitHub a qual vamos ver mais a frente.

    Principais plataformas de hospedagem que utilizam Git

    image

    image

    image

    GitHub

    Iremos adotar a plataforma GitHub para este treinamento, se trata da plataforma mais popular do mundo que utiliza Git.

    O GitHub é amplamente utilizado por grande parte dos projetos open sources e também por desenvolvedores para divulgação de projetos e portifólio.

    Conceitos GIt

    Repositório

    Local onde os arquivos e suas cópias ficarão armazenados. O repositório pode ser local ou remoto, podendo salvar qualquer tipo de arquivo.

    Branch

    Um branch é uma cópia de um repositório feito a partir de outra branch. Você pode utilizá-lo para desenvolver o seu projeto individualmente, sem alterar a branch de origem. Assim, só depois de finalizado, será combinado novamente com a branch original.

    Essa função é útil, por exemplo, se você tem mais de uma opção para a finalização de um projeto. Você pode testar as opções separadamente e incluir o código definitivo só quando você decidir qual alternativa é a melhor.

    Geralmente, teremos a branch principal que normalmente tem o nome de master ou main (GitHub utilizava por default o master mas passou a adotar o padrão main desde 2020) e as branchs criadas pelos colaboradores.

    Pull request / Merge Request

    Um Pull/Merge Request é quando você informa aos outros membros da sua equipe que vai incorporar seu branch ao repositório original. Os colaboradores da equipe podem aceitar ou não a Pull Request.

    Ao abrir essa opção é possível discutir e argumentar o seu trabalho com os cocriadores do projeto.

    Merge

    Após a finalização de um trabalho em um Branch, é necessário realizar o Merge, fundir a cópia e seus arquivos modificados com a branch principal do projeto. Isso pode ser feito localmente ou no caso de estarmos utilizando uma plataforma como o GitHub isso pode ser feito após análise da solicitação de Merge Request.

    image

    Primeiros passos

    Criar assinatura

    git config --global user.name "Seu usuario"
    git config --global user.email "email@example.com
    

    Clonar repositório

    git clone <url_repositorio>
    

    Comandos Git

    Git Help

    git help
    git help <comando> #Comando o qual deseja maiores informações
    

    O comando help irá lhe mostrar qual a função de determinado comando e quais opções podem ser utilizadas junto com aquele comando.

    Git Clone

    git clone <endereco-repositorio-remoto>
    

    O Git clone é um comando para baixar o código-fonte existente de um repositório remoto (como o Github, por exemplo). Utilizando GitHub é possível fazer o git clone por https ou ssh.

    Git Init

    git init
    

    Cria um novo repositório local Git. Com esse comando será criado um novo subdiretório chamado .git que contem todos os arquivos necessários de seu repositório — um esqueleto de repositório Git.

    Git Remote

    git remote add origin <endereco_repositorio>
    

    Vincula o repositório local a um repositório remoto.

    git remote
    
    git remote -v
    

    Exibe os repositórios remotos.

    Git Status

    git status
    

    Fornece todas as informações necessárias sobre o branch atual, como por exemplo ficheiros que sofreram alterações que podem ser incluídos no próximo commit.

    Git Add

    git add <ficheiro>
    git add .
    

    Adiciona um ficheiro ou todos o ficheiros que sofreram modificações e/ou foram incluídos no próximo commit. Este comando não altera o repositório, as alterações não são salvas até fazermos um commit.

    Git Restore

    git restore --staged <ficheiro>
    

    Remove do próximo commit ficheiro que foi incluído no próximo commit.

    git restore <ficheiro>
    

    Restaura o ficheiro para o última estado dele na Branch. Cuidado, isso irá remover todas suas alterações que não foram committed.

    Git Reset

    git reset HEAD <ficheiro>
    

    Remove do próximo commit ficheiro que foi incluído no próximo commit. (igual ao comando git restore --staged)

    git reset --hard
    

    Retorna o repositório para o último commit na branch a qual está posicionado. Cuidado, todas as suas alterações que não foram committed serão perdidadas.

    Git Commit

    git commit -m "Mensagem explicativa da alteração realizada"
    

    Este comando é como definir um ponto de verificação no processo de desenvolvimento, para o qual você pode voltar mais tarde se necessário. Quando é feito o git commit as alterações são confirmadas apenas no repositório local.

    Git Push

    git push <remote> <nome-do-branch>
    git push origin main
    

    Este comando é utilizado para enviar o commit da sua branch no repositório local para uma branch em um repositório remoto.

    Git Pull

    git pull <remote>
    git pull origin
    git pull
    

    Obtém atualizações do repositório remoto, quando usamos o git pull, ele recebe as atualizações do repositório remoto e aplica imediatamente as alterações mais recentes no seu repositório local.

    Git Branch

    Com branches, vários desenvolvedores podem trabalhar em paralelo no mesmo projeto simultaneamente.

    Pode-se usar o comando git branch para criar, listar e excluir branches.

    git branch <nome-do-branch>
    

    Cria nova branch.

    git branch
    git branch --list
    

    Lista branches.

    git branch -d <nome-do-branch>
    

    Deleta branches.

    git push -u <remote> <nome-da-branch>
    

    Replica branch para o repositório remoto.

    git branch --merged
    

    Lista branches que já foram fundidos (merged) com o master.

    git branch --no-merged
    

    Listar branches que não foram fundidos (merged) com o master.

    Git Checkout

    Este é um dos comandos Git mais usados. Para trabalhar em uma branch, primeiro você precisa mudar para ela.

    Usamos o git checkout principalmente para alternar de um branch para outro. Também podemos usá-lo para verificar arquivos e commits.

    git checkout <nome-do-branch>
    

    Altera árvore de trabalho para outra branch.

    git checkout -b <nome-da-branch>
    

    Cria um novo branch e fazer checkout ao mesmo tempo.

    Git Log

    git log
    

    Exibe histórico do repositório

    git log -p -2
    

    Exibe histórico com diff das duas últimas alterações.

    git log --stat
    

    Exibe resumo do histórico (hash completa, autor, data, comentário e qtde de alterações (+/-))

    git log --pretty=oneline
    

    Exibe informações resumidas em uma linha (hash completa e comentário)

    git log --diff-filter=M -- <ficheiro>
    

    Exibe histórico modificação de um ficheiro

    Git Tags

    Tags são utilizadas normalmente para marcar um ponto que determina a versão da aplicação, desta forma, é possível seguir na mesma branch principal e conseguir voltar para pontos de versão apenas utilizando as tags.

    git tag v1.1 -m "descricao"
    

    Cria uma tag localmente, a tag é criada na branch onde estiver no momento em que executar o comando.

    git push origin <tag_name>
    

    Criar a tag que foi criada localmente no repositório remoto.

    git push origin --tags
    

    Cria todas as tags locais no repositório remoto.

    Git Merge

    O git merge permite fazer um merge entre duas branch.

    git merge <branch_a_realizar_merge>
    

    Para realizar o merge, é necessário estar no branch que deverá receber as alterações. O merge pode acontecer de forma automática ou exigir uma ação manual. O merge automático será feito em arquivos textos que não sofreram alterações nas mesmas linhas, já o merge manual será feito em arquivos textos que sofreram alterações nas mesmas linhas, onde será necessário intervenção e realização de um novo commit após esta intevenção.

    Referências:

    #by Leandro Garcia - espero ter ajudado!✌

    https://github.com/leandrogarciadev/tutorial-Git-Bash#git
    https://www.linkedin.com/in/leandrogarcia-dev
    
    
    Compartilhe
    Comentários (7)
    Shirlei Araujo
    Shirlei Araujo - 07/09/2022 00:48

    Bom trabalho, vai servir de grande ajuda para muitos, parabéns!

    AC

    Alexandre Cavalheiro - 06/09/2022 22:00

    Parabéns pelo trabalho, me ajudou bastante

    Diogo Silva
    Diogo Silva - 06/09/2022 20:47

    Muito bom, ajudou muito.

    Lucas Fraga
    Lucas Fraga - 06/09/2022 20:13

    Obrigado pelo post Leandro, com certeza vai ajudar muitas pessoas.

    Maycon Parreira
    Maycon Parreira - 06/09/2022 19:49

    Muito útil, valeu!!!

    SD

    Sergio Dusilekz - 06/09/2022 17:53

    Ajudou com certeza.

    Obrigado.

    AL

    Adilson Lima - 06/09/2022 17:51

    Bom trabalho. obrigado