Git e contribuição para projetos Open Source. Bruno Orlandi



Documentos relacionados
TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag)

Controle de Versão com GIT

Agenda. Aprendendo Git/GitHub. Definições. Git. História 31/05/2012. Vantagem de usar controle de versão

Introdução ao Git. Laboratório de Programação. Luísa Lima, Pedro Vasconcelos, DCC/FCUP. Março 2015

Introdução ao Git. Introdução ao GIT. Anderson Moreira. Baseado nos slides disponíveis em http//free electrons.com

Versionamento de Código. Núcleo de Desenvolvimento de Software

Introdução à Engenharia ENG1000

Padrões de configuração GIT

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações.

Git. Leonardo Gresta Paulino Murta

Controle de Versão de Software. Luiz Jácome Júnior

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

Lazarus pelo SVN Linux/Windows

Controle de versão e fluxo de trabalho em projetos de desenvolvimento de software

Como contribuir com projetos de software livre

Desenvolvendo Websites com PHP

Manual de Utilização do Tortoise SVN. Fábrica de Software. Algar Tecnologia Unidade BH

2. GERÊNCIA DE CONFIGURAÇÃO DE SOTWARE

Git no Controle. Com softwares de controle de

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc.

OneDrive: saiba como usar a nuvem da Microsoft

Controle de Versão com CVS

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

ACESSANDO O GITHUB E COMPARTILHANDO PROJETOS

Uma Introdução aos Sistemas de Controle de Versão Distribuídos. Leonardo Gresta Paulino Murta

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues.

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG

Curso de git. Aula de outubro de 2018

Manual de Utilização do Zimbra

Google Drive: Acesse e organize seus arquivos

Sistema Operacional Unidade 8.2 Instalação de aplicativos. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Objetivo. Introdução; História; Conceito; SVN; Instalação; Prática através de exercícios.

Roteiro 3: Sistemas Linux arquivos e diretórios

Gerência de Configuração. Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia

UM NOVO CONCEITO EM HOSPEDAGEM DE DOMÍNIO

Controlo de versões com GIT

Git. Bruno de Pinho Sche.no

Sistema de Chamados Protega

Seu manual do usuário SONY ERICSSON K550I

Guia rápido do usuário. Cliente de Web

Trabalho de Sistema de Informações. Instalação e configuração aplicativo Ocomon

SparkleShare. Arthur Henrique Danilo Inácio Luíla Oliveira Paulo Junior

Guia rápido do usuário

Tutorial de uso do Subversion com RapidSVN

Gestão de Desenvolvimento de Sistemas por Controle de Versão Utilizando SVN. Software para Controle de Versão SVN/Subversion

Usar o Office 365 no iphone ou ipad

MANUAL DE ADMINISTRAÇÃO DO SOFTWARE E COMUNIDADES DO PORTAL DO SOFTWARE PÚBLICO BRASILEIRO. Em construção

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

J820. Integração Contínua. com CVS, CruiseControl, Cruise Control. argonavis.com.br. AntHill Gump e Helder da Rocha (helder@acm.

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Usar o Office 365 em seu telefone Android

AUXÍLIO COMPUTACIONAL

Sistema Operacional Unidade 13 Servidor Samba. QI ESCOLAS E FACULDADES Curso Técnico em Informática

git git Utilização básica no controle de versão de pacotes João Eriberto Mota Filho Utilização básica no controle de versão de pacotes

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Instalando o Linux e outros Softwares

Introdução ao Git. Laboratório de Programação. Pedro Vasconcelos, Manuel Barbosa, DCC/FCUP. Fevereiro 2016

ENDEREÇOS DE REDE PRIVADOS até até até Kernel

Google Drive. Passos. Configurando o Google Drive

Anote aqui as informações necessárias:

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

O aplicativo de desktop Novell Filr é compatível com as seguintes versões do sistema operacional Windows:

IBM SPSS Modeler - Princípios Básicos do R: Instruções de Instalação

Como Utilizar o Escritório Virtual

1) Verifique se o Microsoft.Net Framework 3.5 está instalado, para isto, abrir o Painel de Controle e verificar:

