-
Notifications
You must be signed in to change notification settings - Fork 11
/
post.html
92 lines (92 loc) · 7.55 KB
/
post.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
<p>Ultimamente estou envolvido em vários projetos ao mesmo tempo com várias equipes diferentes, então controle de versão é essencial.</p>
<p>Segue um manualzinho básico para iniciar com o git, espero atualizar e complementar este passo-a-passo com mais exemplos logo.</p>
<p>O git serve para versionamento local, você pode compartilhar de algumas maneiras, a mais fácil é com serviços online. Neste exemplo vou usar o <a href="http://github.com" target="_blank" title="github - Social Coding">github</a>, testei também o <a href="http://projectlocker.com/" target="_blank" title="Project Locker">projectlocker</a>, que dá repositórios private grátis, mas não gostei. Outro que parece legal é o <a href="http://codaset.com/" target="_blank" title="Codaset">Codaset</a>, ainda não testei.</p>
<h3>1) Instalar git</h3>
<p><code>$ sudo apt-get install git-core</code></p>
<p>É necessário gerar uma chave ssh e fazer um cadastro em algum repositório git. ( Esta etapa não é exatamente sobre o git, mas sobre a segurança dos repositórios. )</p>
<p>Confira se vc já tem alguma chave com um "ls ~/.ssh/", se já existir uma você pode utilizá-la ou gerar uma nova:</p>
<p><code>ssh-keygen -t rsa -C "comment"</code></p>
<p>"comment" é só um lembrete para saber do que se trata a chave, normalmente usa-se o seu nome de usuário do serviço que vai usar, por exemplo o github.</p>
<p>Falando nisso, está na hora de criar um usuário lá (http://github.com), vai lá que eu espero...</p>
<p>Depois de logado vá para <a href="https://github.com/account">https://github.com/account</a> e clique em "SSH Public Keys" e "add another public key". A cópia da chave precisa ser exata(eu ia escrever que 'precisa ser precisa' mas é feio né), então pode-se fazer assim:</p>
<p><code>sudo apt-get install xclip
cat ~/.ssh/id_rsa.pub | xclip -sel clip</code></p>
<p>Aí é só colar com um Ctrl+V normal. Agora já dá para se comunicar com o github:</p>
<p><code>ssh git@github.com</code></p>
<p>Vai aparecer "ERROR: Hi codexico! You've successfully authenticated, but GitHub does not provide shell access", não se assuste com o ERROR, o que interessa é que o github te reconheceu. Qualquer duvida tem o help do github: <a href="http://help.github.com/linux-key-setup/" target="_blank" title="Generating SSH keys (Linux)">Generating SSH keys (Linux).</a></p>
<p>Por padrão o git vai pegar o usuário do sistema, para que seu nome de usuário do github apareça corretamente use os comandos:</p>
<p><code>git config --global user.name "Your Name"
git config --global user.email codexico@gmail.com</code></p>
<h3>2) Criar Projeto no github</h3>
<p>1) Podemos criar um novo projeto ou usar um existente. Para criar um novo vá até o github e no alto da página clique em "Dashboard" e depois em "New Repository".</p>
<p>Crie um espaço para o projeto no comnputador:</p>
<p><code>$ mkdir nomedoprojeto
$ cd nomedodiretorio</code></p>
<p>2) Iniciar um git neste diretório:</p>
<p><code>$ git init</code></p>
<p>Saída do comando:</p>
<p><code>Initialized empty Git repository in /nomedodiretorio/.git/</code></p>
<p>Deve aparecer um diretorio oculto <strong>.git</strong>, neste <strong>.git</strong> ficam as configurações que serão usadas para este projeto.</p>
<p>Por exemplo:</p>
<p><code>$ ls .git
branches config description FETCH_HEAD HEAD hooks index info logs
objects refs</code></p>
<p>3) Adicionar o repositório, neste exemplo vou usar um que criei para este tutorial, pode ser também o repositório criado no passo 1, o endereço fica na página do projeto (neste caso https://github.com/codexico/tutorial-github):</p>
<p><code>$ git remote add origin git@github.com:codexico/tutorial-github.git</code></p>
<p>Formato do comando:</p>
<p>"git remote add" adiciona um repositório ao git que foi iniciado neste diretório, "origin" é o apelido para o projeto, "git@github.com:codexico/tutorial-github.git" é o endereço do projeto.</p>
<p>Resultado:(apareceu a parte <em>[remote "origin"]</em>)</p>
<p><code>$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@github.com:codexico/tutorial-github.git
fetch = +refs/heads/*:refs/remotes/origin/*</code></p>
<p>4) Baixar(pull=puxar) o projeto:</p>
<p><code>$ git pull origin master</code></p>
<p>Formato do comando:</p>
<p><code>git pull apelidoDaOrigem apelidoParaDestino</code></p>
<p>Saída do comando:</p>
<p><code>remote: Counting objects: 52278, done.
remote: Compressing objects: 100% (10917/10917), done.
remote: Total 52278 (delta 40975), reused 51715 (delta 40669)
Receiving objects: 100% (52278/52278), 8.33 MiB | 189 KiB/s, done.
Resolving deltas: 100% (40975/40975), done.
From git@github.com:codexico/tutorial-github.git
* branch master -> FETCH_HEAD</code></p>
<h3>3) Usar o git</h3>
<p>Exemplo (escolha um nome diferente para o arquivo teste):</p>
<p><code>$ touch testegit</code></p>
<p>1) Adicionar as alterações:</p>
<p>- Podemos adicionar somente uma alteração:</p>
<p><code>$ git add testegit</code></p>
<p>- Ou adicionar todas as alterações:</p>
<p><code>$ git add .</code></p>
<p>Neste passo as alterações ainda não estão sob o controle de versão, elas somente foram adicionadas para quando der um commit.</p>
<p>2) Comitar as alterações:</p>
<p><code>$ git commit -m "mensagem teste para o tutorial"</code></p>
<p>É obrigatório acrescentar uma mensagem.</p>
<p>Saída do comando:</p>
<p><code>[master de2f5ce] teste para o tutorial
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 testegit</code></p>
<p>Agora as alterações foram adicionadas ao controle de versão. Mas ainda estão somente na máquina local.</p>
<p>3) Enviar(push=empurrar) as alterações:</p>
<p><code>$ git push origin master</code></p>
<p>Saída do comando:</p>
<p><code>Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 288 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@github.com:codexico/tutorial-github.git
3be4c21..de2f5ce master -> master</code></p>
<p>Se durante o tempo em que fez o pull e o push outra pessoa que também participe do projeto fez alterações o push será rejeitado. Então é necessário atualizar o projeto local antes de enviar novas alterações.</p>
<p><code>$ git fetch origin</code></p>
<p>Atualizar antes de enviar é uma boa prática a ser seguida para quem usa svn ou cvs e é obrigatória no git.</p>
<p>4)Pronto, confira as alterações no navegador acessando o endereço do projeto (http://github.com/codexico/tutorial-github neste exemplo).</p>
<p>Dica final: para que não precise digitar sempre a senha do ssh siga os passos desse link: http://help.github.com/working-with-key-passphrases/</p>
<p>Atualizado em 09/09/2010, mudei o repositório e adicionei instruções para gerar a chave ssh.</p>