Projeto

Geral

Perfil

Gitcomandos » Histórico » Versão 13

Mauricio Luiz Viani, 31/01/2024 17:54 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 10 Mauricio Luiz Viani
h3. Remover um branch do repositório principal
69 10 Mauricio Luiz Viani
70 10 Mauricio Luiz Viani
<pre>
71 10 Mauricio Luiz Viani
$ git push origin --delete <remoteBranchName>
72 10 Mauricio Luiz Viani
</pre>
73 10 Mauricio Luiz Viani
74 3 Mauricio Luiz Viani
------
75 1 Mauricio Luiz Viani
76 3 Mauricio Luiz Viani
h2. Operações sobre o repositório
77 3 Mauricio Luiz Viani
78 3 Mauricio Luiz Viani
h3. Exibir situação do repositório
79 3 Mauricio Luiz Viani
80 1 Mauricio Luiz Viani
<pre>
81 3 Mauricio Luiz Viani
$ git status
82 3 Mauricio Luiz Viani
83 3 Mauricio Luiz Viani
Lista a situação do repositório, mostrando o ramo ativo, posição do ponteiro do ramo em 
84 3 Mauricio Luiz Viani
relação ao remoto, arquivos modificados e arquivos pendentes de commit
85 1 Mauricio Luiz Viani
</pre>
86 1 Mauricio Luiz Viani
87 3 Mauricio Luiz Viani
h3. Adicionar um servidor remoto
88 1 Mauricio Luiz Viani
89 1 Mauricio Luiz Viani
<pre>
90 1 Mauricio Luiz Viani
$ git remote add <nome-repositorio> <caminho>
91 1 Mauricio Luiz Viani
92 1 Mauricio Luiz Viani
Exemplo:
93 1 Mauricio Luiz Viani
94 1 Mauricio Luiz Viani
$ git remote add repo-externo https://github.com/ComunidadeExpresso/expressomobile.git
95 1 Mauricio Luiz Viani
</pre>
96 1 Mauricio Luiz Viani
97 3 Mauricio Luiz Viani
h3. Atualizar repositório local com a versão mais recente do repositório remoto
98 1 Mauricio Luiz Viani
99 1 Mauricio Luiz Viani
<pre>
100 1 Mauricio Luiz Viani
$ git pull
101 1 Mauricio Luiz Viani
102 1 Mauricio Luiz Viani
Posicionar no branch que receberá as atualizações
103 1 Mauricio Luiz Viani
</pre>
104 1 Mauricio Luiz Viani
105 3 Mauricio Luiz Viani
h3. Enviar dados do branch para o servidor remoto
106 1 Mauricio Luiz Viani
107 1 Mauricio Luiz Viani
<pre>
108 1 Mauricio Luiz Viani
$ git push
109 1 Mauricio Luiz Viani
110 1 Mauricio Luiz Viani
Posicionar no branch que será origem do envio
111 1 Mauricio Luiz Viani
112 1 Mauricio Luiz Viani
ou:
113 1 Mauricio Luiz Viani
114 1 Mauricio Luiz Viani
$ git push <nome-repositorio> <nome_branch>
115 1 Mauricio Luiz Viani
116 1 Mauricio Luiz Viani
Exemplo: git push origin master
117 1 Mauricio Luiz Viani
</pre> 
118 1 Mauricio Luiz Viani
119 3 Mauricio Luiz Viani
h3. Ver o log
120 1 Mauricio Luiz Viani
121 1 Mauricio Luiz Viani
<pre>
122 1 Mauricio Luiz Viani
$ git log
123 1 Mauricio Luiz Viani
$ git log -4
124 1 Mauricio Luiz Viani
</pre>
125 1 Mauricio Luiz Viani
126 1 Mauricio Luiz Viani
h3. Exibir informações do repositório remoto
127 1 Mauricio Luiz Viani
128 3 Mauricio Luiz Viani
<pre>
129 1 Mauricio Luiz Viani
$ git remote show <nome-repositorio>
130 1 Mauricio Luiz Viani
131 1 Mauricio Luiz Viani
Exemplo: git remote show origin
132 1 Mauricio Luiz Viani
</pre>
133 1 Mauricio Luiz Viani
134 1 Mauricio Luiz Viani
h3. Atualizar repositório local com últimas atualizações dos remotos
135 1 Mauricio Luiz Viani
136 3 Mauricio Luiz Viani
<pre>
137 1 Mauricio Luiz Viani
$ git fetch --all
138 1 Mauricio Luiz Viani
</pre>
139 1 Mauricio Luiz Viani
140 1 Mauricio Luiz Viani
h3. Salvar as atualizações locais antes de atualizar o repositório
141 1 Mauricio Luiz Viani
142 3 Mauricio Luiz Viani
<pre>
143 1 Mauricio Luiz Viani
$ git pull --rebase
144 1 Mauricio Luiz Viani
145 4 Mauricio Luiz Viani
Irá salvar as alterações locais, atualizar o repositório local a partir do remoto e reaplicar as 
146 4 Mauricio Luiz Viani
atualizações locais
147 3 Mauricio Luiz Viani
</pre>
148 3 Mauricio Luiz Viani
149 9 Mauricio Luiz Viani
h3. Listar dados estatísticos de revisões
150 9 Mauricio Luiz Viani
151 9 Mauricio Luiz Viani
<pre>
152 9 Mauricio Luiz Viani
$ git log --no-merges --author="Nome Completo" --stat --pretty=oneline  db00991..001eb43
153 9 Mauricio Luiz Viani
</pre>
154 9 Mauricio Luiz Viani
155 3 Mauricio Luiz Viani
---------
156 3 Mauricio Luiz Viani
157 3 Mauricio Luiz Viani
h2. Operações sobre arquivos
158 3 Mauricio Luiz Viani
159 3 Mauricio Luiz Viani
h3. Adicionar arquivos na área de staging 
160 3 Mauricio Luiz Viani
161 3 Mauricio Luiz Viani
<pre>
162 3 Mauricio Luiz Viani
$ git add <arquivo>
163 3 Mauricio Luiz Viani
$ git add *
164 3 Mauricio Luiz Viani
$ git add --all
165 3 Mauricio Luiz Viani
166 3 Mauricio Luiz Viani
Irá marcar os arquivos modificados como prontos para serem enviados ao repositório local (commit)
167 3 Mauricio Luiz Viani
168 3 Mauricio Luiz Viani
</pre>
169 3 Mauricio Luiz Viani
170 3 Mauricio Luiz Viani
h3. Remover arquivos do repositório
171 1 Mauricio Luiz Viani
172 1 Mauricio Luiz Viani
<pre>
173 3 Mauricio Luiz Viani
$ git rm <arquivo>
174 1 Mauricio Luiz Viani
$ git rm <pasta>
175 1 Mauricio Luiz Viani
</pre>
176 3 Mauricio Luiz Viani
177 3 Mauricio Luiz Viani
h3. Reverter a atualização em um arquivo
178 3 Mauricio Luiz Viani
179 3 Mauricio Luiz Viani
<pre>
180 3 Mauricio Luiz Viani
$ git checkout <arquivo>
181 3 Mauricio Luiz Viani
</pre>
182 3 Mauricio Luiz Viani
183 3 Mauricio Luiz Viani
h3. Commit dos arquivos da área de staging
184 3 Mauricio Luiz Viani
185 3 Mauricio Luiz Viani
<pre>
186 3 Mauricio Luiz Viani
$ git commit -m "Issue #<nnnn> - <Comentários das alterações>"
187 3 Mauricio Luiz Viani
</pre>
188 3 Mauricio Luiz Viani
189 3 Mauricio Luiz Viani
Onde <nnnn> é o número da Issue a que se refere o commit
190 3 Mauricio Luiz Viani
191 3 Mauricio Luiz Viani
Exemplo:
192 3 Mauricio Luiz Viani
193 3 Mauricio Luiz Viani
<pre>
194 3 Mauricio Luiz Viani
$ git commit -m "Issue #1885 - Implementa o construtor da classe Imap"
195 3 Mauricio Luiz Viani
196 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 
197 4 Mauricio Luiz Viani
o número da revisão do commit
198 3 Mauricio Luiz Viani
199 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 
200 4 Mauricio Luiz Viani
não será efetivado
201 3 Mauricio Luiz Viani
</pre>
202 3 Mauricio Luiz Viani
203 3 Mauricio Luiz Viani
h3. Colocar alterações locais em área temporária
204 3 Mauricio Luiz Viani
205 3 Mauricio Luiz Viani
<pre>
206 1 Mauricio Luiz Viani
$ git stash -u -a
207 3 Mauricio Luiz Viani
208 3 Mauricio Luiz Viani
Irá salvar as atualizações locais e retornar o repositório à posição da última sincronização
209 1 Mauricio Luiz Viani
</pre>
210 1 Mauricio Luiz Viani
211 3 Mauricio Luiz Viani
h3. Retornar alterações na área temporária
212 1 Mauricio Luiz Viani
213 1 Mauricio Luiz Viani
<pre>
214 1 Mauricio Luiz Viani
$ git stash pop
215 1 Mauricio Luiz Viani
216 1 Mauricio Luiz Viani
$ git stash apply
217 1 Mauricio Luiz Viani
218 1 Mauricio Luiz Viani
Pode ser combinado com o identificador do pacote. Por exemplo:
219 1 Mauricio Luiz Viani
220 1 Mauricio Luiz Viani
$ git stash pop stash@{1}
221 1 Mauricio Luiz Viani
222 1 Mauricio Luiz Viani
</pre>
223 1 Mauricio Luiz Viani
224 1 Mauricio Luiz Viani
h3. Visualizar diferenças
225 1 Mauricio Luiz Viani
226 1 Mauricio Luiz Viani
<pre>
227 1 Mauricio Luiz Viani
$ git diff <branch_origem> <branch_destino>
228 1 Mauricio Luiz Viani
229 1 Mauricio Luiz Viani
$ git diff <commit> <commit>
230 1 Mauricio Luiz Viani
231 1 Mauricio Luiz Viani
$ git diff <arquivo>
232 1 Mauricio Luiz Viani
</pre>
233 1 Mauricio Luiz Viani
234 1 Mauricio Luiz Viani
h3. Aplicar um patch
235 1 Mauricio Luiz Viani
236 1 Mauricio Luiz Viani
<pre>
237 1 Mauricio Luiz Viani
$ patch -p1 -i <arquivo-diff>
238 3 Mauricio Luiz Viani
239 3 Mauricio Luiz Viani
Gere o arquivo de diferenças com o comando git diff
240 4 Mauricio Luiz Viani
</pre>
241 4 Mauricio Luiz Viani
242 8 Mauricio Luiz Viani
h3. Corrigir a descrição do último commit antes do 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
</pre>
247 8 Mauricio Luiz Viani
248 8 Mauricio Luiz Viani
h3. Corrigir a descrição do último commit após o push
249 8 Mauricio Luiz Viani
250 8 Mauricio Luiz Viani
<pre>
251 8 Mauricio Luiz Viani
$ git commit --amend
252 8 Mauricio Luiz Viani
253 8 Mauricio Luiz Viani
$ git push --force-with-lease
254 8 Mauricio Luiz Viani
</pre>
255 8 Mauricio Luiz Viani
256 13 Mauricio Luiz Viani
h3. Alterar o comentário de uma revisão antiga
257 13 Mauricio Luiz Viani
258 13 Mauricio Luiz Viani
<pre>
259 13 Mauricio Luiz Viani
$ git pull --rebase
260 13 Mauricio Luiz Viani
$ git rebase HEAD~5
261 13 Mauricio Luiz Viani
  (mostra 5 revisões e permite navegar sobre elas e alterar o comentário)
