Jump to content

Usando Git e Publicando seus projetos no GitHub


Grundor

Recommended Posts

  • L2JBr ADM

Olá Papangus, um bom tempo sem postar né?

Ultimamente estou envolvido em vários projetos ao mesmo tempo com várias pessoas diferentes, então controle de versão é essencial. Por isso resolvi criar esse tutorial, talvez possa ajudar os jovens desenvolvedores a começar a caminhar por uma trilha mais profissional e começar seus projetos de código aberto com mais facilidade.
O objetivo desse tutorial é fazer uma intrução ao Git e o Github para vocês, com conceitos e comandos bem básicos sobre o git e github.

Qual a diferença entre o Git e o Github?

O Git é um sistema de controle de versão (ou versionamento), assim como o SVN, porém encontrei nele uma certa velocidade e praticidade muito superiores ao SVN(assembla) .
Além disso ele é um VCS (do inglês version control system) ou ainda SCM (do inglês source code management) distribuído que está sendo cada vez mais usado, pois foca em velocidade e robustez.
Um sistema de controle de versão tem a finalidade de gerenciar as diferentes versões de um arquivo ou documento. É muito utilizado por empresas de desenvolvimento de software que possuem grandes equipes e precisam manter organizado, documentado e arquivado tudo o que foi e está sendo implementado no software. Como exemplo de projetos que utilizam o Git temos:

This is the hidden content, please
,
This is the hidden content, please
,
This is the hidden content, please
,
This is the hidden content, please
,
This is the hidden content, please
, entre muitos outros.
Imagine que o GIT é uma versão bombada e super rápida do SVN que talvez a maioria de vocês já tenham conhecido, além de versionar ele permite a gestão de tarefas(chamaremos de issues) e controle de acesso ao código(leitura, escrita, modificação etc). O desenvolvedor inicial do Git foi Linus Torvalds (criador do Linux).

Site Oficial:
This is the hidden content, please


O GitHub é um serviço de hospedagem para projetos que utilizam o Git, além disso é usado como repositório online de códigos fonte para projetos de código aberto(veja os links que postei acima). Ele parte do conseito de "Social Coding", parecido com o "Social Media"(Facebook, Twitter, etc) aonde as pessoas compartilham fotos, textos, vídeos e outras mídias, o GitHub compartilha códigos, é um local para você "postar" seus códigos e projetos. Ele possui vários recursos gráficos para mostrar sua evolução e atividade nos projetos que participa, inclusive algumas empresas hoje ao contratar um desenvolvedor elas pedem além do seu Linkedin, o link do seu Github.

Site Oficial:
This is the hidden content, please


Resumindo o Git é um sistema de versionamento e gerenciamento de códigos fontes(arquivos em geral) que é amplamente usado por diversas empresas e além disso é implementado pelo GitHub como uma rede social de códigos abertos.

v9jZOup.png



1 - Instalando o git (windows)

♣ Acesse
This is the hidden content, please
terá links para Mac, Linux, Solaris e Windows, e clique no link do seu sistema operacional, no caso desse tutorial usarei o Windows como exemplo.
c3O9hp6.png

♣ Após baixar, execute o arquivo, irá iniciar um wizard desses bem simples com next next e confirm... pare na parte Select Components e selecione conforme a imagem abaixo(É o que geralmente eu escolho):

iEVXajQ.png
Eu maro a opção Windows Explorer integration e "Simple context menu" pois assim eu consigo abrir o Git Bash (prompt de comandos do git) em qualquer diretório do meu computador, bastando apenas clicar com o botão direito e usar "Git Bash Here". A última opção também é interessante, porque ele instala uma fonte melhorzinha para o prompt de comandos.

♣ Clique em "Next" e continue a instalação, até o ponto "Adjusting your PATH environment" e marque a opção "Use git from Windows Command prompt", essa opção vai permitir que você use os comandos GIT no prompt e no Power Shell

FR8ySmg.png


Clique em "Next>" e selecione a opção "Use OpenSSH". Clique em Next novamente.

[importante] "Configuring the line ending conversion":

