-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathusinggit.html
More file actions
95 lines (65 loc) · 6.19 KB
/
usinggit.html
File metadata and controls
95 lines (65 loc) · 6.19 KB
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html >
<head>
<title>Tutorial de Git</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="site.css" />
</head>
<body>
<div id="top" class="center">
<h1 class="title">Tutorial de Git</h1>
</div>
<div id="main">
<div id="menu" class="center">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="usinggit.html">Utilizando o Git</a></li>
<li><a href="tortoisegit.html">TortoiseGit</a></li>
<li><a href="other.html">Outros clientes Git</a></li>
</ul>
</div>
<div id="content">
<h2 class="title">Usando o Git</h1>
<h3>1º Passo - Conta GitHub</h3>
<h3>2º Passo - Fazer download e instalar GitBash</h3>
<p>Para fazer download de uma aplicação cliente git (consola) pode-se visitar <a href="http://git-scm.com/">http://git-scm.com/</a>.</p>
<h3>3º Passo - Criar repositório local</h3>
<p>Criar uma pasta, em qualquer localização do file system, onde se pretende ter o projecto guardado (evitar caminhos com caracteres não US-ASCII e espaços). </p>
<p>Usando o GitBash, instalado no 2º passo, vamos "caminhar" para a directoria do projecto utilizando comandos conhecidos do UNIX (cd) e dentro da directoria do projecto executar o comando <span class="instruction">git clone https://<url_do_repositorio></span>, este comando irá criar uma nova pasta com o nome do projecto no GitHub, que servirá de pasta base ao controlo de versões git, e vai ligar essa pasta com o repositório remoto e irá funcionar também como repositório local.</p>
<img src="images/img1.png" class="center"/>
<p><span class="bold">Nota:</span> É possível criar um repositório local sem ligar a nenhum repositório remoto usando o comando <span class="instruction">git init</span>.</p>
<h3>4º Passo - Primeiro Commit</h3>
<p>Vamos então fazer o nosso primeiro commit, para tal vamos primeiro configurar o git, informação esta que vai servir como identificação nos logs dos commits.</p>
<p><a id="gitconfig"></a>Teremos então que efectuar dois comandos:</p>
<ul>
<li><span class="instruction">git config --global user.name "<nome>"</span></li>
<li><span class="instruction">git config --global user.email <email></span></li>
</ul>
<p><span class="bold">Nota:</span> O email deverá coincidir com o da conta do GitHub para que este mostre na aplicação web o utilizador correcto, que fez o commit.</p>
<p>Antes de se fazer commit é necessário dizer quais os ficheiros que vamos adicionar através do commando <span class="instruction">git add</span>. A maneira mais rápida para adicionar todos os ficheiros é de fazer na raiz do repositório <span class="instruction">git add .</span></p>
<p>Assim que se adicionar todos os ficheiros para o commit podemos então executar o comando <span class="instruction">git commit -m "<Mensagem>" -a</span>.
Neste comando existem dois parâmetros em utilização:</p>
<ul>
<li>O parâmetro 'm' que serve para indicar a mensagem associada ao commit, este é obrigatório. Se não for indicado ele irá utilizar um editor de texto para pedir a mensagem.</li>
<li>O parâmetro 'a' serve para indicar que queremos adicionar todos os ficheiros alterados e os removidos. Atenção, não adiciona novos ficheiros para isso deve-se sempre utilizar o <span class="instruction">git add</span>.</li>
</ul>
<img src="images/img2.png" class="center"/>
<h3>5º Passo - Primeiro Push</h3>
<p>No git um commit não implica uma alteração no repositório remoto, é o comando <span class="instruction">git push</span> que irá fazer isso.</p>
<p>Caso o repositório local já se encontre ligado a um remoto basta fazer <span class="instruction">git push</span>, irá ser pedida a password da conta, e se tudo correr bem o push irá ser concluído. </p>
<p><span class="bold">Nota:</span> Se não se encontrar ligado deve-se indicar no comando para que repositório se irá fazer o push, isto também pode ser usado num repositório ligado para fazer o push num outro repositório (<span class="instruction">git push https://<url_do_repositorio></span>). Para ligar o repositório local a um remoto, para evitar tar sempre a usar no comando <span class="instruction">git push</span>, deve-se usar o comando <span class="instruction">git remote add <nome_do_branch> <url_do_repositorio></span>, para fazer a ligação.</p>
<img src="images/img3.png" class="center"/>
<p>O push poderá não correr bem se o repositório local não estiver sincronizado com o repositório remoto, para sincronizar é preciso fazer um pull (o qual poderá originar conflitos). Depois de concluído o pull pode-se então fazer novamente o push. Em caso de conflito aconselha-se o uso de ferramentas que facilitam a resolução destes, nomeadamente o TortoiseGit. Para saber como resolver conflictos por linha de comandos <a href="#conflictos">clique aqui</a>.</p>
<h3>6º Passo - Sincronizar repositório local com o remoto</h3>
<p>Para sincronizar o repositório local com o remoto é utilizado o comando <span class="instruction">git pull</span> que irá buscar a revisão HEAD da branch remota, à qual o repositório local se encontra associado.</p>
<a id="conflictos"></a><h3>Resolvendo conflictos</h3>
<p>A quando de um <span class="instruction">git pull</span> é possível acontecer conflictos, caso duas (ou mais) pessoas tenham alterado o mesmo ficheiro.</p>
<img src="images/imgc1.png" class="center"/>
<p>Para resolver estes conflictos, a maneira mais simples, é de escolher uma das versões, recorrendo ao comando <span class="instruction">git checkout --theirs|--ours <nome_ficheiro></span></p>
<img src="images/imgc2.png" class="center"/>
<p>Depois de resolvido o conflito tem que se fazer commit para que o repositório local fique com a versão actualizada, ou seja, a versão que resolveu o conflicto.</p>
<img src="images/imgc3.png" class="center"/>
</div>
</div>
</body>
</html>