262 13 Mauricio Luiz Viani
$ git push -f
263 13 Mauricio Luiz Viani
</pre>
264 13 Mauricio Luiz Viani
265 13 Mauricio Luiz Viani
h3. Posicionar no commit anterior ao topo
266 13 Mauricio Luiz Viani
267 13 Mauricio Luiz Viani
<pre>
268 13 Mauricio Luiz Viani
$ git reset HEAD~1
269 13 Mauricio Luiz Viani
</pre>
270 13 Mauricio Luiz Viani
271 4 Mauricio Luiz Viani
-----
272 4 Mauricio Luiz Viani
273 4 Mauricio Luiz Viani
h2. Tags
274 4 Mauricio Luiz Viani
275 4 Mauricio Luiz Viani
h3. Criar uma tag
276 4 Mauricio Luiz Viani
277 4 Mauricio Luiz Viani
<pre>
278 4 Mauricio Luiz Viani
$ git tag <nome-da-tag>
279 4 Mauricio Luiz Viani
280 4 Mauricio Luiz Viani
Posicionar no branch que será origem da tag
281 4 Mauricio Luiz Viani
</pre>
282 4 Mauricio Luiz Viani
283 4 Mauricio Luiz Viani
h3. Remover uma tag
284 4 Mauricio Luiz Viani
285 4 Mauricio Luiz Viani
<pre>
286 4 Mauricio Luiz Viani
$ git tag -d <nome-da-tag>
287 4 Mauricio Luiz Viani
</pre>
288 4 Mauricio Luiz Viani
289 4 Mauricio Luiz Viani
h3. Enviar tags para o repositório remoto
290 4 Mauricio Luiz Viani
291 4 Mauricio Luiz Viani
<pre>
292 4 Mauricio Luiz Viani
$ git push --tags
293 3 Mauricio Luiz Viani
</pre>
294 3 Mauricio Luiz Viani
295 11 Mauricio Luiz Viani
h3. Remover uma tag no repositório remoto
296 11 Mauricio Luiz Viani
297 11 Mauricio Luiz Viani
<pre>
298 11 Mauricio Luiz Viani
$ git push --delete origin <nome-da-tag>
299 11 Mauricio Luiz Viani
</pre>
300 11 Mauricio Luiz Viani
301 11 Mauricio Luiz Viani
h3. Listar tags do repositório local
302 11 Mauricio Luiz Viani
303 11 Mauricio Luiz Viani
<pre>
304 11 Mauricio Luiz Viani
$ git tag
305 11 Mauricio Luiz Viani
</pre>
306 11 Mauricio Luiz Viani
307 12 Mauricio Luiz Viani
h3. Listar tags do repositório remoto
308 12 Mauricio Luiz Viani
309 12 Mauricio Luiz Viani
<pre>
310 12 Mauricio Luiz Viani
$ git ls-remote --tags origin
311 12 Mauricio Luiz Viani
</pre>
312 12 Mauricio Luiz Viani
313 3 Mauricio Luiz Viani
------
314 3 Mauricio Luiz Viani
315 6 Mauricio Luiz Viani
h2. Softwares com interface gráfica para git
316 1 Mauricio Luiz Viani
317 1 Mauricio Luiz Viani
<pre>
318 7 Mauricio Luiz Viani
* git-gui
319 7 Mauricio Luiz Viani
* gitk
320 1 Mauricio Luiz Viani
</pre>