James Moro
Iniciei minha vida profissional como desenvolvedor web em 2008. Tenho um canal no Youtube onde publico vídeos sobre tecnologia.
O melhor da tecnologia está no nosso canal no WhatsApp
Neste artigo você irá conhecer alguns comandos básicos do Git.
Acesse sua pasta do projeto que deseja fazer o versionamento e inicie com git init
. Feito isso, você deu o start para que seu projeto seja controlado pelo Git. Em seguida adicione seus arquivos com git add .
.
Através do comando git add
é possível adicionar os arquivos que você deseja que seja monitorado. Um exemplo seriagit add contato.php
.
Neste exemplo apenas adicionamos um único arquivo, para adicionar todos arquivos da sua pasta é necessário adicionar o “ponto”, ficando então git add .
.
Com git add -A
você adiciona os arquivos que foram deletados do seu projeto.
Se você usar o git add *.php
vai adicionar todos os arquivos com a extensão php.
Com o git status
você irá saber o que está acontecendo com seu projeto pois será mostrado em quais estados estão os arquivos.
Esse comando é parecido com o git status. Este comando compara o que está no seu diretório de trabalho com o que está na sua área de seleção (staging).
O resultado te mostra as mudanças que você fez que ainda não foram selecionadas. Em seguida aperte “q” para sair do terminal.
Ao commitar você escreve uma descrição sobre o que foi feito no seu código para que outros integrantes identifiquem essa mudança no histórico do projeto.Um exemplo seria git commit -m "Resolvido conflito do formulário da página de contato"
.
Esse comando é realizado após o git add
pois seus arquivos devem ser adicionados ao índices para que recebam commits.
É possível adicionar e comitar ao mesmo tempo usando o comando git commit -a -m "Mensagem do commit"
Um commit é representado por uma estrutura SHA1 com aproximadamente 40 caracteres que identifica unicamente o conteúdo existente desse commit.
Com este comando você retira do índice o arquivo que você não quer que o Git faça o tracking. É usado quando você utiliza git add
e depois deseja que determinado arquivo saia do índice.
Se você usar o git log
no projeto, você irá visualizar uma lista de todos os seus commits enviados e commits de outros integrantes.
Com este comando você visualiza o log de cada commit e os arquivos modificados neles.
Para que você possa trabalhar isoladamente em um parte do seu projeto, é possível criar branchs que se originam da sua master. Isso se dá ao fato que você pode trabalhar em uma funcionalidade do seu projeto e depois mesclar esse branch a sua master.
Branch é uma ramificação do seu projeto. Para criar um novo branch use git branch nomedobranch
.
Use git branch
para saber em qual branch você está.
Use git branch -d nomedobranch
para apagar um branch.
Use git branch -a
para ver os branchs remotos.
Após ter criado seu branch a partir da master, acesse sua branch através do comando git checkout nomedobranch
. Se você quiser acessar de imediato a branch que criou através da master use git checkout -b nomedabranch
.
Com git pull
você sincroniza tudo que está no repositório remoto. Use git pull origin master
.
Com git push
você envia seus arquivos ou projeto para o repositório. Use git push origin master
.
Vamos imaginar que você está trabalhando em um branch e precisa trabalhar em outro branch mas não deseja commitar.
Ao usar git stash
o Git guarda as coisas para fora do diretório de trabalho. Mas primeiro é necessário executar git add .
e em seguida git stash
. Dê git status
.
E para onde vão esses arquivos? Use git stash list
para visualizar. E para trazer de volta use git stash apply
e depois git stash clear
.
Você ainda pode usar git stash save "fazendo comentários"
para saber o nome que aquele stash pertence. Depois para visualizar use git stash list
.
Vamos supor que você tenha uma lista de stashes, e deseja trazer de volta um stash específico. Então use git stash apply stash@{0}
onde stash@{0} é a identificação do seu stash mostrado através do comando git stash list
.
Com git stash pop
você aplica todos os stashes que estão em sua lista.
E finalmente git stash drop stash@{0}
apaga um stash.
O git stash
é importante quando você precisa resolver um bug em outra área e não deseja comitar seu código atual.
Para que você defina quais arquivos devem ser ignorados pelo Git, é necessário que você crie um arquivo chamado .gitignore
na raiz do seu projeto. Sendo assim todos os caminhos ou arquivos que estiverem listados neste arquivo o Git não irá versionar.
Se um arquivo já está sendo monitorado pelo Git, e você adiciona o arquivo no .gitignore
o GIT não vai parar de monitorar. Será necessário fazer git rm --cached nome_do_arquivo
para manter o arquivo em sua árvore e então ignorá-lo.
Vamos imaginar que você fez o commit mas esqueceu de adicionar determinado arquivo em um commit. E você não quer criar outro commit para isso, fazendo que seu arquivo entre no commit anterior. É possível usar o comando amend
. Então use git add arquivo_esquecido.php
e git commit -m "Meu commit" --amend
, logo de git status
e git log
e você verá apenas 1 commit e não 2.
Feito isso o que ele fez foi refazer o commit anterior com essa nova alteração. Não faça git amend
em repositórios remotos.
Dê git log
e vai ver que o SHA1 da identificação do commit mudou.
Vamos imaginar que você teve que usar git add .
e apenas um arquivo da pasta não seria necessário adicionar ao índice. Então através do comando git reset HEAD arquivo_para_ser_removido.php
será removido do índice e ficará como untracking.
Para que que esse arquivo não entre no commit, use git checkout arquivo_para_ser_removido.php
.
Através do comando git reset HEAD~1 --hard
é possível desfazer o último commit e voltar para o commit anterior.
Com o comando --hard
mostrado acima ele irá arrancar fora um commit inteiro. Com git reset HEAD~1 --soft
ele retira o commit anterior e retorna o conteúdo deste commit para dentro do índice. É como se tivesse desfeito o commit e não as modificações.
Logo, para você trabalhar nesse commit você tem que trazer para o working area utilizando git reset HEAD
. Pronto, seus arquivos deste commit estarão untracking.
Então --hard
apaga os commits totalmente e --soft
mantém as modificações do commit.
Dê git log
e verá o hash do commit.
Vamos supor que por engano você executou esse comando. Você pode pensar que essa operação foi destrutiva e que o trabalho do dia todo estava neste commit que se perdeu. Calma!
Com git reflog
você visualiza o histórico de commits apagados que não estão mais acessíveis, pois a ideia é que você tenha cópias salvas em seu projeto. Com esse comando você visualiza o hash do commit com os 7 caracteres iniciais.
E com git merge
e os 7 caracteres iniciais você resgata aquele commit apagado para sua branch atual. Exemplo: git merge 019cab3
. Dessa forma você trás de volta aquele commit anterior que você apagou.
No começo deste post foi mostrado o git add
. Resolvi deixar por último o git add -i
para que você entendesse todos os processos anteriores para entender este.
A letra i significa de interação.
Ao executar git add -i
irá abrir em seu terminal uma opção de comandos para que você digite os números informando quais arquivos deverão ser adicionados.
Apaga arquivos do diretório de trabalho que não fazem parte do repositório. Lembrando que ele irá apagar os arquivos que estão untracking.
Rebase é melhor que merge pois este rebobina e aplica deixando em ordem os commits. Rebase não é usado para comits que estão no servidor.
O git rebase é parecido com o merge. Ao invés de gerar um novo commit, ele reaplica cada um dos commits da branch local “por cima” do último commit da branch remota.
O rebase é usado quando desenvolvedores não querem sujar o histórico do repositório. Se você não usar git rebase, o Git sempre vai criar um novo commit para o merge dos commits locais com os commits remotos.
O git merge é mais recomendado pois não há risco de afetar o trabalho de outras pessoas e preserva a ordem real dos eventos no histórico, embora um pouco poluído.
O gitk é um aplicativo gráfico que serve para visualizar os logs do repositório de uma maneira visual e mais fácil. (Se você estiver no Mac, use gitx)
Iniciei minha vida profissional como desenvolvedor web em 2008. Tenho um canal no Youtube onde publico vídeos sobre tecnologia.