A Configuração da quebra de linha, essa configuração é importante pois os sistemas Unix(Linux e MAC) possuem formatos diferentes de quebra de linha em arquivos texto.
Se você escreve um código com quebras de linha no formato Windows, outra pessoa pode ter problemas ao abrir o mesmo arquivo em um Linux, e vice-versa. Esta opção permite normalizar isso.

  • A primeira opção converte os arquivos para padrão Windows quando os arquivos chegam para você, e convertem para padrão Unix quando você os comita no repositório.
  • A segunda não faz nenhuma conversão quando os arquivos chegam, mas convertem para padrão Unix quando você realiza o "commit".
  • A terceira opção não faz nenhuma conversão.

Em meus projetos eu uso o padrão Unix, pois assim a compatibilidade será maior, e além do mais bons editores(

This is the hidden content, please
,
This is the hidden content, please
,) e IDE(
This is the hidden content, please
,
This is the hidden content, please
) mantém a codificação(o bloco de notas do windows não está incluso nessa lista rsrs)

♣ Agora é só dar next até concluir a instalação. Feito isso o git está instalado no seu computador.


2- Criando um repositório e "commitando"

Eu pedi para vocês instalarem o GIT Bash e o UI mas para essa parte irei usar apenas a versão "Bash", ou seja por prompt de comando, pois assim o tutorial fica mais compatível com demais usuários(Linux, Mac, etc).
Também existem outras formas de fazer isso caso você use o Netbens ou Eclipse pois eles já possuem o git embutido em seu core para um suporte nativo dentro do próprio programa.


♣ Crie a Pasta (será a raiz do projeto), clique com o botão direito sobre ela e clique na opção "Git Bash Here"

FdUw8VP.png

♣ Informe ao Git quem é que está commitando, essa parte você irá adicionar as suas credenciais pois os commits só podem ser efetuados por uma "identidade".

Use os comandos abaixo

This is the hidden content, please

Substitua pelo seu nome e sobrenome e o seu endereço de email.
BEXCVIU.png

Agora todos os commits realizados nesse computador(nesse usuário do windows) seguirão com essa identidade.

Dica: para copiar e colar comandos no Git Bash, clique com o botão direito na barra de título da janela e na opção Editar você tem as opções de marcar, copiar, colar.

♣ Inicializando um repositório Git na Pasta
Ainda na janela do Git Bash você deve digitar o comando

This is the hidden content, please

Irá aparecer a mensagem "Initialized empty Git repository in C:/Fontes/hello-world/.git/"

BHRbt17.png

Talvez você não perceba mas seu projeto agora possui um "branch" que é um galho, no caso imagine que o master é o tronco principal de uma arvore. (não se preocupe com esses nomes eu irei fazer um glossário no final do tutorial para ter tudo listado bonitinho).


♣ Adicionando Arquivos à pasta e realizando um commit:
Bem, existe 2 formas de fazer isso uma é simplesmente criar o arquivo ou colar ele lá dentro a outra é pela linha de comando, vou mostrar a linha de comando pois acho que os demais já devem saber(quem não saberia criar ou colar um arquivo para dentro de uma pasta e estaria lendo esse tutorial até aqui? :aO )

Utilize o comando touch em seguida o nome do arquivo.

This is the hidden content, please

Resumindo:
o comando 'touch' adiciona um arquivo vazio com o nome que você especificar.
o comando 'git add .' adiciona todos os novos arquivos que foram adicionados ao repositório.
o comando 'commit' irá "confirmar" as alterações para o seu "branch", o parâmetro '-m' simboliza a mensagem do seu commit vem em seguida, você sempre deve usar aspas para a mensagem.

Note que se você tentar executar um novo commit não acontecerá nada pois você já "confirmou" todas as alterações feitas.
tXwVb6d.png

Atenção: A parte chata de usar a linha de comando é que nos comentários do commit você não pode usar carácteres especiais, nem pontuações nem pular linha a não ser que você esteja usando um IDE como o netbenas que possuí uma interface gráfica para realizar o commit.


O importante aqui é entender esse ciclo do commit, diferente do SVN o git não commita diretamente ao servidor, no lugar disso ele cria um controle de versão local e depois o conjunto de commits que são "empurrados" ao servidor compartilhado.

