José Malcher Jr.

Eng. Software – Analista de Sistemas

Excelente curso grátis de git e github e é grátis!

Link: https://www.schoolofnet.com/curso-git-e-github/

Abril 18th, 2017

Posted In: Assuntos Diversos, Caixa de Ferramentas, Cursos, Git

Tags:, ,

Leave a Comment

 

Com essa postagem: Resumos e Artigos sobre Controle de Versão de Códigos vou deixar aqui algumas impressões para estudos futuros. Pegando vários sites como base.

O bom e velho Wikipédia tem o artigo sobre Sistema de controle de versão que dá um apanhado geral sobre o que vem a ser os sistemas de controle de versão e o que eles fazem:

Um sistema de controle de versão (ou versionamento), VCS (do inglês version control system) ou ainda SCM (do inglês source code management) na função prática da Ciência da Computação e da Engenharia de Software, é um software com a finalidade de gerenciar diferentes versões no desenvolvimento de um documento qualquer. Esses sistemas são comumente utilizados no desenvolvimento de software para controlar as diferentes versões — histórico e desenvolvimento — dos códigos-fontes e também da documentação.

Um grande diferencial que tem nesse artigo do wikipédia e que ajuda muito quem esta iniciando no versionamento de códigos é uma lista de “vocabulário comum”, aprenda o termo sempre em inglês!

  • Atualização / Update – Atualiza na cópia local as novidades do Servidor, provavelmente as mudanças enviadas por outro desenvolvedor.
  • Baixar / Check-out ou checkout – Quando não existe cópia local e é necessário baixar todo o projeto do servidor. Nesse processo é guardado algum tipo de meta-dados (geralmente em pasta oculta) junto dos arquivos baixados.
  • Conflito / Conflict – É a alteração simultânea (entre um update e um commit) de um mesmo documento por usuários diferentes.
  • Cópia local / Working copy ou working area – É geralmente uma pasta no sistema operacional do desenvolvedor (do lado Cliente) que mantém a cópia da última versão do projeto. É através da cópia local que o Cliente compara com a última versão do Servidor e sabe exatamente o que foi modificado.
  • Efetivar ou submeter / Commit, submit ou check-in – Enviar as alterações da cópia local ao Servidor através do Cliente.
  • Exportar / Export – Semelhante ao checkout, mas não cria meta-dados junto da informação baixada. Esse processo é utilizado para gerar uma versão “distribuível” e impede (por não conter os meta-dados) que o desenvolvimento seja feito sobre ele.
  • Importar / Import – É o processo que envia uma árvore de diretórios ainda não controlada (sem meta-dados) para o repositório pela primeira vez.
    Marcação / Tag ou release – É dar um nome a um determinado “momento” do repositório, ou seja, é como uma “fotografia” de determinada data. Alguns sistemas, como o SVN, não diferenciam entre “marcação” e “ramificação”, pois é possível tratar uma ramificação com o conceito ou finalidade de marcação.
  • Mesclagem / Merge ou integration – Permite que mais de um utilizador modifique um mesmo documento ao mesmo tempo, comparando as diferenças e mesclando mantendo as duas alterações (se possível). A mesclagem geralmente é feita localmente (lado Cliente) na atualização de um documento quando há uma versão no Servidor mais recente que a sua.
  • Mesclagem inversa / Reverse integration – É quando um braço é mesclado à linha principal.
  • Modificação, diferença ou mudança (Change ou diff.) – Representa a diferença entre uma versão e outra de um mesmo documento.
  • Raiz, linha principal ou braço principal / Head, trunk, mainline – é o caminho de revisões que não se quebrou em um braço.
  • Ramificação ou braço / Branch – Quando a linha de desenvolvimento precisa ser dividida em duas ou mais.
  • Repositório / Repository – local no Sistema onde fica armazenado todas as versões, desde a primeira até a última. Cada sistema geralmente pode ter mais de um repositório.
  • Resolução de conflito / Conflict resolve ou Solve – Quando os desenvolvedores precisam analisar o que entrou em conflito e escolher qual alteração fará parte da versão final.
  • Revisão ou versão / Revision ou version – Representa um determinado “momento” (uma “fotografia”) de um repositório ou documento.
  • Travar / Lock – Em alguns sistemas é possível bloquear um arquivo e ninguém pode alterá-lo nesse momento. Isso é pouco usado e pouco recomendado pois impede o uso simultâneo do mesmo arquivo por mais de um desenvolvedor, mas pode ser bastante útil com arquivos binários e/ou difíceis ou impossíveis de serem mesclados.
  • Última versão / last revision – é a última versão enviada ao sistema no braço principal.
  • Versão atualizada / Up-to-date – É quando a versão local é idêntica à que está no servidor. Quando alguém submete um documento (que você também está trabalhando) antes de você, o sistema não permite que você envie a sua versão enquanto você não deixar sua versão local atualizada (up-to-date).
  • Versão estável / Stable version – Chama-se de “versão estável” uma determinada versão do sistema que está compilando normalmente e não possui nenhuma anomalia grave.
  • Versão instável / Unstable version – Chama-se de “versão instável” uma versão do sistema que não está compilando ou que possui alguma anomalia bastante visível e geralmente grave.

 

