-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathp0014_branch.html
181 lines (181 loc) · 7.79 KB
/
p0014_branch.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="estilo.css">
<link rel="icon" href="img/git_icon.png">
<link href="https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;500;600;800&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Source+Code+Pro&display=swap" rel="stylesheet">
<meta name="keywords" content="danielle8farias, git, branch, checkout, merge, tutorial, linux">
<title>git branch</title>
</head>
<body>
<div class="corpo-central">
<div class="titulo">
<h1>>_ git branch: O que são branches (ramos) no Git?</h1>
</div>
<article class="caixa-texto">
<p>
De maneira simplificada, os <strong>ramos (branches)</strong> no Git são semelhantes a um ramo de uma árvore, onde o tronco seria a base do código. Desse modo é possível criar diversos ramos e fazer alterações, enquanto a base permanece intacta. Por padrão o ramo principal é denominado de <strong>main</strong> (master, na versão antiga).
</p>
<img class="fluxo-git" src="img/p0014-0.png" alt="ramos no git">
<p>
O novo ramo <strong>herda todos os commits</strong> do ramo anterior (onde ele foi criado).
</p>
<h2>
Criando branch
</h2>
<p>
Para criar um <strong>branch</strong>, digite
</p>
<code class="caixa-codigo">
$ git branch <nome_do_ramo>
</code>
<ul class="observacao">
<li>
<strong>$</strong> indica que você deve usar o <strong>usuário comum</strong> para fazer essa operação.
</li>
<li>
escolha um nome para o seu ramo sem os sinais <strong>< ></strong>.
</li>
</ul>
<p>
Para ir até o <strong>branch</strong> criado
</p>
<code class="caixa-codigo">
$ git checkout <nome_do_ramo>
</code>
<p>
Para usar um atalho para esses dois comandos acima (criar o novo ramo e ser imediatamente transferida para ele)
</p>
<code class="caixa-codigo">
$ git checkout -b <nome_do_ramo>
</code>
<p>
Desse modo o <strong>branch</strong> será criado e em seguida irá transferir você para lá.
</p>
<h2>
Listar branch
</h2>
<p>
Para listar todos os <strong>branches</strong>, usa-se o comando:
</p>
<code class="caixa-codigo">
$ git branch -a
</code>
<p>
Para saber em qual <strong>branch</strong> você está, digite:
</p>
<code class="caixa-codigo">
$ git branch
</code>
<h2>
Excluindo branch
</h2>
<p>
Para excluir um <strong>branch</strong>, digite
</p>
<code class="caixa-codigo">
$ git branch -d <nome_do_ramo>
</code>
<h2>
Excluindo branch remoto
</h2>
<code class="caixa-codigo">
$ git push origin --delete <nome_do_ramo>
</code>
<h2>
Unindo branch
</h2>
<p>
Para unir todas as modificações que foram feitas em diferentes <strong>branches</strong>, ao ramo principal do projeto, digite
</p>
<code class="caixa-codigo">
$ git checkout main
</code>
<p>
para ir até o <strong>branch principal</strong> ou
</p>
<code class="caixa-codigo">
$ git checkout <nome_do_ramo>
</code>
<p>
para ir até o <strong>branch</strong> de destino das alterações.
</p>
<p>
Então digite
</p>
<code class="caixa-codigo">
$ git merge <nome_do_ramo_onde_as_alterações_foram_feitas>
</code>
<p>
O fluxo dos <strong>branches</strong> será algo como a figura abaixo (unindo <strong>branch 1</strong> a <strong>main</strong>).
</p>
<img class="fluxo-git" src="img/p0014-1.png" alt="merge">
<p>
Para visualizar os <strong>commits de merge</strong>:
</p>
<code class="caixa-codigo">
$ git log --merges
</code>
<h2>
Resolvendo conflitos ao unir os ramos no git
</h2>
<p>
Exemplo:
</p>
<p>
Supondo que temos um arquivo na <strong>branch main</strong> com o seguinte código
</p>
<img class="exemplo" src="img/p0014-2.png" alt="versão 1 do código py">
<p>
E o mesmo arquivo na <strong>branch teste</strong>, com o código:
</p>
<img class="exemplo" src="img/p0014-3.png" alt="versão 2 do código py">
<p>
Ao tentar fazer o <strong>merge</strong> o git anunciará o conflito:
</p>
<code class="caixa-codigo">
Mesclagem automática de <arquivo>
</code>
<code class="caixa-codigo">
CONFLITO (conteúdo): conflito de mesclagem em <arquivo>
</code>
<code class="caixa-codigo">
Automatic merge failed; fix conflicts and then commit the result.
</code>
<p>
Desse modo, é preciso primeiro resolver a situação conflitante (escolhendo as partes do código que deseja manter) e em seguida fazer o <strong>commit</strong>. Só após isso a união dos branches (ramos) será concluída.
</p>
<p>
Caso deseje desfazer esse processo, digite:
</p>
<code class="caixa-codigo">
$ git merge --abort
</code>
</article>
<nav>
<div class="nav-esquerda">
<a href="p0013_tag.html">
< anterior
</a>
</div>
<div>
<a href="index.html">
voltar ao índice
</a>
</div>
<div class="nav-direita">
<a href="p0015_checkout.html">
próximo >
</a>
</div>
</nav>
<footer>
by danielle8farias
</footer>
</div>
</body>
</html>