Após isso experimente adicionar mais arquivos, e realizar o commit, binque o pouco.
Bacana, você aprendeu como usar o git "na unha"(código de comando), recomendo que procure aprender como usar o git no seu IDE, e se quiser pode criar um tutorial de como usá-lo em conjunto com a sua ferramenta de desenvolvimento preferida.


3- Compartilhando seu código no GitHub
Agora que temos o nosso projeto, já sabemos commitar, porque não mostrar ao mundo o que você sabe fazer e ainda poder receber colaborações no seu código para o tornar melhor?


Criando uma conta no GitHub
Acesse:

This is the hidden content, please
e preencha os dados pedidos:
gxewZrT.png


Ao clicar no botão "Create an account" você irá para a escolha do plano, escolha free(a não ser que você esteja afim de gastar um dindin)
Como falei no início do tutorial o GitHub é um serviço, ele tem uma versão free aonde você pode criar repositórios públicos e caso queira ter um repositório privado(putz) você precisa pagar, mas não se desespere ele possui um primo muito camarada que lhe permite ter repositórios privados "de grátis"! o
This is the hidden content, please
, não irei falar sobre ele aqui nesse momento, talvez eu faça um outro tutorial sobre ele no futuro.


Criando uma chave SSH para poder começar a commitar no GitHub

Bom, após ter criado a conta a primeira coisa é criar uma chave SSH, essa chave serve para autenticar sua conexão ao GitHub, é uma forma de você ter segurança para que ninguém mais commite em seus repositórios(à não ser que você autorize).

No Git Bash(prompr de comando) digite o comando:

This is the hidden content, please

Use o mesmo e-mail que você usou para criar a conta no Github



Dê enter e será perguntado aonde você quer salvar o arquivo da chave, vamos manter o padrão, aperte enter novamente.

A próxima pergunta vai te pedir uma senha (passphrase). Recomendo que não use a mesma senha do GitHub, essa senha garante que outra pessoa, mesmo munida do arquivo da sua chave não possa usá-lo sem essa senha.
Dê enter novamente e então será pedido uma confirmação. Digite a senha novamente e Enter.

uJmeLwD.png

Digite agora:

This is the hidden content, please

Esse comando irá abrir sua chave no bloco de notas, copie todo o conteúdo dessa chave para irmos ao próximo passo.

Adicionando a chave SSH no GitHub
- Acesse a página de configurações no GitHub:

This is the hidden content, please
(Settings> SSH Keys)
- Clique em "Add SSH Key" e cole o conteúdo do arquivo id_rsa.pub e clique em "Add Key"

A5T6Bmh.png
Atenção: Tome cuidado de copiar e colar todo o conteúdo do arquivo, começando por ssh-rsa até o seu e-mail (veja a imagem acima)

Se tudo deu certo sua chave foi adicionada você verá algo assim:
QKmIIVE.png


Testando conexão com o github

Vá no GitBash e digite o comando:

This is the hidden content, please

Será perguntado se você tem certeza que quer conectar(yes/no), nesse momento digite 'yes' e dê Enter, a próxima pergunta será sua senha(passphrase...) digite a senha que você usou para gerar a chave SSH.

Se aparecer uma mensagem parecida com essa(imagem abaixo) "Hi Grundor! You've successfully authenticated..." então deu tudo certo:

uBJxWF7.png


Criando o primeiro repositório remoto

Volte agora ao GitHub e criar o nosso primeiro repositório (botão New Repository no seu dashboard)

This is the hidden content, please

Informe um nome preferencialmente sem espaços e caracteres especiais, caso contrário o GitHub vai remover esses caracteres.

4yei3ps.png
Clique em Create repository e então será levado até a página do seu repositório, que por enquanto ainda não tem arquivos. (Talvez só o Licence e o Readme.md)
Pronto agora seu repositório está criado! próximo passo é enviar os arquivos...

N5ubBi3.png

♣ Enviando os arquivos do seu repositório local ao repositório remoto no GitHub
- Na página do seu repositório no GitHub (imagem acima) vá até a caixa do "Clone URL" e clique em ssh, copie o link