Stoq - Gestão comercial open source

Git Funcionamento e Workflow. Pesquisa e Desenvolvimento Tecnológico

Controle de Versões com o Git

Inicialização Rápida do Novell Vibe Mobile

Redmine. Simplificando a gestão de projetos

Procedimentos para Reinstalação do Sisloc

Laboratório - Exploração do FTP

Gerenciador de Referências. EndNote. Nonato Ribeiro Biblioteca de Ciências e Tecnologia (UFC)

Intellikon 2.2. Código de Manual: Ik22001POR Versão do Manual: 1.0 Última revisão: 21/2/2006 Aplica-se a: Intellikon 2.2.

Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

O Windows também é um programa de computador, mas ele faz parte de um grupo de programas especiais: os Sistemas Operacionais.

Instalação do IBM SPSS Modeler Server Adapter

Guia do Administrador de Licenças de Usuários Autorizados do IBM SPSS Modeler

Para participar de um mapa colaborativo usando o Cmap Tools

MDaemon GroupWare. Versão 1 Manual do Usuário. plugin para o Microsoft Outlook. Trabalhe em Equipe Usando o Outlook e o MDaemon

2. O AMBIENTE DE PROGRAMAÇÃO EM C

Instalação do VOL Backup para Desktops

Sistema de Digitalização e Gerenciamento de Arquivos On-Line

Evolução do Portal do Software Público Brasileiro:

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

LEIA ISTO PRIMEIRO. IBM Tivoli Configuration Manager, Versão 4.2.1

1) Verifique se o Microsoft.Net Framework 3.5 está instalado, para isto, abrir o Painel de Controle e verificar:

Índice. Manual Backup Online. 03 Capítulo 1: Visão Geral

Ferramentas para Desenvolvimento de Software Livre: Ferramentas Gráficas para CVS

Procedimentos para Instalação do Sisloc

FileZilla Server. O FileZilla Server é um ótimo servidor FTP, conta com diversas funções e fácil instalação e configuração.

Elgg - Participatório. Departamento de Informática Universidade Federal do Paraná (UFPR) Curitiba PR c3participa@c3sl.ufpr.br

CONFIGURAÇÃO DE REDE SISTEMA IDEAGRI - FAQ CONCEITOS GERAIS

Transcrição:

Git e contribuição para projetos Open Source Bruno Orlandi

Bruno Orlandi 4º Ano Ciências de Computação ICMC USP PET Computação HTML5 Web e Mobile Gosta de compartilhar conhecimento @BrOrlandi

Instalando Instalar o Git: sudo apt get install git Instalar o Gitg: sudo apt get install gitg

Sobre o Minicurso Não será abordado a parte técnica do Git. Objetivo aprender Git e sua utilidade na prática! Dúvidas e correções a qualquer momento!

Conteúdo Visão Geral Comandos Básicos Publicando e Colaborando Trabalho em Equipe Praticar Praticar Praticar

O que é Git-SCM Sistema de Controle de Versão Distribuído SCM Software Configuration Management Criado por Linus Torvalds (2005) Auxiliar no Desenvolvimento do Linux

Gerência de Configuração de Software Durante o desenvolvimento do software queremos saber: O que mudou e quando? Por que mudou? Quem fez a mudança? Podemos reproduzir esta mudança?

Gerência de Configuração de Software Identificação Documentação Controle Auditoria

Gerência de Configuração de Software Artefatos: Código fonte Documentação do Software Manual de Usuário

Problema exemplo Você precisa editar um site hospedado em um servidor Você faz o download via FTP Faz as alterações necessárias Manda os arquivos alterados para o servidor via FTP

Problema exemplo Agora outro desenvolvedor também deve fazer alterações no site Baixa o mesmo arquivo junto com você Edita e manda para o servidor depois de você Sobrescreve suas alterações

Controle de Versão resolve Controle de versão faz o 'merge' entre as alterações.

Distribuído

Controle de Versão

Controle de Versão

O que é Github Servidor de repositórios Git Surgiu em 2008 +5 milhões de usuários

Estão no Github

Usam Git

