domingo, 21 de fevereiro de 2016

Git :: Comandos Básicos do Dia a Dia


Esse post vai ser baseado na aula de Formação Web Dev que estou tendo com o +Fabio Alvaro Pereira (Link do Blog) junto com uma equipe ninja composta de programadores padawans e estagiários Youngling. Essa semana teve bastante coisa, e provavelmente terá mais, então planejo colocar aqui algumas tricks úteis que estou aprendendo de Slackware e PHP com o pessoal. Vou deixar aqui algumas notas do uso do Git que eu tomei hoje na parte da tarde.

Git, é um sistema de controle de versão distribuído para gerenciamento de código fonte focado em infraestrutura e desenvolvimento ágil por meio de repositórios de código, onde os mais conhecidos gerenciadores deste serviço são o Github e o Bitbucket. Ele é Software Livre e o desenvolvedor foi ninguém mais ninguém menos que Linus Torvalds. Inclusive a cereja do bolo do treinamento hoje foi o repositório do Kernel Linux no Github.




Usando o Git sem complicações 



Obtendo um repositório:
 # git clone /caminho/para/o/repositório   
 # git clone https://github.com/msfidelis/Firewalls-Labs.git  

Verificando o Status do repositório:
Você pode verificar as alterações, files não trackeadas e outras informações a respeito do projeto utilizando:
 # git status  


Adicionando seus novos arquivos e modificações:
Você pode propor mudanças e adicioná-las a sua versão utilizando:
 # git add *          # Adiciona tudo a branch  
 # git add --all      # Adiciona tudo a branch também :)  
 # git add <arquivo>  # Adiciona um arquivo/pasta específico   


Commit nas alterações:
Para realmente confirmar estas mudanças (isto é, fazer um commit), use o exemplo abaixo. Agora o arquivo é enviado para o HEAD, mas ainda não para o repositório remoto.
 # git commit -m 'Alterei algumas paradinhas legais'  
 # git commit -am 'Alterei algumas paradinhas legais' # Já faz um git add e um commit

Baixando as alterações do servidor: 
Depois do commit é sempre bom baixar a versão mais nova do código do servidor. Pra quem trabalha em equipe, é essencial manter seu ambiente o mais atualizado possível com a versão dos colegas e resolver todos os conflitos antes de dar o pull pro servidor. Para isso utilizamos o 'git pull'
 # git pull 

Enviando as alterações para o servidor:
Depois de terminar seu código, adicionar, commitar e baixar a versão mais nova, está na hora de enviar suas alterações para seus colegas.
 # git push origin master #Enviando as alterações para a branch master

Mudando a branch:
Vamos supor que a arquitetura do desenvolvimento seja dividida em braches, e todo o código gerado por uma sprint seja commitado em um local totalmente separado da branch de produção, e você precisa navegar entre as branches para desenvolver, fazer merges e deploys dos códigos
 # git branch #Exibe todas as branches existentes para o repositório
 # git checkout <branch>


Criando uma nova Brach:
Vamos supor que você precisa resolver uma alteração bem crítica, ou somente dar o start para um novo ciclo de desenvolvimento, e para isso deseja criar uma nova branch para que todo o desenvolvimento fique separado da branch master de produção. Para isso iremos utilizar o checkout com a opção -b
 # git checkout -b #suporte


Voltando as configurações originais do header
'Puts, errei... Zoei tudo...' Solução? Largar tudo e começar tudo do zero fazendo um novo clone? Não... Na verdade é possível restaurar apenas um arquivo ao seu estado original tendo como base o ultimo pull no header.
 # git checkout /caminho/para/o/arquivo.php  



Configurações do GIT

O serviço do git pode ser otimizado, aqui vão algumas dicas bacanas pra caramba que recebi no curso:

Configurando o Usuário do git:
 # git config --global user.name "Matheus Fidelis"  

Configurando o Email do seu usuário do git:
 git config --global user.email "nanoshots@nanoshots.com"  

Setar editor padrão do Git:
 git config --global core.editor vim  

Setar ferramenta de merge default do Git
 git config --global merge.tool vimdiff  

Ativando a opção de ignorar arquivos e pastas com o gitignore: 
 git config --global core.excludesfile ~/.gitignore  
Agora edite/crie o arquivo .gitignore na raiz do projeto e coloque nele o caminho das pastas e arquivos a serem ignorados em cada commit. 

Criando um cache da sua senha no git (evitar de ter que digitar sempre):
 git config --global credential.helper 'cache --timeout=90000'  


Post sempre em construção :)

Baseado no post que tem no blog do Fábio e na aula que nós tivemos na Fox

SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

2 comentários:

  1. Parabens, muito bom esse artigo, estava realmente precisando saber mais sobre o assunto, seu site é excelente, rico em informações, obrigado por compartilhar conhecimento.

    ResponderExcluir

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com