epjEzWl.png

No Git Bash (na pasta do seu repositório local) digite e dê enter:

This is the hidden content, please

Substitua o "git@...." pela url que você copiou seu link ficará assim:

This is the hidden content, please

Após executar esse comando digite o comando à seguir:

This is the hidden content, please

Esse comando acima irá atualizar o seu repositório local com o repositório remoto no GitHub, é importante que você tenha realizado o commit de todos os arquivos antes de realizá-lo pois é porvavel que você os perca ou que ele seja sobrescrito.

Agora é hora de enviar os seus arquivos ao git hub, digite o código abaixo:

This is the hidden content, please

S2vSgea.png

Informe sua senha(passphrase) sempre que for requisitada, como estamos usando o método via ssh, nunca será pedida a sua senha do github.

Se tudo ocorreu bem, seus commits foram adicionados ao repositório remoto como mostra na imagem abaixo.

tJyagyI.png
OBS: Como o meu eu configurei meu gitbash com o meu nome e email do github oficial do github(

This is the hidden content, please
) os commits foram feitos com esse nome e não com a conta teste "Grundor" criada para esse tutorial.


4- Concluíndo

Bom pessoal, esse foi um tutorial bem condensado e resumido, o git tem muito mais coisa, mas quis fazer desse tutorial uma introdução para quem nunca teve contato com o GIT ou versionamento. Meu tempo no fórum é um pouco limitado e talvez eu não consiga responder todas as dúvidas com rapidez, mas farei sempre que possível.
Pretendo fazer mais tutoriais sobre mais assuntos, caso o pessoal da L2jBrasil se interesse. A intenção é que os desenvolvedores comecem a publicar seus códigos fontes na página da l2jbrasil no Github.




Glossário

  • C
    • ​Commit - Ato de "confirmar" uma alteração, exclusão ou inclusão de arquivos no repositório
  • B
    • ​Branch - ("ramos") são utilizados para desenvolver funcionalidades isoladas umas das outras. O branch master é o branch "padrão" quando você cria um repositório. Use outros branches para desenvolver e mescle-os (merge) ao branch master após a conclusão.
  • P
    • ​pull - Ato de obter as alterações de um repositório e o seu branch, o comando é git pull <origin> <branch name>. Serve para atualizar seu repositório local com a mais nova versão
    • push - Ato de enviar as alterações para um repositório remoto, o comando é git push <origin> <branch name>. Serve para atualizar o repositório remoto com o seu código local.

Links Úteis

Tutoriais Relacionados:



Proibida a reprodução mesmo que em partes desse tutorial sem a publicação dos devidos créditos de criação



This is the hidden content, please


This is the hidden content, please



  • Like 18

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link to comment
Share on other sites


  • L2JBr ADM

Tutorial perfeito, Leonan. É interessante porque é uma plataforma dinâmica e acessível e até melhor na minha opinião que a Assembla.

  • Like 1

Você sabia que a L2JBrasil tem uma empresa de Hosting Oficial?
Conheça a L2JCenter.com

L2JBRASIL - 15 anos vendendo SS e flechas em Giran! (Trade / Adena)

Link to comment
Share on other sites

  • L2JBr ADM

Muito bom, obrigado Grundor!

Vou ler com calma amanha, hoje ta meio corrido, vou começar a por meus projetos ai. :D

 

Valeu!

 

Acabei usando teu projeto como exemplo para o meu tutorial sobre a interface gráfica! http://www.l2jbrasil.com/index.php?/topic/113262-usando-a-interface-grafica-do-github-para-windows-e-publicando-os-seus-projetos/

Crie uma conta lá e me mande seu usuário para eu lhe adicionar à equipe de devs!

 

Tutorial perfeito, Leonan. É interessante porque é uma plataforma dinâmica e acessível e até melhor na minha opinião que a Assembla.

Está bem à frente! conceitos de Social Coding que o Assembla chega longe, a desvantagem do GitHub como eu falei é pra ter repositórios privados deve ser pago porém a soluções parecida free!

  • Like 2

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link to comment
Share on other sites

  • 3 months later...