Alternativas Subversion (SVN) Mercurial CVS Concurrent Versioning System Bazaar Git é o mais rápido e eficiente

Servidores Servidores/Suporte git Mercurial SVN Github V Bitbucket V V SourceForge V V V Google Code V V V

Antes de começar alguns termos técnios!

Termos Repositório: onde são armazenados todos os arquivos do projeto. Commit: registro de alterações realizadas. Como se fosse um checkpoint. Branch: ramificação do projeto, uma linha de desenvolvimento diferente

Termos Merge: incorporar alterações realizadas ou unir branchs. Fork: bifurcação, uma cópia do projeto. Ubuntu é um fork do Debian. Push: enviar as alterações para um repositório remoto. Pull e Fetch: baixar as alterações feitas de um repositório remoto. Pull realiza o merge.

Vamos começar na prática!

Instalando Instalar o Git: sudo apt get install git Instalar o Gitg: sudo apt get install gitg

Help Quando precisar de ajuda: git help <command>

Configurando Configure seu nome e e mail: git config global user.name Meu Nome git config global user.email meuemail@email.com Configure cores no terminal: git config global color.ui true

Criando o Primeiro Repositório git init PrimeiroRepo Será criado o diretório com o novo repositório vazio. cd PrimeiroRepo Todas as configurações do repositório ficam na pasta.git

Crie seu primeiro arquivo Crie um arquivo, edite e adicione ao repositório: touch PrimeiroArquivo gedit PrimeiroArquivo git add PrimeiroArquivo git commit m Criado o primeiro arquivo.

Estados dos arquivos Não monitorado (untracked) Modificado (modified) Preparado (staged) Consolidado (commited)

Estados dos arquivos

Status dos arquivos Use o comando: git status Exibe alterações desde o último commit Exibe os arquivos: Modificados Preparados para o Commit Novos que não estão no repositório

Status dos arquivos Edite o arquivo criado anteriormente Crie um novo arquivo e veja o seu status no repositório

