├── LICENSE-MIT.md
├── README.md
├── comandos
├── branches.md
├── commits.md
├── configuracoes.md
├── gerenciando-repositorios.md
├── git-no-servidor.md
├── guia-simplificado.md
├── stage-area.md
├── tags.md
├── trabalhando-git-flow.md
├── trabalhando-git-github.md
├── versionamento-repositorios.md
└── working-directory.md
├── images
├── git-flow-comandos.png
└── git-super-poderes.png
└── sugestoes
├── cursos-palestras.md
├── ferramentas.md
├── githosting.md
├── livros.md
└── slides.md
/LICENSE-MIT.md:
--------------------------------------------------------------------------------
1 | # The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Anderson Nascimento
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | # Conhecendo os super poderes do Git
6 |
7 | > Guia com seleção de comandos para o Trabalho com Git e GitHub
8 |
9 | ## Comandos
10 |
11 | 1. [Guia Simplificado](https://github.com/theandersonn/comandos-git/blob/master/comandos/guia-simplificado.md)
12 | 2. [Configurações](https://github.com/theandersonn/comandos-git/blob/master/comandos/configuracoes.md)
13 | 3. [Versionamento de Repositórios](https://github.com/theandersonn/comandos-git/blob/master/comandos/versionamento-repositorios.md)
14 | 4. [Working Directory](https://github.com/theandersonn/comandos-git/blob/master/comandos/working-directory.md)
15 | 5. [Stage Area](https://github.com/theandersonn/comandos-git/blob/master/comandos/stage-area.md)
16 | 6. [Trabalhando com Commits](https://github.com/theandersonn/comandos-git/blob/master/comandos/commits.md)
17 | 7. [Os Super Poderes das Branches](https://github.com/theandersonn/comandos-git/blob/master/comandos/branches.md)
18 | 8. [Gerenciando Repositórios](https://github.com/theandersonn/comandos-git/blob/master/comandos/gerenciando-repositorios.md)
19 | 9. [Trabalhando com Git e GitHub](https://github.com/theandersonn/comandos-git/blob/master/comandos/trabalhando-git-github.md)
20 | 10. [Trabalhando com Tags](https://github.com/theandersonn/comandos-git/blob/master/comandos/tags.md)
21 | 11. [Git no Servidor](https://github.com/theandersonn/comandos-git/blob/master/comandos/git-no-servidor.md)
22 | 12. [Trabalhando com Git Flow](https://github.com/theandersonn/comandos-git/blob/master/comandos/trabalhando-git-flow.md)
23 |
24 | ## Sugestões
25 |
26 | 1. [Cursos e Palestras](https://github.com/theandersonn/comandos-git/blob/master/sugestoes/cursos-palestras.md)
27 | 2. [Ferramentas](https://github.com/theandersonn/comandos-git/blob/master/sugestoes/ferramentas.md)
28 | 3. [Livros](https://github.com/theandersonn/comandos-git/blob/master/sugestoes/livros.md)
29 | 4. [Slides](https://github.com/theandersonn/comandos-git/blob/master/sugestoes/slides.md)
30 | 5. [GitHosting](https://github.com/theandersonn/comandos-git/blob/master/sugestoes/githosting.md)
31 | 6. [Vim Cheat Sheet](http://woliveiras.com.br/vimparanoobs/)
32 |
33 | ## Colabore
34 | 1. Fork o repositório
35 | 2. Crie a sua branch: git checkout -b nome-branch
36 | 3. Committe as suas alterações: git commit -m "Comentário com a sua alteração"
37 | 4. Envie a sua branch: git push origin nome-branch
38 | 5. Envie uma solicitação de alteração através de pull request :)
39 |
40 | ## Questões e dúvidas
41 | Caso tenha alguma questão ou sugestão, abra uma [issue](https://github.com/theandersonn/comandos-git/issues/new) e envie o seu feedback.
42 |
43 | ## License
44 |
45 | [MIT](https://github.com/theandersonn/comandos-git/blob/master/LICENSE-MIT.md) © [Anderson Nascimento](https://github.com/theandersonn)
46 |
--------------------------------------------------------------------------------
/comandos/branches.md:
--------------------------------------------------------------------------------
1 | # Trabalhando com branches
2 |
3 | **Criar uma nova branch**
4 | ```bash
5 | git branch nome-branch
6 |
7 | # Acessando a nova branch
8 | git checkout nome-branch
9 |
10 | # Criando e acessando uma nova branch
11 | git checkout -b nome-branch
12 |
13 | # Criando uma nova branch vazia
14 | git checkout --orphan nome-branch
15 | ```
16 |
17 | **Baixar todas as branchs que estão online**
18 | ```bash
19 | git fetch --all ou git remote update
20 | ```
21 |
22 | **Criar uma branch local baseada na remota**
23 | ```bash
24 | git fetch origin
25 |
26 | git checkout -b "feature-x" "origin/feature-x"
27 | ```
28 |
29 | **Renomeiar branch local**
30 | ```bash
31 | # Renomeia a brach localmente
32 | git branch -m old-branch new-branch
33 |
34 | # Deleta a branch velha
35 | git push --set-upstream origin new-branch
36 |
37 | # Empurra a nova branch, define a branch local no track remoto
38 | git push origin :old-branch
39 | ```
40 |
41 | **Retorna num ponto específico e cria uma nova branch**
42 | ```bash
43 | git checkout hash-commit -b nome-nova-branch
44 | ```
45 |
46 | **Renomeando branches**
47 | ```bash
48 | git branch -m nome-branch
49 | ```
50 |
51 | **Aplicando merge em branches**
52 | ```bash
53 | # Precisa estar na branch de destino
54 | git merge nome-branch
55 | ```
56 |
57 | **Visualizando todas as branches existentes no repositório**
58 | ```bash
59 | # A branch corrente será marcada por um asterisco
60 | git branch
61 | ```
62 |
63 | **Visualizando todas as branches locais e remotas**
64 | ```bash
65 | git branch -a
66 | ```
67 |
68 | **Deletando uma branch**
69 | ```bash
70 | git branch -D nome-branch
71 | ```
72 |
73 | **Deletando branch remota**
74 | ```bash
75 | git push origin :nome-branch
76 | ```
77 |
--------------------------------------------------------------------------------
/comandos/commits.md:
--------------------------------------------------------------------------------
1 | # Trabalhando com commits
2 |
3 | **1 Commitando arquivos**
4 |
5 | *Depois de adicionar os arquivos com git add -A, por exemplo.*
6 |
7 | ```bash
8 | git commit -m "Inseir um Comentário Significativo"
9 | ```
10 |
11 | **2 Commitando arquivos já inseridos na Staging Area**
12 | ```bash
13 | git commit -a -m "Inseir um Comentário Significativo"
14 | git commit -am "Inseir um Comentário Significativo"
15 | ```
16 |
17 | **3 Editando a mensagem do último commit**
18 | ```bash
19 | git commit --amend -m "mensagem-do-commit"
20 | ```
21 |
22 | **4 Fechar issues através de commits**
23 | ```bash
24 | git commit -m "Mensagem commit - fix ou resolve IDissue"
25 | ```
26 |
27 | O ID da Issue você consegue na URL da mesma. Ex.: `issues/8` - 8.
28 |
29 | Outras palavras chave que podemos usar para fechamento de Issues: `fix, fixes, fixed, close, closes, closed, resolve, resolves, resolved`
30 |
31 | **5 Revertendo ação de um commit específico**
32 | ```bash
33 | git revert commit-hash
34 | ```
35 |
36 | Para encontrar o hash, você precisa rodar no terminal: `git log`.
37 |
38 | O hash é aquele número que aparece em `comit: xxxxxxx.`
39 |
40 | **6 Abortando o processo de reverter commit**
41 | ```bash
42 | git revert --abort
43 | ```
44 |
45 | **7 Abortando o merge**
46 | ```bash
47 | git merge --abort
48 | ```
49 |
50 | **8 Acionando a [mergetool](https://git-scm.com/docs/git-mergetool)**
51 | ```bash
52 | git mergetool
53 | ```
54 |
55 | **9 Excluindo um commit local**
56 | ```bash
57 | git reset --hard hash-commit
58 | ```
59 |
60 | **13 Visualiza alterações específicas**
61 | ```bash
62 | git diff nome-arquivo.extensao
63 | ```
64 |
65 | **14 Visualiza alterações entre commits**
66 | ```bash
67 | git diff hash-commit1 hash-commit2
68 | ```
69 |
70 | **15 Visualiza arquivos em conflito**
71 | ```bash
72 | git diff --name-only --diff-filter=U
73 | ```
74 |
75 | **16 Transferindo alterações que ainda não estão commitadas para o stash**
76 | ```bash
77 | git stash
78 | ```
79 |
80 | **17 Visualizando itens que estão no stash**
81 | ```bash
82 | git stash list
83 | ```
84 |
85 | **18 Utilizando o último item adicionado no stash**
86 | ```bash
87 | git stash apply
88 | ```
89 |
90 | **19 Remove Stash**
91 | ```bash
92 | git stash drop stash@{0}
93 | ```
94 |
95 | **20 Aplica e remove o último Stash**
96 | ```bash
97 | git stash pop
98 | ```
99 |
100 | **21 Limpando o stash**
101 | ```bash
102 | git stash clear
103 | ```
104 |
--------------------------------------------------------------------------------
/comandos/configuracoes.md:
--------------------------------------------------------------------------------
1 | # Configurações
2 |
3 | **Obs1:** (Exemplo Windows) Acesse o menu iniciar, localize o ícone do Git Bash, clique com o direito do mouse e em propriedades altere para o local onde normalmente ficam os seus projetos. Exemplo: D:\xampp\htdocs
4 |
5 | **Obs2:** No Git Bash a maioria dos comandos são inicializados com $, no entanto são inseridos automaticamente pela ferramenta. Por este motivo ocultei nos exemplos abaixo.
6 |
7 |
8 | **1 Locomovendo-se pelas pastas do projeto**
9 | ```bash
10 | cd nome-da-pasta
11 |
12 | cd .. // Retorna 1 nível
13 |
14 | cd - // Retorna para a pasta que estávamos anteriormente
15 | ```
16 |
17 | **2 Retorna o caminho da pasta atual**
18 | ```bash
19 | pwd
20 | ```
21 |
22 | **3 Abre o Windows Explorer**
23 | ```bash
24 | explorer
25 | ```
26 |
27 | **4 Abre o Explorer do Windows na pasta que estamos atualmente**
28 | ```bash
29 | explorer .
30 | ```
31 |
32 | **5 Configura nome de usuário**
33 | ```bash
34 | git config --global user.name nome-de-usuario
35 | ```
36 |
37 | **6 Configura email de usuário**
38 | ```bash
39 | git config --global user.email email@email.com.br
40 | ```
41 |
42 | **7 Configura editor padrão**
43 | ```bash
44 | git config --global core.editor nome-editor
45 | ```
46 |
47 | **8 Configura a mergetool (meld)**
48 | ```bash
49 | git config --global merge.tool meld
50 | ```
51 |
52 | **9 Edita configurações globais**
53 | ```bash
54 | git config --global -e
55 | # Exemplo editor = atom --wait
56 | ```
57 |
58 | **10 configura follow-tags como true por padrão**
59 | ```bash
60 | git config --global --edit
61 | [push]
62 | followTags = true
63 | ```
64 |
65 | **10 Armazena senha (https)**
66 | ```bash
67 | git config --global credential.helper cache
68 | ```
69 |
70 | **11 Remove senha armazenada (https)**
71 | ```bash
72 | git config --global --unset credential.helper
73 | ```
74 |
75 | **12 armazena senha temporariamente (https)**
76 | ```bash
77 | git config --global credential.helper 'cache --timeout=3600' // (3600 segundos = 1 hora)
78 | ```
79 |
80 | **13 Remove configuração setada**
81 | ```bash
82 | git config --global --unset propriedade
83 | git config --global --unset core.editor // exemplo
84 | git config --global --unset user.email // exemplo
85 | ```
86 |
87 | **14 Visualiza as configurões de usuário**
88 | ```bash
89 | git config -l
90 | ```
91 |
92 | **15 Visualiza as configurões de usuário**
93 | ```bash
94 | git config --list
95 | ```
96 |
97 | **16 Verifica versão do git bash**
98 | ```bash
99 | git --version
100 | ```
101 |
--------------------------------------------------------------------------------
/comandos/gerenciando-repositorios.md:
--------------------------------------------------------------------------------
1 | # Gerenciando Repositórios
2 |
3 | **1 Pesquisa de texto em todos os diretórios**
4 | ```bash
5 | git grep termo-da-busca
6 | ```
7 |
8 | **2 Visualizando relatório de commits**
9 | ```bash
10 | gitk // Visualize os Commits numa interface gráfica
11 |
12 | git log // Todos os commits
13 |
14 | git log -p // Commits realizados + Diff
15 |
16 | git log -p -3 // Commits realizados + Diff com limitação de exibição
17 |
18 | git log --stat // Resultado com estatistica
19 |
20 | git log --name-status // Visualiza status de todos os arquivos que foram modificados
21 |
22 | git log --oneline // Exibe log com hash e título do commit
23 |
24 | git log --pretty=oneline // Visualizando somente o código e mensagem de cada commit
25 |
26 | git log --abbrev-commit // Abrevia hash-commit
27 |
28 | git log --pretty=oneline --abbrev-commit // Resulta em linha única com hash-commit abreviada
29 |
30 | git log --pretty=format:"%h - %an, %ar : %s" // Resultado personalizado com hash - autor - tempo - titulo-commit
31 |
32 | ```
33 |
34 | **3 Visualizar número de commits por usuário**
35 | ```bash
36 | git shortlog -s
37 | ```
38 |
39 | **4 Visualizar alterações feitas depois do último commit que ainda não foram stageadas**
40 | ```bash
41 | git diff
42 | ```
43 |
44 | **5 Visualizar alterações feitas depois do último commit que já foram stageadas**
45 | ```bash
46 | git diff --cached
47 | ```
48 |
49 | **6 Identificando User que fez alterações em determinado arquivo**
50 | ```bash
51 | git blame nome-arquivo
52 | ```
53 |
--------------------------------------------------------------------------------
/comandos/git-no-servidor.md:
--------------------------------------------------------------------------------
1 | # Trabalhando com Git no Servidor
2 |
3 | **8.1 Iniciar versionamento no servidor**
4 | ```bash
5 | git init --bare
6 | ```
7 | **8.2 Clonando repositório do servidor**
8 | ```bash
9 | git clone file:////nome-servidor/pasta-desenvolvimento/nome-repositorio
10 | ```
11 | **8.3 Consultando nome do remoto (por padrão chama-se origin)**
12 | ```bash
13 | git remote
14 | ```
15 | **8.4 Enviando arquivos/modificações para o servidor**
16 | ```bash
17 | git push origin
18 | ```
19 |
--------------------------------------------------------------------------------
/comandos/guia-simplificado.md:
--------------------------------------------------------------------------------
1 | # Guia simplificado
2 |
3 | ### 1 Configurações iniciais do Git
4 |
5 |
6 | **Baixando e instalando o Git**
7 | ```bash
8 | https://git-scm.com/downloads
9 | ```
10 |
11 | **Configura nome de usuário**
12 | ```bash
13 | git config --global user.name nome-sobrenome
14 | ```
15 |
16 | **Configura email de usuário**
17 | ```bash
18 | git config --global user.email email@email.com.br
19 | ```
20 |
21 | ### 2 Inicializando um repositório
22 |
23 |
24 | **Inicializa o versionamento no respectivo diretório**
25 | ```bash
26 | git init
27 | ```
28 |
29 | ### 3 Comandos básicos para sobreviver
30 |
31 |
32 | **Verifica o status do repositório**
33 | ```bash
34 | git status
35 | ```
36 |
37 | **Adiciona todos os arquivos para serem commitados**
38 | ```bash
39 | git add .
40 | ```
41 |
42 | **Commitando arquivos**
43 | ```bash
44 | git commit -m "inserir um comentário significativo"
45 | ```
46 |
47 | **Visualizando relatório de commits**
48 | ```bash
49 | git log // todos os commits
50 | git log --oneline // exibe log com hash e título do commit
51 | ```
52 |
53 | **Adicionando um repositório remoto**
54 | ```bash
55 | git remote add origin https://github.com/User/Repository.git
56 | ```
57 |
58 | **Enviando as modificações para o repositório remoto**
59 | ```bash
60 | git push origin
61 | ```
62 |
63 | **Puxando alterações do repositório remoto**
64 | ```bash
65 | git pull origin
66 | ```
67 |
68 | ### 4 Trabalhando com branchs
69 |
70 |
71 | **Criando e locomovendo-se para uma nova branch**
72 | ```bash
73 | git checkout -b nome-branch
74 | ```
75 |
76 | **Aplicando merge em branchs**
77 | ```bash
78 | git merge nome-branch // precisa estar na branch de destino
79 | ```
80 |
81 | **Visualizando todas as branches existentes no repositório**
82 | ```bash
83 | git branch
84 | ```
85 |
86 | **Deletando uma branch local**
87 | ```bash
88 | git branch -D nome-branch
89 | ```
90 |
91 | **Deletando uma branch remoto**
92 | ```bash
93 | git push origin :nome-branch
94 | ```
95 |
96 |
--------------------------------------------------------------------------------
/comandos/stage-area.md:
--------------------------------------------------------------------------------
1 | # Trabalhando com arquivos na stage area
2 |
3 | **1 Visualizando a última alteração feita**
4 | ```bash
5 | git diff // no diretório de trabalho (compara Work Directory com Staging Area)
6 |
7 | git diff --staged // na staged area (compara Staging Area com .Git Directory)
8 |
9 | git diff nome-arquivo.extensao // Visualiza alterações específicas de um commit
10 |
11 | git diff --name-only // Visualiza o nome dos arquivos alterados
12 |
13 | git diff -w // Visualiza alterações ignorando espaços
14 |
15 | git show hash-commit // Visuliza todas as modificações feitas no respectivo commit
16 | ```
17 |
18 | **2 Revertendo alterações feitas em arquivos** (Arquivos que estão na área de trabalho)
19 | ```bash
20 | git checkout -- nome-do-arquivo.extensao
21 | ```
22 |
23 | **3 Removendo aquivos da stage area**
24 | ```bash
25 | git reset HEAD nome-do-aquivo.extensao
26 | ```
--------------------------------------------------------------------------------
/comandos/tags.md:
--------------------------------------------------------------------------------
1 | # Trabalhando com Tags
2 |
3 | **1 Crianddo Lightweight Tag**
4 |
5 | ```bash
6 | # É recomendado utiliza-la somente localmente.
7 | git tag "1.0.0"
8 | ```
9 |
10 | **2 Crianddo Annotated Tag**
11 |
12 | ```bash
13 | # É recomendado utiliza-la para servidos, ou seja tags de release.
14 | git tag -a "1.0.0" -m "1.0.0"
15 | ```
16 |
17 | **3 Listando as Tags criadas**
18 |
19 | ```bash
20 | git tag
21 | ```
22 |
23 | **4 Enviando as Tags criadas para o servidor**
24 |
25 | ```bash
26 | # enviará as tags do tipo Annotated
27 | git push origin master --follow-tags
28 | ```
--------------------------------------------------------------------------------
/comandos/trabalhando-git-flow.md:
--------------------------------------------------------------------------------
1 | # Trabalhando com Git Flow
2 |
3 | ### Git Flow
4 |
5 | > Aqui é apenas um resumo
6 | > Nem todos os comandos disponíveis estão cobertos aqui, apenas os mais importantes deles
7 |
8 | **O que é?**
9 |
10 | > O git-flow é um conjunto de extensões para o git que provê operações de alto-nível para repositórios usando o modelo de branches do Vincent Driessen
11 | > Você pode continuar a usar o git e todos os comandos dele normalmente como você já conhece, o git flow é apenas uma coleção de ferramentas
12 |
13 | *Em poucas palavras*
14 | > Uma forma de organização usando branches
15 |
16 | **Funcionamento**
17 |
18 | *Git Flow é divido em 3 tageamentos:*
19 | - Funcionalidades / Feature;
20 | - Versão / Release;
21 | - Hotfix
22 |
23 | ### Instalação
24 |
25 |
26 | **Ubuntu/Debian-based**
27 | ```bash
28 | sudo apt-get install git-flow
29 | ```
30 |
31 |
32 | **Mac OS X**
33 | ```bash
34 | brew install git-flow-avh
35 | ```
36 |
37 |
38 | **Windows**
39 | *(Cygwin)*
40 | ```bash
41 | wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash
42 | ```
43 | *Ou*
44 | ```bash
45 | https://git-for-windows.github.io/
46 | ```
47 | > A partir do Git Windows 2.6.4, GitFlow (AVH) está incluído.
48 |
49 |
50 | **Manual**
51 | ```bash
52 | wget --no-check-certificate -q https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh && bash gitflow-installer.sh install stable; rm gitflow-installer.sh
53 | ```
54 |
55 |
56 | ### Começando com Git Flow
57 |
58 |
59 | **Inicialização**
60 | *Para começar a usar Git Flow em seu projeto, você precisa iniciá-lo*
61 | ```bash
62 | git flow init
63 | ```
64 |
65 |
66 | ## Funcionalidade / Features
67 | > O desenvolvimento de uma nova funcionalidade começa a partir do ponto atual de seu branch DEVELOP
68 |
69 | **Começar uma nova funcionalidade**
70 | ```bash
71 | git flow feature start MINHA_FUNCIONALIDADE
72 | ```
73 | > Criar um branch (baseado no develop) e automaticamente irá dar uma checkout nesse branch
74 |
75 | **Finalizando uma funcionalidade**
76 | ```bash
77 | git flow feature finish MINHA_FUNCIONALIDADE
78 | ```
79 | > Esse comando irá executar as seguintes ações:
80 | > Merge com a branch develop;
81 | > Deleta a branch funcionalidade;
82 | > Checkout na branch develop;
83 | > Para finalizar uma funcionalidade, você deve executar esse comando dentro do branch funcionalidade que deseja finalizar
84 |
85 | **Publicando uma funcionalidade**
86 | ```bash
87 | git flow feature publish MINHA_FUNCIONALIDADE
88 | ```
89 |
90 | **Obter uma funcionalidade**
91 | ```bash
92 | git flow feature pull MINHA_FUNCIONALIDADE
93 | ```
94 | > Simplesmente um pull de uma branch
95 |
96 | ## Versões / Release
97 | > Auxilia a preparação de uma nova versão de produção
98 |
99 | **Começar uma nova versão**
100 | ```bash
101 | git flow release start MINHA_VERSAO
102 | ```
103 | > Cria um branch baseado no develop
104 |
105 | **Publicando uma versão**
106 | ```bash
107 | git flow release publish MINHA_VERSAO
108 | ```
109 | > É sensato publicar o branch da versão depois de criá-lo, para permitir commits por outros desenvolvedores
110 |
111 | **Finalizar uma versão**
112 | ```bash
113 | git flow release finish MINHA_VERSAO
114 | ```
115 | > Na finalização de uma versão, ele executa várias ações:
116 | > Faz merge do branch MINHA_VERSAO no MASTER;
117 | > Faz merge do branch MINHA_VERSAO e um checkout no DEVELOP;
118 | > Etiqueta a versão com seu nome;
119 | > Remove o branch MINHA_VERSAO;
120 |
121 | ## Hotfix
122 | > Os hotfixes surgem da necessidade de agir imediatamente sobre uma situação indesejada na versão de produção ativa
123 |
124 | **Criando um hotfix**
125 | ```bash
126 | git flow hotfix start MEU_HOTFIX
127 | ```
128 | > Cria um branch baseado no MASTER
129 | > O argumento MEU_HOTFIX nesse caso marca a versão defeituosa na produção
130 |
131 | **Finalizar um hotfix**
132 | ```bash
133 | git flow hotfix finish MEU_HOTFIX
134 | ```
135 | > Ele irá fazer um merge no MASTER e no DEVELOP
136 | > O merge no MASTER será etiquetado
137 |
138 | ### Resumo dos Comandos
139 | ![Git Flow Comandos] (../images/git-flow-comandos.png)
140 |
141 | ### Fonte
142 | Git-Flow: https://github.com/nvie/gitflow
143 | Documentação: http://danielkummer.github.io/git-flow-cheatsheet/
144 |
--------------------------------------------------------------------------------
/comandos/trabalhando-git-github.md:
--------------------------------------------------------------------------------
1 | # Trabalhando com Git e GitHub
2 |
3 | **1 Gerando uma chave SSH de autenticação no Git bash**
4 | ```bash
5 | ssh-keygen
6 |
7 | # ler a chave publica no linux
8 | cat /home//.ssh/id_rsa.pub
9 |
10 | # ler a chave publica no mac
11 | cat /Users//.ssh/id_rsa.pub
12 | ```
13 |
14 | **2 Verificar se existe chave SSH configurada**
15 | ```bash
16 | ls -al ~/.ssh
17 | ```
18 |
19 | **3 Configurando a chave SSH no GitHub**
20 | ```bash
21 | // Insira um nome para identificar a sua máquina no Github
22 |
23 | // No Github vá em "Settings > SSH Keys" (Title + Key)
24 | ```
25 |
26 | **4 Verificar qual chave SSH está setada**
27 | ```bash
28 | ssh -T
29 | ```
30 |
31 | **5 Crie um repositorio no GitHub**
32 | ```bash
33 | Acesse "Repositories" > New
34 | ```
35 |
36 | **6 Clonando o repositório para a sua máquina**
37 | ```bash
38 | No Github copie a URL SSH
39 |
40 | No gitBash (git clone + url-repositorio)
41 | ```
42 |
43 | **7 Inserir caminho do repositorio remoto**
44 | ```bash
45 | git remote add origin url-repositorio // origin é o nome do repositório remoto
46 | ```
47 |
48 | **8 Remover caminho do repositorio remoto**
49 | ```bash
50 | git remote rm origin // origin é o nome do repositório remoto
51 | ```
52 |
53 | **9 Verificar caminho do repositorio remoto que está setado**
54 | ```bash
55 | git remote -v
56 | ```
57 |
58 | **10 Exibir informações sobre o repositório remoto**
59 | ```bash
60 | git remote show origin
61 | ```
62 |
63 | **11 Altera a url do repositório remoto (Máquina local > Github)**
64 | ```bash
65 | git remote set-url origin url-repositorio
66 | ```
67 |
68 | **12 Adicionando mais de um repositório remoto**
69 | ```bash
70 | git remote add
71 |
72 | Exemplo:
73 | git remote add github git@github.com:theandersonn/comandos-git.git
74 | git remote add bitbucket git@github.com:theandersonn/comandos-git.git
75 | ```
76 |
77 | **13 Renomeando repositório remoto**
78 | ```bash
79 | git remote rename
80 | ```
81 |
82 | **14 Enviando as modificações para o GitHub**
83 | ```bash
84 | git push origin
85 | ```
86 |
87 | **15 Deletando branch remota**
88 | ```bash
89 | git push origin nome-branch --delete
90 | git push origin :nome-da-branch
91 | ```
92 |
93 | **16 Baixando as modificações do GitHub para a sua máquina** (Se o repositório for de sua autoria)
94 | ```bash
95 | git pull origin
96 | ```
97 |
98 | **17 Baixando o conteúdo de uma branch remota e locomovendo-se para esta nova branch**
99 | ```bash
100 | git checkout -b origin/
101 | ```
102 |
103 | **18 Forçando git pull** (Os arquivos que estão locais serão subscritos)
104 | ```bash
105 | git fetch --all
106 | git reset --hard origin/
107 | git pull origin
108 | ```
109 |
110 | **19 Mantendo o Repositório Forkado atualizado com o original**
111 | ```bash
112 | // Nesse momento o nosso repositório chama-se origin;
113 | // Vamos criar um novo chamado "upstream" que apontará para o original.
114 |
115 | git remote add upstream insira-url-ssh-do-repositorio-original
116 | ```
117 |
118 | **20 Sincronizando os dois repositórios** (upstream e original)
119 | ```bash
120 | git fetch upstream
121 | ```
122 |
123 | **21 Aplicando merge nas atualizações do fork para a branch master do nosso repositório**
124 | ```bash
125 | git merge upstream/master
126 | ```
127 |
128 | **22 Fechar issues através de commits**
129 | ```bash
130 | git commit -m "Mensagem commit - fix issue IDIssue"
131 | ```
132 |
133 | O ID da Issue você consegue na URL da mesma. Ex.: `issues/8` - 8.
134 |
135 | Outras palavras chave que podemos usar para fechamento de Issues: `fix, fixes, fixed, close, closes, closed, resolve, resolves, resolved`
136 |
--------------------------------------------------------------------------------
/comandos/versionamento-repositorios.md:
--------------------------------------------------------------------------------
1 | # Criando e versionando repositórios
2 |
3 | **2.1 Criando Repositório**
4 | ```bash
5 | mkdir nome-do-repositorio
6 | ```
7 |
8 | **2.2 Iniciando o Versionamento neste repositório**
9 | ```bash
10 | git init
11 | ```
12 |
13 | **2.3 Criando arquivos através do terminal**
14 | ```bash
15 | touch nome-aquivo.extensao
16 | ```
17 |
18 | **2.4 Listar o controle de diretório**
19 | ```bash
20 | ls -a
21 | ```
22 |
23 | **2.5 Verifica arquivos existentes no projeto**
24 | ```bash
25 | ls -la
26 | ```
27 |
28 | **2.6 Verificar Status do repositorio**
29 | ```bash
30 | git status
31 | ```
32 |
33 | **2.7 Separando arquivos para não serem versionados**
34 | ```bash
35 | psds/ (diretório)
36 | alteracoes.php
37 | anotacoes.txt
38 | *.orig. // arquivos gerados pela merge toll
39 | ```
40 |
--------------------------------------------------------------------------------
/comandos/working-directory.md:
--------------------------------------------------------------------------------
1 | # Trabalhando com arquivos na working directory
2 |
3 | **1 Adiciona aquivos para serem commitados**
4 | ```bash
5 | 1. maneira: git add nome-do-aquivo.extensao
6 |
7 | 2. maneira: git add *.extensao
8 |
9 | 3. maneira: git add . //add todos
10 |
11 | 4. maneira: git add --all //add todos incluindo deletados
12 | ```
13 |
14 | **2 Removendo arquivo da Working Directory**
15 | ```bash
16 | git checkout nome-arquivo.extensao
17 | ```
18 |
19 | **3 Removendo arquivo com status "deleted" da arvore**
20 | ```bash
21 | git rm nome-file.extensao
22 | ```
23 |
24 | **4 Removendo arquivo(s) com status "deleted" da arvore**
25 | ```bash
26 | git add --all
27 | ```
28 |
29 | **5 Deletando todos os arquivos da arvore e do projeto**
30 | ```bash
31 | git rm -rf . ( CUIDADO )
32 | ```
33 |
34 | **6 Removendo pastas da arvore**
35 | ```bash
36 | git rm -r nome-diretorio
37 | ```
38 |
39 | **7 Removendo pastas da staged area e git directory**
40 | ```bash
41 | git rm -rf nome-diretorio/ --cached
42 | ```
43 |
--------------------------------------------------------------------------------
/images/git-flow-comandos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/theandersonn/comandos-git/918e63a429ef090d1485c77b18cef331035af207/images/git-flow-comandos.png
--------------------------------------------------------------------------------
/images/git-super-poderes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/theandersonn/comandos-git/918e63a429ef090d1485c77b18cef331035af207/images/git-super-poderes.png
--------------------------------------------------------------------------------
/sugestoes/cursos-palestras.md:
--------------------------------------------------------------------------------
1 | # Recomendações de cursos e palestras
2 |
3 | **Cursos**
4 |
5 | - [Alura - Controle e compartilhe seu código](https://www.alura.com.br/curso-online-git)
6 | - [Fernando Daciuk - Curso Git e Github Ninja](http://blog.da2k.com.br/curso-git-e-github-ninja/)
7 | - [RBtech - Básico de Git](https://www.youtube.com/playlist?list=PLInBAd9OZCzzHBJjLFZzRl6DgUmOeG3H0)
8 | - [Renato França - GitHub para n00bs](https://www.youtube.com/playlist?list=PLIcowd3mjrFjdFDTFcHKHdgTqYZZdMyKH)
9 | - [Rodrigo Branas - Aula de Git e Github](https://www.youtube.com/playlist?list=PLQCmSnNFVYnRdgxOC_ufH58NxlmM6VYd1)
10 | - [Willian Justen - Git e Github para Iniciantes](https://www.youtube.com/watch?v=IBClN6VpJDw&list=PLlAbYrWSYTiPA2iEiQ2PF_A9j__C4hi0A)
11 |
12 | **Palestras**
13 |
14 | - [Bruno Calheira - Use o Git e Perca o Medo de Errar](https://www.youtube.com/watch?v=EsNWCNx2aOs)
15 | - [Danilo Bellini - Introdução ao Git e Github](https://www.youtube.com/watch?v=Fc_UC5SywuU)
16 | - [Fabio Akita - Screencast - Começando com o Git](http://www.akitaonrails.com/2010/08/17/screencast-comecando-com-git)
17 | - [Gustavo Mathias - Git e GitHub para iniciantes](https://www.youtube.com/watch?v=TReVFOxhh7E)
18 | - [Leo Baiano - Montando um ambiente de desenvolvimento WordPress utilizando Composer e Git](https://www.youtube.com/watch?v=vGWFlG10YFM)
19 | - [Loiane Groner - Git e Github para iniciantes](https://www.youtube.com/watch?v=UMhskLXJuq4)
20 |
21 |
--------------------------------------------------------------------------------
/sugestoes/ferramentas.md:
--------------------------------------------------------------------------------
1 | # Sugestões de ferramentas
2 |
3 | ###Markable
4 |
5 | * [Editor online de Markdown:](http://markable.in/)
6 |
7 | ###Dillinger
8 |
9 | * [Editor online de Markdown:](http://dillinger.io/)
10 |
11 | ###StackEdit
12 |
13 | * [Editor online de Markdown:](https://stackedit.io/)
14 |
15 | ###Haroopad
16 |
17 | * [Editor de Markdown](http://woliveiras.com.br/posts/haroopad-um-editor-markdown-maneiro/)
18 |
19 | ###Plugins do SublimeText (Git e Markdown)
20 |
21 | * GitGutter
22 | * Markdown Extended
23 | * Markdown Preview
24 |
--------------------------------------------------------------------------------
/sugestoes/githosting.md:
--------------------------------------------------------------------------------
1 | # GitHosting - Serviços online
2 |
3 | * [Unfuddle](https://unfuddle.com/)
4 | * [Bitbucket](https://bitbucket.org/)
5 | * [GitLab](https://about.gitlab.com/)
6 |
--------------------------------------------------------------------------------
/sugestoes/livros.md:
--------------------------------------------------------------------------------
1 | # Sugestões de livros
2 |
3 | - [Git Internals PluralSight](https://github.com/pluralsight/git-internals-pdf)
4 | - [Git in the Trenches](http://cbx33.github.com/gitt)
5 | - [Git Training](https://training.github.com/kit)
6 | - [Pro-Git EN](https://git-scm.com/book/en/v1)
7 | - [Pro-Git PT](https://leanpub.com/pro-git/read)
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/sugestoes/slides.md:
--------------------------------------------------------------------------------
1 | # Slides
2 |
3 | - [Bruno Calheira - Use o git e perca o medo de errar](http://pt.slideshare.net/brunocalheira/use-o-git-e-perca-o-medo-de-errar)
4 | - [Leo Baiano - Montando um ambiente de desenvolvimento WordPress utilizando Composer e Git](http://pt.slideshare.net/leobaiano1/montando-um-ambiente-de-desenvolvimento-wordpress-utilizando-composer-e-git)
5 | - [theandersonn - Conhecendo os super poderes do Git](http://pt.slideshare.net/theandersonn/conhecendo-os-super-poderes-do-git)
6 | - [theandersonn - Introdução ao Git e GitHub](http://pt.slideshare.net/theandersonn/intruducao-aogitegithub)
--------------------------------------------------------------------------------