Um outro artigo muito bom e bem completo pode ser ser lido em: Conceitos Básicos de Controle de Versão de Software — Centralizado e Distribuído é um artigo mais prático que ajuda o entendimento mostrando desenhos como os processos funcionam.

  1. Alguém já sobrescreveu o código de outra pessoa por acidente e acabou perdendo as alterações?
  2. Tem dificuldades em saber quais as alterações efetuadas em um programa, quando foram feitas e quem fez?
  3. Tem dificuldade em recuperar o código de uma versão anterior que está em produção?
  4. Tem problemas em manter variações do sistema ao mesmo tempo?

Se alguma das perguntas acima teve um sim como resposta, então sua equipe necessita urgentemente de um sistema para controle de versão!

Torço para que esse artigo sempre continue no ar, ele é excelente para montar aulas sobre o assunto!

Recomendo salvar o artigo em seu Evernote, usando o componente de Captura do navegador Chrome ou Firefox


 

Pra fechar o assunto tem uma Monografia: Análise Comparativa entre Sistemas de Controle de Versões Daniel Tannure Menandro de Freitas. Tem um excelente conteúdo sobre o assunto. Com destaque para o fluxo entre os diversos tipos de Sistemas de controle de versão, o fluxo do git:

fluxo_git

 

 

 

dezembro 27th, 2015

Posted In: Caixa de Ferramentas, Desenvolvimento, Git

Tags:,

Leave a Comment

git_github

Vou deixar aqui neste post algumas referências para quem quer aprender a usar o Git e o GitHub. Não vou explicar nada aqui, e sim deixar os links para que você possa explorar. Muito provavelmente irei re-postar algum conteúdo sobre o assunto no futuro, mas por hora, pra quem está ou quer aprender a usar essas ferramentas fica essas dicas:

Site oficial: https://git-scm.com/

GitHub: https://github.com/

Livro em pt_BR: https://git-scm.com/book/pt-br/v1

Curso e Screencast:

Curso de controle de versão com Git : Uma coleção de 8 vídeos para iniciantes, ele é bem completo nas explicações e vai do Git ao Github.
Screencast: Git e Github para Iniciantes: Aqui tem um screencast da Loiane Groner, exelente abordagem inicial.

http://tableless.com.br/iniciando-no-git-parte-1/ – Por por

http://rogerdudler.github.io/git-guide/index.pt_BR.html – Git – Guia Prático

http://blog.da2k.com.br/categories/github/ – Do Fernando Daciuk, que o mesmo tem um excelente curso: Git e Github Ninja

Um vídeo bacana aqui no link: Contribuindo para um projeto open source no Github de Rogerio Prado de Jesus

Git Cheatsheet (comandos úteis resumidos)

https://training.github.com/kit/downloads/pt/github-git-cheat-sheet.pdf – PDF em pt_BR de resumo oficial

http://www.ndpsoftware.com/git-cheatsheet.html – Site bem ilustrativo dos comandos e onde cada comando “afeta” as áreas de trabalho do git.

Pretendo escrever/criar conteúdo sobre o assunto, não apenas mostrar de outros autores, produzir conteúdo e tão importante quanto consumir. Mas de ante mão é sempre bom ler sobre um assunto pegando de várias fontes!

Abraços

outubro 31st, 2015

Posted In: Caixa de Ferramentas, Git

Tags:,

One Comment