Explicando os comandos usados git add <lista de arquivos> Adiciona os arquivos novos e modificados na Staging Area, preparados para o próximo Commit. git add all git add *.txt git add folder/*.txt git add folder/ git add *.txt

Explicando comandos usados git commit [ m Message ] Registra o commit de todos os arquivos que estão na Staging Area. Se o parametro de mensagem não for passado abrirá um editor de texto para escrever a mensagem git config global core.editor gedit

Git Workflow Basicamente a maior parte do trabalho com o git consiste nestas tarefas: Editar Commitar Exercite estes comandos!

Log e Show git log Lista os commits mais recentes. git log pretty=oneline git shortlog git show [commit] Mostra as alterações de um commit Commit deve ser especificado pela chave Sem parâmetro mostra o ultimo commit

Dif git diff Exibir diferenças entre commits e branchs git diff [path] Diferença no diretório git diff HEAD~1 HEAD Mostra o que foi alterado no último commit

Ferramenta externa Dif git config global merge.tool kdiff3 Permite usar uma ferramenta externa para usar no Diff e também no Merge.

Git Blame Encontrar os culpados pelas alterações em um arquivo. git blame <arquivo> L 10,15 Vai exibir das linhas 10 a 15 quem escreveu elas.

Git mv e rm Git não trata perfeitamente arquivos renomeados ou movidos. git mv <path1> <path2> git rm <file> Remove um arquivo do repositório. A diferença é que essas alterações já são adicionadas ao staging.

Desfazendo alterações git checkout <path_or_file> Irá desfazer todas as alterações que não estejam no Stage desde o último commit. git checkout HEAD <path_file> Desfazer as alterações desde o último commit incluindo o Stage.

Git reset git reset <file> Remove um novo arquivo da staging area. Não serve para desfazer alterações, para isso use: checkout Possui outras funcionalidades.

Git checkout git checkout <commit_id> Irá trocar HEAD para apontar para o commit. Altera o repositório para o estado daquele commit. Útil para fazer testes antes e depois de alterações. git checkout master Para voltar o HEAD à posição normal.

Git Revert Reverter um commit pode ser bastante útil. git revert <commit_id> Irá criar um novo commit que desfaz as alterações do commit especificado.

Branching Criando ramificações do repositório

Branch É uma ramificação do repositório Alterações(commits) ocorrem na branch Muito útil para trabalhos colaborativos Branchs de desenvolvimento facilitam o controle git branch

Branching git branch new_branch git checkout new_branch Cria e troca para uma nova branch É possível comparar branchs com diff: git diff master new_branch

Merge Uma tarefa muito comum com branchs é realizar o merge com outra branch. git checkout master git merge new_branch Excluir uma branch: git branch d new_branch

Git Rebase Quando a Branch pai sofre alterações e deseja se aplicar estas alterações para Branchs filhas. Branchs filhas devem realizar o rebase: git rebase master Pode acontecer conflitos!

Conflitos Conflitos podem acontecer ao unirmos alterações Acontecem quando ramificações diferentes possuem as mesmas linhas nos mesmos arquivos editadas diferentes

Merge com Conflito Ao tentar fazer o Merge se houver conflitos será acusado e anotado nos arquivos. O repositório fica em estado aguardando você consertar os conflitos manualmente. Após isso deve ser feito um commit indicando que o conflito foi resolvido.

Tag Útil para definir versões estáveis do projeto. Semelhante a Branch porém não sofre mais alterações. Guarda o estado atual da branch. git tag [nome da tag] git push <remote> <tag>

Interfaces Gráficas GUI Pelo terminal se faz tudo. Interfaces gráficas ajudam na visualização e auxiliam em algumas tarefas. Recomendadas: Egit Plugin para Eclipse Gitg Para Linux SourceTree Para Windows Não recomendado: Github for Windows

Github e Remotes

Remote Repositório remoto, hospedado em um servidor. São referenciados por uma URL. Vamos trabalhar com repositório remoto no Github. Outra opção interessante Bitbucket.

Remote Podem receber vários commits. Sincronizar o trabalho colaborativo. Exige chave SSH. git remote add origin <URL>

Criar conta no Github Acessem https://github.com/ Criem uma conta utilizando utilizando o mesmo e mail configurado no git config. Gerar chaves SSH no Linux: https://help.github.com/articles/generating s sh keys

Criar um repositório remoto Crie um repositório no Github. Inicialize um repositório local. Configure o repositório remoto. Crie um arquivo README.md Faça o upload das alterações.

Push Enviar alterações (commits) de uma branch para o repositório remoto. A primeira vez: git push u origin master O envio é rejeitado se o repositório local não estiver sincronizado. git push <remote> <branch> git push

Pull Baixa as alterações do repositório remoto e realiza o Merge automático com o repositório local. Mantém o repositório sincronizado com os últimos commits de uma branch. Permite baixar novas branchs que não foram criadas localmente. git pull git pull <remote> <nova>

Git Clone Baixa o repositório remoto. Outra forma de criar um repositório local. Já vem com o remote configurado. git clone <URL>

Fork no Github Copia um repositório remoto de outro usuário para o seu usuário no Github. É assim que começa a contribuição para outros projetos. Você teria uma cópia independente do repositório original, podendo fazer quaisquer alterações.

Issues no Github Tradução: Questões. Reportar bugs. Organizar tarefas a serem feitas. Permite comentários dos usuários. Pode referenciar commits.

Pull Request O grande simbolo de colaboração. É quando você solicita que sua alterações sejam unidas a uma branch no mesmo repositório ou a um repositório que sofreu o fork. Pull request podem ser comentados e referenciados no Github. Muito útil para o trabalho colaborativo.

Vamos praticar mais!

Caso de Exemplo Extensão para GNOME: Desktop Scroller. Cria uma área de rolagem entre os Desktops. Permite configurar onde a área é ativa. Hoje mantido por outros usuários.

Dúvidas?

Extras.gitignore Git commit ammend Git Stash e Stash Pop Milestones Hooks Github pages

Convite Palestras Minicursos Concursos Prêmios Feira de recrutamento http://semcomp.icmc.usp.br/ facebook.com/semcomp

Contato @BrOrlandi brorlandi@gmail.com www.slideshare.net/brunoorlandi

São Carlos - 2014 Obrigado!