Projeto

Geral

Perfil

Gitcomandos » Histórico » Versão 14

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