-
Passo 1 - Executar o programa "Git Bash"
Caso não tenha o programa em seu computador, realize o download do site: https://git-scm.com/download/win
(Utilize a versão Portable) Git for Windows Portable ("thumbdrive edition") - 32-bit Git for Windows Portable. - 64-bit Git for Windows Portable.
-
Passo 2 - Escolha o diretório de trabalho no Git Bash
Exemplo: cd c: cd projetos
-
Passo 3 - Configurar o proxy no git (Se estiver em uma rede com PROXY):
COMANDO PADRÃO (não executar este):
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
EXEMPLO: (devem ser executado os DOIS comandos)
git config --global http.proxy http://RA:SenhaDoAluno@186.251.39.91:3128
git config --global https.proxy https://RA:SenhaDoAluno@186.251.39.91:3128
Se o seu RA é "12345" e sua senha é "OtimoAluno" o seu comando será: git config --global http.proxy http://12345:OtimoAluno@186.251.39.91:3128 git config --global https.proxy https://12345:OtimoAluno@186.251.39.91:3128
Para ler o proxy configurado:
git config --global --get http.proxy
git config --global --get https.proxy
Comando para LIMPAR as configurações do proxy (no final da aula):
git config --global --unset http.proxy
git config --global --unset https.proxy
-
Passo 4 - Configurar os seus dados no git:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git config --global core.editor "code --wait"
COMANDOS EXTRAS NO GIT BASH: ls = Listar diretório ls -la = Listar arquivos ocultos clear = Limpar tela cd c: = Entrar no diretorio c: cd ~ = Entrar no perfil do usuário cd .. = Ir para o diretório acima cd - = Ir para o diretório anterior mkdir = Criar um diretório rmdir = Deletar um diretório touch <nome_arquivo> = criar um arquivo cat <arquivo> = Ler o arquivo history -c = limpar comandos anteriores no terminal
Para verificar os carateres especiais CASO necessite utilizar no PROXY.
Como usar o Git e GitHub na prática - Primeiros passos:
https://www.youtube.com/watch?v=IEz_0ZQZ3sQ
Pronto!
O seu git está configurado.
-
Passo 1 - Configure o seu GIT
-
Passo 2 - Escolha o diretório de trabalho
Exemplo: - cd c: - cd projetos
-
Passo 3 - Clonar repositorio remoto:
git clone https://github.com/geracaoti/comandos-git.git (exemplo)
Pronto!
O seu repositório já está configurado e pronto para uso.
Para criar um novo repositorio local:
// para iniciar o repositório
git init
// para adicionar o versionamento aos arquivos criados ou modificados
git add *
// para listar os arquivos (se estão versionados ou não)
git status
// para determinar o repositorio remoto (destino dos arquivos)
git remote add origin <Endereço do servidor>**
// para efetivar as alterações no repositório local
git commit -m "comentário_exemplo"
// enviar os arquivos commitados para o repositório remoto
git push origin master
//Atualizar repositório (dentro do diretório versionado):
git pull origin master
Link com comandos de apoio para GIT
- http://rogerdudler.github.io/git-guide/index.pt_BR.html
- https://try.github.io/levels/1/challenges/1
- http://rogerdudler.github.io/git-guide/index.pt_BR.html
- https://pt.wikipedia.org/wiki/Sistema_de_controle_de_vers%C3%B5es
Rodrigo Branas
- https://www.youtube.com/watch?v=C18qzn7j4SM&list=PLQCmSnNFVYnRdgxOC_ufH58NxlmM6VYd1
RBtech
- https://www.youtube.com/watch?v=WVLhm1AMeYE&list=PLInBAd9OZCzzHBJjLFZzRl6DgUmOeG3H0
Loiane Groner
- https://www.youtube.com/watch?v=UMhskLXJuq4
PUBLICAR WEB PAGE GIT
- https://pages.github.com/
- http://blog.virtuacreative.com.br/hospedar-website-gratis-com-github.html
Comandos GIT Extras:
- Criar arquivo .gitignore (listar arquivos a serem ignorados no versionamento)
Entrar no site: https://www.gitignore.io/
Escolher o tipo de arquivo, clicar em "Create" e salvar o arquivo exibido.
Este arquivo ".gitignore" deve ester na raiz do projeto versionado
- Modificado (modified);
- Preparado (staged/index)
- Consolidado (comitted);
git help
git help add
git help commit
git help <qualquer_comando_git>
As configurações do GIT são armazenadas no arquivo .gitconfig localizado dentro do diretório do usuário do Sistema Operacional (Ex.: Windows: e:\jogos ou *nix /home/jogos).
As configurações realizadas através dos comandos abaixo serão incluídas no arquivo citado acima.
git config --global user.name "Daniel"
git config --global user.email "nome@gmail.com"
git config --global core.editor vim
git config --global merge.tool vimdiff
git config --global core.excludesfile ~/.gitignore
git config --list
Os nomes de arquivos/diretórios ou extensões de arquivos listados no arquivo .gitignore não serão adicionados em um repositório. Existem dois arquivos .gitignore, são eles:
-
Geral: Normalmente armazenado no diretório do usuário do Sistema Operacional. O arquivo que possui a lista dos arquivos/diretórios a serem ignorados por todos os repositórios deverá ser declarado conforme citado acima. O arquivo não precisa ter o nome de .gitignore.
-
Por repositório: Deve ser armazenado no diretório do repositório e deve conter a lista dos arquivos/diretórios que devem ser ignorados apenas para o repositório específico.
git init
git status
git add meu_arquivo.txt
git add meu_diretorio
git add .
git add -f arquivo_no_gitignore.txt
git commit meu_arquivo.txt
git commit meu_arquivo.txt meu_outro_arquivo.txt
git commit meuarquivo.txt -m "minha mensagem de commit"
git rm meu_arquivo.txt
git rm -r diretorio
git log
git log -p -2
git log --stat
git log --pretty=oneline
git log --pretty=format:"%h - %an, %ar : %s"
- %h: Abreviação do hash;
- %an: Nome do autor;
- %ar: Data;
- %s: Comentário.
Verifique as demais opções de formatação no Git Book
git log -- <caminho_do_arquivo>
git log --summary -S<palavra> [<caminho_do_arquivo>]
git log --diff-filter=M -- <caminho_do_arquivo>
- O pode ser substituido por: Adicionado (A), Copiado (C), Apagado (D), Modificado (M), Renomeado (R), entre outros.
git log --author=usuario
git blame -L 12,22 meu_arquivo.txt
Este comando deve ser utilizando enquanto o arquivo não foi adicionado na staged area.
git checkout -- meu_arquivo.txt
Este comando deve ser utilizando quando o arquivo já foi adicionado na staged area.
git reset HEAD meu_arquivo.txt
Se o resultado abaixo for exibido, o comando reset não alterou o diretório de trabalho.
Unstaged changes after reset:
M meu_arquivo.txt
A alteração do diretório pode ser realizada através do comando abaixo:
git checkout meu_arquivo.txt
git remote
git remote -v
git remote add origin git@github.com:leocomelli/curso-git.git
git remote show origin
git remote rename origin curso-git
git remote rm curso-git
O primeiro push de um repositório deve conter o nome do repositório remoto e o branch.
git push -u origin master
Os demais pushes não precisam dessa informação
git push
git pull
git fetch
git clone git@github.com:leocomelli/curso-git.git
git tag vs-1.1
git tag -a vs-1.1 -m "Minha versão 1.1"
Para criar uma tag assinada é necessário uma chave privada (GNU Privacy Guard - GPG).
git tag -s vs-1.1 -m "Minha tag assinada 1.1"
git tag -a vs-1.2 9fceb02
git push origin vs-1.2
git push origin --tags
O master é o branch principal do GIT.
O HEAD é um ponteiro especial que indica qual é o branch atual. Por padrão, o HEAD aponta para o branch principal, o master.
git branch bug-123
git checkout bug-123
Neste caso, o ponteiro principal HEAD esta apontando para o branch chamado bug-123.
git checkout -b bug-456
git checkout master
git merge bug-123
Para realizar o merge, é necessário estar no branch que deverá receber as alterações. O merge pode automático ou 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.
A mensagem indicando um merge manual será:
Automerging meu_arquivo.txt
CONFLICT (content): Merge conflict in meu_arquivo.txt
Automatic merge failed; fix conflicts and then commit the result.
git branch -d bug-123
git branch
git branch -v
git branch --merged
git branch --no-merged
git push origin bug-123
git push origin bug-123:new-branch
git checkout -b bug-123 origin/bug-123
git push origin:bug-123
Fazendo o rebase entre um o branch bug-123 e o master.
git checkout experiment
git rebase master
Mais informações e explicações sobre o Rebasing
###Stash
Para alternar entre um branch e outro é necessário fazer o commit das alterações atuais para depois trocar para um outro branch. Se existir a necessidade de realizar a troca sem fazer o commit é possível criar um stash. O Stash como se fosse um branch temporário que contem apenas as alterações ainda não commitadas.
git stash
git stash list
git stash apply
git stash apply stash@{2}
Onde 2 é o indíce do stash desejado.
git stash branch meu_branch
git commit --amend -m "Minha nova mensagem"
Alterando os três últimos commits
git rebase -i HEAD~3
O editor de texto será aberto com as linhas representando os três últimos commits.
pick f7f3f6d changed my name a bit
pick 310154e updated README formatting and added blame
pick a5f4a0d added catfile
Altere para edit os commits que deseja realizar alterações.
edit f7f3f6d changed my name a bit
pick 310154e updated README formatting and added blame
pick a5f4a0d added catfile
Feche o editor de texto.
Digite o comando para alterar a mensagem do commit que foi marcado como edit.
git commit –amend -m “Nova mensagem”
Aplique a alteração
git rebase --continue
Atenção: É possível alterar a ordem dos commits ou remover um commit apenas mudando as linhas ou removendo.
Seguir os mesmos passos acima, porém marcar os commtis que devem ser juntados com *squash
git filter-branch --tree-filter 'rm -f passwords.txt' HEAD
O bisect (pesquisa binária) é útil para encontrar um commit que esta gerando um bug ou uma inconsistência entre uma sequência de commits.
git bisect start
git bisect bad
git bisect good vs-1.1
O GIT irá navegar entre os commits para ajudar a indentificar o commit que esta com o problema. Se o commit atual não estiver quebrado, então é necessário marca-lo como bom.
git bisect good
Se o commit estiver com o problema, então ele deverá ser marcado como ruim.
git bisect bad
Depois de encontrar o commit com problema, para retornar para o HEAD utilize:
git bisect reset
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Sinta-se a vontade para realizar adicionar mais informações ou realizar correções. Fork me!