Muito bom tutorial Grundor.

Porem estou preso em uma parte.

 

Onde pede para Testar Conexão, ssh -T "email" , o meu fica sempre dando timed out.

 

Tenho que ter portas liberadas ou algo do tipo?

  • Like 1

A Vida é uma eterna lição...

Estamos sempre aprendendo...

Link to comment
Share on other sites

Qual email você está passando para teste ? por que tem que ser o email que o Git cria no domínio deles quando você faz a conta.

 

eu estava colocando o meu email. Ai nunca conseguia fazer este teste.

Porem mesmo sem o teste, eu consegui fazer os demais passos e consegui importar tudo para o site do GitHub.

 

Na hora do email, eu coloquei aquele do SSH URL

creio que era pra testar com ele certo?

Mas de qualquer maneira deu tudo certo no final. Obrigado Tayran e Grundor pelo belo tutorial

A Vida é uma eterna lição...

Estamos sempre aprendendo...

Link to comment
Share on other sites

Exemplo meu usuário é Tayran o email é [email protected].

Que bom que conseguiu, as pessoas não se interessam em usar Git, elas mal sabem do poder que o Git tem em relação a SVN.

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link to comment
Share on other sites

  • 2 weeks later...

Entao pessoal.. Estou de volta...

Hoje resolvi implementar um novo mod em meu projeto.

Porem fui utilizar o que eu mandei para o Git.

Chegando la eu entrei no eclipse, fiz la o dl da minha SVN Repositorie e dei Check-Out no "Gameserver" que é a parte que eu quero pra mudar.

Porem o meu não fica que nem a "frozen".

A frozen vem la as pastas javas para eu poder mexer, o meu não vem assim. Eu não consegui nem achar os arquivos Javas dentro do meu para poder fazer as alterações.

 

Como eu faço para localizar "Os Javas" dentro do meu projeto?

 

FROZEN

 

 

eNtsoHL.jpg

 

 

 

meu projeto

 

 

SLAV4I7.jpg

 

 

A Vida é uma eterna lição...

Estamos sempre aprendendo...

Link to comment
Share on other sites

Coloca como java project amigo.


Deleta o projeto ( só no project explorer ) e importa cria um projeto com mesmo nome desse projeto que está na workspace como java project.

"Tente ser uma pessoa de valor , não de sucesso" - Albert Einstein

 

 

Link to comment
Share on other sites

Coloca como java project amigo.

Deleta o projeto ( só no project explorer ) e importa cria um projeto com mesmo nome desse projeto que está na workspace como java project.

 

Eu deletei tudo e dei Check-Out novamente.

Então selecionei a opção "Java Project".

 

Não mudou muita coisa, ele apenas adicionou uma JRE System Library.

 

Tentei deletar tudo e fazer como voce falou, criando um novo Java Project e colocando o mesmo nome, ele ficou do mesmo jeito que o de cima.

 

imagem

 

 

ahKoFNl.jpg

 

 

A Vida é uma eterna lição...

Estamos sempre aprendendo...

Link to comment
Share on other sites

Vou em SVN Repositories > New Repository Location > Coloco o link do meu projeto > Meu Projeto - Checkout > Java Project.

 

Veja se as opões marcadas estão corretas por favor

 

 

 

1zkFdhg.jpg

 

 

A Vida é uma eterna lição...

Estamos sempre aprendendo...

Link to comment
Share on other sites

  • L2JBr ADM

No netbeans o caminho para se iniciar um projeto à partir de um repositório git é esse:

eSvvdmx.png

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link to comment
Share on other sites

Usa o software do Git que já vem dentro do eclipse.

 

Onde?

O meu CTR 3 me mostra outra coisa

Tou fazendo dl do Netbeans.. vai que com ele eu me saio melhor.

 

No Eclipse meu CTR 3 abre uma janela de PROCURAR, digito "Git" e nada, "Clonar" e nada..

 

Quando clico no projeto, vou em "team" tambem nada que se remeta ao Git ou a Clonar

A Vida é uma eterna lição...

Estamos sempre aprendendo...

Link to comment
Share on other sites





×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.