O que é?
É um sistema de controle de versão distribuída. Tendo com utilidade principal o compartilhamento do código fonte de um software em desenvolvimento, permitindo assim que vários desenvolvedores acessem simultaneamente e viabilizando o trabalho em grupo.
Foi desenvolvido pela equipe do LINUX porque os caras não curtiram o que tinha na época.
Versões
- GITHUB (Publico e open source).
- BITBUCKET (Versão empresarial, com algumas funcionalidades extras).
- GITLAB (Versão empresarial, privativa e com servidor próprio, altamente customizavel).
Comandos
init
Basta abrir a pasta criada com git init
para iniciar o git na pasta. Sera criado uma pasta .git
onde a mesma deve conter todos os arquivos para o funcionamento correto.
add
Toda vez que um arquivo for criado o git devera ficar atento as alterações e para isso precisamos evidenciar o arquivo criado através do comando:
git add nomedoarquivo.extencao
Note que ao declarar o add, o git apenas foca no arquivo, o que garante a alteração de fato é o commit.
Sendo assim caso queira incluir uma serie de arquivos declare git add .
commit
Para registar uma alteração ao longo do tempo precisamos indicar através de um commit
:
git commit -m "texto comentário"
comentando todas as alterações
git commit -am "texto sobre tudo"
reset
Caso tenha comitado algo indevidamente pode retornar ao estagio anterior utilizando o comando git reset
log
Retornar ultimas alterações, utilize o comando: git log
show
Para ver mais detalhadamente o que foi alterado em um commit utilize git show
seguido do código do commit fornecido pelo log.
Caso o mesmo seja declarado sem o código retornará as alterações do ultimo commit.
status
Verificar se houve alteração ainda não comentada, utilize o comando: git status
branch
É a ramificação da linha do tempo de um projeto. Quando se cria um projeto esse é uma Master.
Para criar uma branch basta declarar git branch categoria/nome
E acesse usando o comando git checkout categoria/nome
Parar criar e já navegar
git checkout -b categoria/nome
git branch
Para excluir a branch basta declarar git branch -D categoria/nome
merge
No final todas as alterações feitas nas branch's devem chegar ao master, para isso use o comando git merge categoria/nome
Ao realizar novamente um log é possível verificar os commits que foram realizados nas outras branchs "mergenadas".
push
Até o momento todas as informações passadas realiza o controle local, para disponibilizar o mesmo basta no site criar o repositório.
caso o repositório ainda não exista pode usar o código branch
echo "# exemplo-repositorio" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/seugit/exemplo-repositorio.git
git push -u origin main
Caso o repositório já exista de maneira local.
git remote add origin https://github.com/seugit/exemplo-repositorio.git
git push -u origin master
clone
Caso queira clonar um repositório apagado ou um novo projeto utilize o git clone https://github.com/seu/teste.git
o link está disponível através do github no mesmo local onde baixa o código.
pull
Quando quiser importar alterações que constam no servidor basta utilizar o comando git pull
o mesmo vai buscar a ultima versão e atualizar os arquivos locais.
Ignore
Utilizado para declarar arquivos de dependência, que não necessariamente deveria fazer parte do conteúdo disponibilizado pelo Git. Esta ligado unicamente a como o git permite o rastejamento de arquivos dentro de um projeto.
Utilização
Primeiramente crie um arquivo dentro da pasta com o nome .gitignore
.
Dentro dele declarar o nome de arquivos ou pastas a serem ignorados.
Contribuição
Para contribuir com outro projeto.
- Faça um
Fork
do projeto principal. - Faze um clone do projeto em sua conta.
- Realizar as alterações devidas.
- Subir isso ao GitHub.
- Fazer o
Pullrequest
das alterações.
git push --set-upstream origin categoria/nome
Isso resolve possíveis conflitos
Fork
Permite você a fazer uma divisão/copia do projeto principal para trabalhar suas alterações sem alterar o projeto principal.
Pullrequest
Submete todas as alterações a avaliação dos responsáveis pelo projeto principal, ficando responsável por aceitar ou não as propostas.
Para isso acesse a branch no git com as suas alterações e clique em New Pull Request
Git flow
Git Flow diz respeito a boa administração das branchs uma vez que as divisões devem ser coerentes e visar o melhor andamento do desenvolvimento.
Geralmente existem 5 divisões básicas sendo elas:
Master
Principal onde se concentram também os vercionamntos.Hotfix
Estado intermediário entre uma versão e as alterações trabalhadas. Ponto para realizar pequenas correções.Release
Ponto de junção entre as novas funcionalidades.Develop
Ponto onde todas as funcionalidades estão completas.Feature
Base de desenvolvimento de funcionalidades.