Projeto

Geral

Perfil

Gitcomandos » Histórico » Versão 9

Mauricio Luiz Viani, 27/10/2021 17:56 h

1 1 Mauricio Luiz Viani
h1. Comandos básicos do Git
2 1 Mauricio Luiz Viani
3 3 Mauricio Luiz Viani
h2. Branches
4 1 Mauricio Luiz Viani
5 3 Mauricio Luiz Viani
h3. Listar branches
6 3 Mauricio Luiz Viani
7 1 Mauricio Luiz Viani
<pre>
8 1 Mauricio Luiz Viani
$ git branch
9 1 Mauricio Luiz Viani
$ git branch -a
10 1 Mauricio Luiz Viani
11 1 Mauricio Luiz Viani
O ramo que tiver um '*' é o ramo ativo
12 1 Mauricio Luiz Viani
</pre> 
13 1 Mauricio Luiz Viani
14 3 Mauricio Luiz Viani
h3. Selecionar branch
15 1 Mauricio Luiz Viani
16 1 Mauricio Luiz Viani
<pre>
17 1 Mauricio Luiz Viani
$ git checkout <nome_do_branch>
18 1 Mauricio Luiz Viani
19 1 Mauricio Luiz Viani
Ativa o branch como padrão
20 1 Mauricio Luiz Viani
</pre> 
21 1 Mauricio Luiz Viani
22 3 Mauricio Luiz Viani
h3. Criar branch
23 1 Mauricio Luiz Viani
24 1 Mauricio Luiz Viani
<pre>
25 3 Mauricio Luiz Viani
$ git branch <nome_do_branch>
26 1 Mauricio Luiz Viani
27 3 Mauricio Luiz Viani
Posicionar no branch a partir do qual será gerado o novo branch. Ex: master
28 3 Mauricio Luiz Viani
</pre> 
29 1 Mauricio Luiz Viani
30 3 Mauricio Luiz Viani
h3. Excluir branch
31 1 Mauricio Luiz Viani
32 1 Mauricio Luiz Viani
<pre>
33 3 Mauricio Luiz Viani
$ git branch -d <nome_do_branch>
34 1 Mauricio Luiz Viani
35 3 Mauricio Luiz Viani
Use -D para forçar exclusão do branch mesmo que existam diferenças
36 1 Mauricio Luiz Viani
</pre>
37 1 Mauricio Luiz Viani
38 3 Mauricio Luiz Viani
h3. Mesclar branches
39 1 Mauricio Luiz Viani
40 1 Mauricio Luiz Viani
<pre>
41 3 Mauricio Luiz Viani
$ git merge <nome_branch_mesclar>
42 1 Mauricio Luiz Viani
43 3 Mauricio Luiz Viani
Posicionar no branch que receberá o merge
44 3 Mauricio Luiz Viani
Em caso de conflito fazer git mergetool
45 1 Mauricio Luiz Viani
</pre> 
46 1 Mauricio Luiz Viani
47 3 Mauricio Luiz Viani
h3. Criar um branch a partir de uma tag
48 2 Mauricio Luiz Viani
49 1 Mauricio Luiz Viani
<pre>
50 3 Mauricio Luiz Viani
$ git checkout -b <nome-do-branch> tags/<nome-da-tag>
51 1 Mauricio Luiz Viani
</pre>
52 1 Mauricio Luiz Viani
53 3 Mauricio Luiz Viani
h3. Posicionar um branch em uma revisão
54 1 Mauricio Luiz Viani
55 1 Mauricio Luiz Viani
<pre>
56 3 Mauricio Luiz Viani
$ git reset --hard <hash-da-revisao>
57 3 Mauricio Luiz Viani
$ git reset --hard HEAD
58 1 Mauricio Luiz Viani
</pre>
59 2 Mauricio Luiz Viani
60 3 Mauricio Luiz Viani
h3. Commitar uma revisão qualquer sobre um branch
61 1 Mauricio Luiz Viani
62 1 Mauricio Luiz Viani
<pre>
63 3 Mauricio Luiz Viani
$ git cherry-pick --edit <hash-da-revisao>
64 2 Mauricio Luiz Viani
65 3 Mauricio Luiz Viani
Posicionar primeiramente no branch que receberá o commit
66 2 Mauricio Luiz Viani
</pre>
67 2 Mauricio Luiz Viani
68 3 Mauricio Luiz Viani
------
69 1 Mauricio Luiz Viani
70 3 Mauricio Luiz Viani
h2. Operações sobre o repositório
71 3 Mauricio Luiz Viani
72 3 Mauricio Luiz Viani
h3. Exibir situação do repositório
73 3 Mauricio Luiz Viani
74 1 Mauricio Luiz Viani
<pre>
75 3 Mauricio Luiz Viani
$ git status
76 3 Mauricio Luiz Viani
77 3 Mauricio Luiz Viani
Lista a situação do repositório, mostrando o ramo ativo, posição do ponteiro do ramo em 
78 3 Mauricio Luiz Viani
relação ao remoto, arquivos modificados e arquivos pendentes de commit
79 1 Mauricio Luiz Viani
</pre>
80 1 Mauricio Luiz Viani
81 3 Mauricio Luiz Viani
h3. Adicionar um servidor remoto
82 1 Mauricio Luiz Viani
83 1 Mauricio Luiz Viani
<pre>
84 1 Mauricio Luiz Viani
$ git remote add <nome-repositorio> <caminho>
85 1 Mauricio Luiz Viani
86 1 Mauricio Luiz Viani
Exemplo:
87 1 Mauricio Luiz Viani
88 1 Mauricio Luiz Viani
$ git remote add repo-externo https://github.com/ComunidadeExpresso/expressomobile.git
89 1 Mauricio Luiz Viani
</pre>
90 1 Mauricio Luiz Viani
91 3 Mauricio Luiz Viani
h3. Atualizar repositório local com a versão mais recente do repositório remoto
92 1 Mauricio Luiz Viani
93 1 Mauricio Luiz Viani
<pre>
94 1 Mauricio Luiz Viani
$ git pull
95 1 Mauricio Luiz Viani
96 1 Mauricio Luiz Viani
Posicionar no branch que receberá as atualizações
97 1 Mauricio Luiz Viani
</pre>
98 1 Mauricio Luiz Viani
99 3 Mauricio Luiz Viani
h3. Enviar dados do branch para o servidor remoto
100 1 Mauricio Luiz Viani
101 1 Mauricio Luiz Viani
<pre>
102 1 Mauricio Luiz Viani
$ git push
103 1 Mauricio Luiz Viani
104 1 Mauricio Luiz Viani
Posicionar no branch que será origem do envio
105 1 Mauricio Luiz Viani
106 1 Mauricio Luiz Viani
ou:
107 1 Mauricio Luiz Viani
108 1 Mauricio Luiz Viani
$ git push <nome-repositorio> <nome_branch>
109 1 Mauricio Luiz Viani
110 1 Mauricio Luiz Viani
Exemplo: git push origin master
111 1 Mauricio Luiz Viani
</pre> 
112 1 Mauricio Luiz Viani
113 3 Mauricio Luiz Viani
h3. Ver o log
114 1 Mauricio Luiz Viani
115 1 Mauricio Luiz Viani
<pre>
116 1 Mauricio Luiz Viani
$ git log
117 1 Mauricio Luiz Viani
$ git log -4
118 1 Mauricio Luiz Viani
</pre>
119 1 Mauricio Luiz Viani
120 1 Mauricio Luiz Viani
h3. Exibir informações do repositório remoto
121 1 Mauricio Luiz Viani
122 3 Mauricio Luiz Viani
<pre>
123 1 Mauricio Luiz Viani
$ git remote show <nome-repositorio>
124 1 Mauricio Luiz Viani
125 1 Mauricio Luiz Viani
Exemplo: git remote show origin
126 1 Mauricio Luiz Viani
</pre>
127 1 Mauricio Luiz Viani
128 1 Mauricio Luiz Viani
h3. Atualizar repositório local com últimas atualizações dos remotos
129 1 Mauricio Luiz Viani
130 3 Mauricio Luiz Viani
<pre>
131 1 Mauricio Luiz Viani
$ git fetch --all
132 1 Mauricio Luiz Viani
</pre>
133 1 Mauricio Luiz Viani
134 1 Mauricio Luiz Viani
h3. Salvar as atualizações locais antes de atualizar o repositório
135 1 Mauricio Luiz Viani
136 3 Mauricio Luiz Viani
<pre>
137 1 Mauricio Luiz Viani
$ git pull --rebase
138 1 Mauricio Luiz Viani
139 4 Mauricio Luiz Viani
Irá salvar as alterações locais, atualizar o repositório local a partir do remoto e reaplicar as 
140 4 Mauricio Luiz Viani
atualizações locais
141 3 Mauricio Luiz Viani
</pre>
142 3 Mauricio Luiz Viani
143 9 Mauricio Luiz Viani
h3. Listar dados estatísticos de revisões
144 9 Mauricio Luiz Viani
145 9 Mauricio Luiz Viani
<pre>
146 9 Mauricio Luiz Viani
$ git log --no-merges --author="Nome Completo" --stat --pretty=oneline  db00991..001eb43
147 9 Mauricio Luiz Viani
</pre>
148 9 Mauricio Luiz Viani
149 3 Mauricio Luiz Viani
---------
150 3 Mauricio Luiz Viani
151 3 Mauricio Luiz Viani
h2. Operações sobre arquivos
152 3 Mauricio Luiz Viani
153 3 Mauricio Luiz Viani
h3. Adicionar arquivos na área de staging 
154 3 Mauricio Luiz Viani
155 3 Mauricio Luiz Viani
<pre>
156 3 Mauricio Luiz Viani
$ git add <arquivo>
157 3 Mauricio Luiz Viani
$ git add *
158 3 Mauricio Luiz Viani
$ git add --all
159 3 Mauricio Luiz Viani
160 3 Mauricio Luiz Viani
Irá marcar os arquivos modificados como prontos para serem enviados ao repositório local (commit)
161 3 Mauricio Luiz Viani
162 3 Mauricio Luiz Viani
</pre>
163 3 Mauricio Luiz Viani
164 3 Mauricio Luiz Viani
h3. Remover arquivos do repositório
165 1 Mauricio Luiz Viani
166 1 Mauricio Luiz Viani
<pre>
167 3 Mauricio Luiz Viani
$ git rm <arquivo>
168 1 Mauricio Luiz Viani
$ git rm <pasta>
169 1 Mauricio Luiz Viani
</pre>
170 3 Mauricio Luiz Viani
171 3 Mauricio Luiz Viani
h3. Reverter a atualização em um arquivo
172 3 Mauricio Luiz Viani
173 3 Mauricio Luiz Viani
<pre>
174 3 Mauricio Luiz Viani
$ git checkout <arquivo>
175 3 Mauricio Luiz Viani
</pre>
176 3 Mauricio Luiz Viani
177 3 Mauricio Luiz Viani
h3. Commit dos arquivos da área de staging
178 3 Mauricio Luiz Viani
179 3 Mauricio Luiz Viani
<pre>
180 3 Mauricio Luiz Viani
$ git commit -m "Issue #<nnnn> - <Comentários das alterações>"
181 3 Mauricio Luiz Viani
</pre>
182 3 Mauricio Luiz Viani
183 3 Mauricio Luiz Viani
Onde <nnnn> é o número da Issue a que se refere o commit
184 3 Mauricio Luiz Viani
185 3 Mauricio Luiz Viani
Exemplo:
186 3 Mauricio Luiz Viani
187 3 Mauricio Luiz Viani
<pre>
188 3 Mauricio Luiz Viani
$ git commit -m "Issue #1885 - Implementa o construtor da classe Imap"
189 3 Mauricio Luiz Viani
190 4 Mauricio Luiz Viani
O uso do número da issue no comentário do commit fará com que o Redmine anote no histórico da issue 
191 4 Mauricio Luiz Viani
o número da revisão do commit
192 3 Mauricio Luiz Viani
193 4 Mauricio Luiz Viani
Caso uma mensagem de commit esteja fora do padrão, o servidor irá retornar um aviso de erro e o push 
194 4 Mauricio Luiz Viani
não será efetivado
195 3 Mauricio Luiz Viani
</pre>
196 3 Mauricio Luiz Viani
197 3 Mauricio Luiz Viani
h3. Colocar alterações locais em área temporária
198 3 Mauricio Luiz Viani
199 3 Mauricio Luiz Viani
<pre>
200 1 Mauricio Luiz Viani
$ git stash -u -a
201 3 Mauricio Luiz Viani
202 3 Mauricio Luiz Viani
Irá salvar as atualizações locais e retornar o repositório à posição da última sincronização
203 1 Mauricio Luiz Viani
</pre>
204 1 Mauricio Luiz Viani
205 3 Mauricio Luiz Viani
h3. Retornar alterações na área temporária
206 1 Mauricio Luiz Viani
207 1 Mauricio Luiz Viani
<pre>
208 1 Mauricio Luiz Viani
$ git stash pop
209 1 Mauricio Luiz Viani
210 1 Mauricio Luiz Viani
$ git stash apply
211 1 Mauricio Luiz Viani
212 1 Mauricio Luiz Viani
Pode ser combinado com o identificador do pacote. Por exemplo:
213 1 Mauricio Luiz Viani
214 1 Mauricio Luiz Viani
$ git stash pop stash@{1}
215 1 Mauricio Luiz Viani
216 1 Mauricio Luiz Viani
</pre>
217 1 Mauricio Luiz Viani
218 1 Mauricio Luiz Viani
h3. Visualizar diferenças
219 1 Mauricio Luiz Viani
220 1 Mauricio Luiz Viani
<pre>
221 1 Mauricio Luiz Viani
$ git diff <branch_origem> <branch_destino>
222 1 Mauricio Luiz Viani
223 1 Mauricio Luiz Viani
$ git diff <commit> <commit>
224 1 Mauricio Luiz Viani
225 1 Mauricio Luiz Viani
$ git diff <arquivo>
226 1 Mauricio Luiz Viani
</pre>
227 1 Mauricio Luiz Viani
228 1 Mauricio Luiz Viani
h3. Aplicar um patch
229 1 Mauricio Luiz Viani
230 1 Mauricio Luiz Viani
<pre>
231 1 Mauricio Luiz Viani
$ patch -p1 -i <arquivo-diff>
232 3 Mauricio Luiz Viani
233 3 Mauricio Luiz Viani
Gere o arquivo de diferenças com o comando git diff
234 4 Mauricio Luiz Viani
</pre>
235 4 Mauricio Luiz Viani
236 8 Mauricio Luiz Viani
h3. Corrigir a descrição do último commit antes do push
237 8 Mauricio Luiz Viani
238 8 Mauricio Luiz Viani
<pre>
239 8 Mauricio Luiz Viani
$ git commit --amend
240 8 Mauricio Luiz Viani
</pre>
241 8 Mauricio Luiz Viani
242 8 Mauricio Luiz Viani
h3. Corrigir a descrição do último commit após o push
243 8 Mauricio Luiz Viani
244 8 Mauricio Luiz Viani
<pre>
245 8 Mauricio Luiz Viani
$ git commit --amend
246 8 Mauricio Luiz Viani
247 8 Mauricio Luiz Viani
$ git push --force-with-lease
248 8 Mauricio Luiz Viani
</pre>
249 8 Mauricio Luiz Viani
250 4 Mauricio Luiz Viani
-----
251 4 Mauricio Luiz Viani
252 4 Mauricio Luiz Viani
h2. Tags
253 4 Mauricio Luiz Viani
254 4 Mauricio Luiz Viani
h3. Criar uma tag
255 4 Mauricio Luiz Viani
256 4 Mauricio Luiz Viani
<pre>
257 4 Mauricio Luiz Viani
$ git tag <nome-da-tag>
258 4 Mauricio Luiz Viani
259 4 Mauricio Luiz Viani
Posicionar no branch que será origem da tag
260 4 Mauricio Luiz Viani
</pre>
261 4 Mauricio Luiz Viani
262 4 Mauricio Luiz Viani
h3. Remover uma tag
263 4 Mauricio Luiz Viani
264 4 Mauricio Luiz Viani
<pre>
265 4 Mauricio Luiz Viani
$ git tag -d <nome-da-tag>
266 4 Mauricio Luiz Viani
</pre>
267 4 Mauricio Luiz Viani
268 4 Mauricio Luiz Viani
h3. Enviar tags para o repositório remoto
269 4 Mauricio Luiz Viani
270 4 Mauricio Luiz Viani
<pre>
271 4 Mauricio Luiz Viani
$ git push --tags
272 3 Mauricio Luiz Viani
</pre>
273 3 Mauricio Luiz Viani
274 3 Mauricio Luiz Viani
------
275 3 Mauricio Luiz Viani
276 6 Mauricio Luiz Viani
h2. Softwares com interface gráfica para git
277 1 Mauricio Luiz Viani
278 1 Mauricio Luiz Viani
<pre>
279 7 Mauricio Luiz Viani
* git-gui
280 7 Mauricio Luiz Viani
* gitk
281 1 Mauricio Luiz Viani
</pre>