[R-br] [OFF-TOPIC] (webnário de) o que github?

Leonard Assis assis.leonard em gmail.com
Terça Agosto 16 10:32:08 BRT 2011


Só completando:

O conceito do GitHub é quase o mesmo de controle de versão como o svn, mas
chega a ser bem mais que isso, acredito que uma comparação mais justa seria
com um sourceforge da vida.

Se é fácil ou complicado de mexer, vai do gosto de cada um. Eu quando
começei a mexer com o GitHub achei meio chatinho no início, mas acabei
acostumando.

lmassis <at> yahoo <dot> com <dot> br
assis.leonard <at> gmail <dot> com


2011/8/16 Benilton Carvalho <beniltoncarvalho em gmail.com>

> Para entender o que o GitHub, e' necessario entender um pouco do
> conceito do 'git' (a explicacao abaixo nao contem codigo algum e
> trata-se apenas de uma exposicao de conceitos).
>
> O git e' um software que oferece controle de versoes de arquivos. Como
> exemplo, tome o caso usual no qual voce esta' escrevendo um codigo que
> faz uma serie de manipulacoes em um banco de dados. A maioria dos
> usuarios salvara' esse arquivo usando nomes como "Manipula.R".
>
> Acontece que ao fazer alguma modificacao no codigo de "Manipula.R", o
> usuario cuidadoso vai querer manter as duas versoes do codigo (a
> original e a modificada). Entao, ele acaba por salvar a versao
> modificada como "Manipula1.R". Se o usuario for um aluno escrevendo
> tese, chega-se facilmente a "Manipula20.R".
>
> Usando o 'git', manter essas diferentes versoes nao e' tarefa tao
> complexa quanto lembrar-se o que cada uma das 20 versoes diferentes
> tem.
>
> Tudo comeca por fazer analogia a uma arvore: seu codigo original e' o
> tronco (master); cada modificacao em progresso e' um galho (branch).
>
> Partindo do Manipula.R, voce observa que precisa fazer modificacoes.
> Neste ponto, voce cria um novo branch (existe um comando para isso
> que, em teoria, copia o "Manipula.R" para uma pasta escondida). Como
> sua arvore agora possui um novo galho, voce precisa informar ao 'git'
> onde vc vai trabalhar (no tronco - master; ou no galho - branch). Para
> as modificacoes, voce informa que vai trabalhar no branch.
>
> Qualquer modificacao feita no branch nao afeta o tronco principal
> (master). Na pratica, isso quer dizer que se voce quiser executar a
> versao original do Manipula.R, basta mudar do branch para o master. A
> outra vantagem e' que, dada essa independencia dos galhos com o tronco
> principal, voce nao precisa criar arquivos Manipula1.R / Manipula2.R /
> etc.
>
> Uma vez que voce esteja satisfeito com as modificacoes feitas no galho
> da sua arvore, voce incorpora (une) o galho ao tronco. Esse processo
> e' chamado 'merging' (existe um comando para isso). A parte legal e'
> que, mesmo depois do merge, voce pode retornar `a versao original do
> codigo e tudo isso sem vc ter q manter Manipula1/Manipula2/etc...
>
> O outro conceito usado bastante e' em colaboracao de codigo. Suponha
> que o Walmes comecou com a versao original de 'Manipula.R', dai' o
> Paulo pegou carona e decidiu tentar uma modificacao dele proprio...
> Neste caso, o Paulo pode criar um branch dele e fazer as modificacoes
> ali. Uma vez que o Paulo fizer as modificacoes, ele pode submeter um
> pedido de merge ao tronco principal, que sera' (ou nao) aprovado pelo
> Walmes para incorporacao plena no codigo original.
>
> E' possivel manter arquivos binarios sob 'git' tambem. Mas por motivos
> que fogem o escopo da mensagem, isso nao e' algo muito recomendado
> (para os interessados, manter diffs de arquivos binarios nao e' algo
> legal).
>
> Outra aplicacao do conceito do git: vc esta' trabalhando num artigo
> com diversos autores... Cada autor pode criar um branch e trabalhar
> nesse branch... depois voces podem "merge" todos os branches para
> montar o artigo final...
>
> Note que o git nao liga se o arquivo e' um script em R, um programa em
> C, um documento em TXT ou TeX. O importante (no meu ponto de vista) e'
> que seja um arquivo texto padrao (ie, nada de Word, PowerPoint, por
> exemplo). A outra coisa importante e' que o git nao exige a existencia
> de um servidor, voce pode fazer tudo isso num diretorio qualquer do
> seu computador.
>
> Pronto, dito isso (em suma, o git transforma sua linha de producao num
> esquema que usa uma arvore como modelo; no qual a parte estavel eh o
> tronco e as modificacoes em curso sao os galhos), fica menos enrolado
> entender o que eh o GitHub.
>
> GitHub e' um portal no qual voce pode criar projetos (de codigo). Por
> exemplo, os pacotes que eu desenvolvo estao la'. Eu posso fazer todas
> essas coisas de branching, merging e reverting usando o website. Como
> ele e' um portal, o site funciona como um servidor. Assim, eu faco as
> modificacoes (criacao de galhos, unificacoes com tronco, etc) no meu
> computador e sincronizo com o servidor. Outros usuarios do website
> podem acompanhar o projeto.
>
> Por exemplo, um dos meus colaboradores acompanha as modificacoes que
> tenho nos meus pacotes. Quando ele tem alguma sugestao, ele clona o
> meu projeto e faz as modificacoes ao gosto dele... Uma vez que as
> modificacoes estao prontas, ele (via website) manda as modificacoes
> para o meu projeto e eu, entao, preciso aprovar ou nao... Se
> aprovadas, as mudancas dele (antes independentes do meu projeto) sao
> incorporadas ao tronco principal.
>
> Para facilitar acompanhamento de projetos, o GitHub oferece a
> possibilidade de voce "seguir" outras pessoas, incorporando tambem uma
> parte 'social' ao projeto.
>
> Em termos de gerenciamento de projeto, GitHub tambem oferece servicos
> de Wiki e Bug Tracker.
>
> Todos esses servicos sao gratuitos, na condicao de que o seu projeto
> seja publico.
>
> Se voce nao quiser que outros usuarios vejam o seu projeto, voce pode
> criar projetos privados... mas apenas se voce for um usuario pago.
>
> b
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110816/3dad13ab/attachment.html>


Mais detalhes sobre a lista de discussão R-br