Usando o git no dia a dia

No dia a dia o git é uma ferramenta super pratica para se usar, normalmente no processo de versionamento do codigo ira usar comandos como add, rm, commit, e push.

git log

Exibe a lista de todos os commits do seu projeto. Abaixo vemos um exemplo:

bash-3.1$ git log
commit chave_sha1
Author: luciano <luciano@id_usuário>
Date:   Fri Nov 19 22:05:52 2010 +0000
mensagem que você digitou no commit
git-svn-id: repositório_git@id_usuário
.
.
.
commit chave_sha1
Author: luciano <luciano@id_usuário>
Date:   Fri Nov 18 12:43:31 2010 +0000
mensagem de outro commit
git-svn-id: repositório_git@id_usuário
.
.
.

A Chave SHA1 nos será útil mais a frente.

git add

Como é de se imaginar, esse comando adiciona os arquivos em um repositório temporário para em breve ser comitado.

git rm

Já este comando remove os arquivos que foram adicionados

git commit

git commit -m “descrição do commit”

git commit -am “descrição do commit”

Removendo tracked files

Digamos que você criou seu projeto, commitou suas alterações e enviou para um repositório remoto e só então se lembrou de ignorar alguns arquivos... Bom, apartir de agora não adianta apanas fazer as modificações no .gitignore, você vai precisar também remover ele do seu índice, e ai então ele passará a ser ignorado nos seus commits. Então vamos lá:

* Primeiro você vai no seu arquivo .gitignore e coloca o seu arquivo lá.
* Depois você dá um git rm --cached <arquivo>

* Por exemplo:

* no seu .gitignore:
* log/development.log

* depois é só executar:
* git rm --cached log/development.log

Desfazendo commits

Caso você faça um commit e por algum motivo precise defazer, existe duas formas de fazer isso:

git reset --soft

A primeira forma é usando a flag 'soft', a qual irá retornar os últimos arquivos commitados para a área 'staging' (área onde os arquivos estão prontos para serem commitados). Para isso, basta utilizar o comando: $ git reset --soft HEAD~1

O valor 1 corresponde a quantidade de commits que você vai desfazer. Exemplo:

$ git reset --soft HEAD~1
ou
$ git reset --soft HEAD~2
etc.

Uma outra forma de utilizar o reset é especificando um commit. Você precisa digitar a chave_sha1 dele junto ao comando. Digite: $ git reset --soft chave_sha1

Segue um exemplo abaixo:

$ git reset --soft 448c28eb80d07248333739e4031cf24b6290261b

git reset --hard

A segunda forma é usando a flag 'hard' e a única diferença é que os arquivos não serão movidos para a área 'staging', eles serão simplesmente deletados, ou seja, você perde as alterações que havia feito. Exemplo: $ git reset --hard HEAD~1

Levando minhas modificações para outros branchs sem comitar

Você fez um monte de modificações e quando executou um 'git status', percebeu que não era aquele o branch certo. O git stash é seu o seu herói neste momento.

git stash save

O comando permite 'esconder' as modificações na pasta de trabalho, deixando-o limpo para a mudança de branchs, levando os arquivos para uma espécie de 'área de transferência': $ git stash save Saved working directory and index state WIP on my_work_branch: 83a438e... HEAD is now at 83a438e Un isolated Engines Test.

git stash list

É possível ter mais de uma area 'stash'. Para listá-las temos o comando 'git stash list'. Cada nova stash criada é adicionada ao início da lista: $ git stash list stash@{0}: WIP on my_work_branch: 83a438e...

git stash apply

E agora a parte mais importante desde o início, que é recuperar o que colocamos no stash. Para isso, precisamos ver na saída do 'git stash list' o ID do nosso stash. Repare no comando anterior o o ID 'stash@{0}' $ git stash apply stash@{0} Auto-merging my_file.rb CONFLICT (content): Merge conflict in my_file.rb

git stash drop

Devemos prezar um ambiente limpo. O 'git stash drop' faz isso por nós sempre que um stash não for mais necessário: $ git stash drop stash@{0}

Mais informações sobre o 'git stash': $ git stash --help

results matching ""

    No results matching ""