Skip to content

Podcasts

Podcasts published on

Podcasts são programas de áudio que você pode escutar no seu computador ou em um aplicativo no seu celular (eu uso o PodStore) enquanto está no ônibus. Podcasts são uma excelente fonte de informação sobre diversos temas, tais como, tecnologia, ciência, política, música, cinema…  Meus podcasts favoritos são: Hipsters.tech, Scicast, Xadrez Verbal, NerdCast, AntiCast e Fronteiras no Tempo. O Hipsters foca computação e aborda desenvolvimento de software e tecnologia. 

Episódios sugeridos

Hipsters.tech

Sicast

Anticast

Tutorial de GIT: Linha de Comando

Tutorial de GIT: Linha de Comando published on No Comments on Tutorial de GIT: Linha de Comando

O git é um sistema de repositórios distribuído, sua principal característica é que todas instâncias armazenam todo o histórico de alterações do projeto. Neste tutorial vamos aprender a instalar o git no Linux, configurar e utilizar alguns comandos básicos.

Instalação

Para instalar o git 1º abra um terminal do Linux (ctrl+alt+t), e então vamos utilizar o apt-get (Advanced Packaging Tool) para esta tarefa:

Atualize o apt-get:

$ sudo apt-get update

Instale o git:

$ sudo apt-get install git

Configurações

1º O padrão de push pode ser simple ou matching. Não vamos entrar em detalhes sobre esta configuração neste momento, execute o comando a seguir para selecionar o simple:

$ git config --global push.default simple

2º Configurando a Identidade: A assinatura dos commits inclui o username e e-mail que devem ser configurados com os seguintes comandos:

$ git config --global user.name "Fulano Silva"
$ git config --global user.email fulanosilva@example.com

Caso queira configurar username e e-mail para um projeto específico utilize este comando sem o –global na pasta raiz do projeto.

Clonando um repositório já existente

Se o repositório que deseja trabalhar já existe utilize o comando clone como o endereço do projeto para baixar na sua máquina: (o endereço pode ser obtido na páginaweb do projeto se for um repositório do github.com ou gitlab.com)

$ git clone [link_para_o_repositorio.git]

Associando um projeto de software sem controle de versão com um repositório git

Se você já tem um repositório e deseja utilizar o git com ele, primeiro você deve ter um serviço de repositório git, faça uso de serviços gratuitos disponíveis na web, por exemplo, github.com ou gitlab.com. Acesse a página crie uma conta e crie um repositório, após essa etapa realizada o teu repositório git deve ter um endereço como este: https://github.com/usuario/nome_do_projeto.git

Agora vamos iniciar o repositório, acesse o terminal na pasta raiz do seu projeto:

$ git init

Vamos adicionar ao controle de versão todos os arquivos existentes no projeto com o comando add .

$ git add .

Agora precisamos associar o nosso repositório remoto com o repositório local recém criado:

git remote add origin https://github.com/username/nome_do_projeto.git

Realize o primeiro commit do projeto:

$ git commit -m ‘Primeiro commit do projeto’

Em seguida vamos realizar o push para enviar para o repositório remoto:

$ git push -u origin master

Pronto! Agora você o seu projeto tem controle de versão com o git, você já pode trabalhar nele realizar commit, pull e push, e compartilhar com os demais colaboradores do projeto.

Fluxo de trabalho comum

O fluxo de trabalho comum consiste em realizar modificações no seu projeto, realizar commits e push para enviá-las, você também precisará utilizar o comando pull para receber atualizações do demais colaboradores. Nesta etapa vamos abordar o fluxo básico em um senário perfeito:

Antes de começar a desenvolver certifique-se que o seu repositório esta com a versão mais atual do projeto:

$ git pull

Durante o desenvolvimento é comum o desenvolvedor realizar diversos commits, você deve sempre separar em cada commit uma tarefa específica. (não faça duas tarefas distintas em um mesmo commit!) Realize um git add antes para incluir os novos arquivos e depois o commit com uma mensagem explicativa.

$ git .
$ git commit -m ‘mensagem explicativa’

Após um período de trabalho você pode ter realizado vários commits, até o momento as suas contribuições estão no repositório local. Para enviar para o repositório remoto e disponibilizar o código para os seus colegas realize um git push.

$ git push

Leia com atenção as mensagens de retorno do comando. Verifique se o seu push foi realizado com sucesso, se houver qualquer mensagem escrito error o seu push não foi realizado.

Entendendo melhor os contextos no sistema Git

  1. Não Versionados ou Não rastreados: são os arquivos que não foram incluídos no sistema de versionamento, muitas vezes isto é desejável quando o arquivo contém informações sensíveis como senhas ou quando é um arquivo temporário e descartável que pode ser gerado pela maioria dos frameworks. Para incluir todos arquivos e pastas no versionamento precisamos utilizar o comando: “git add -A”. Você pode incluir arquivos em uma ingnore list do git, este arquivos não serão versionados automaticamente, essa configuração é feita em uma arquivo “.gitignore” na raíz do seu projeto (este arquivo é oculto).
  2. Área de trabalho: é o contexto em que o usuário está trabalhando modificando os arquivos, mas estas modificações ainda não foram submetidas para o repositório local ou remoto. Neste estágio o git ainda não tem nenhuma tipo de controle sobre essas modificações.
  3. Repositório Local: este repositório está na máquina do usuário, o git já tem um controle sobre as alterações realizadas e já as registrou em sistema local. Neste ponto as alterações ainda não foi compartilhadas com os demais participantes do projeto. O repositório local funciona como estágio intermediário, entre as alterações que são realizadas na área de trabalho e as que serão enviadas para os demais participantes. Para submeter as modificações que estão na área de trabalho para o repositório local utilize o comando “git commit -m ‘mensagem de texto descrevendo as modificações'”.
  4. Repositório Remoto: este repositório geralmente fica disponível em um servidor na rede ou internet, nele que as modificações de todos os contribuidores são recebidas e distribuidas. Para enviar os commits do repositório local para o repositório remoto utilize o comando “git push”, você pode acumular vários commits no repositório local para depois realizar um push enviando todos os commits para o repositório remoto em uma única operação. Para trazer alterações remotas enviadas por outros desenvolvedores utilize o comando “git pull”, estas alterações serão aplicadas no repositório local e na área de trabalho.

Problemas: Repositório desatualizado

Se o seu repositório estiver desatualizado em relação ao remoto você não conseguirá realizar o commit. A mensagem de erro deve ser similar a esta:

error: failed to push some refs to ‘https://github.com/usuario/projeto.git’
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push –help’ for details.

Isso acontece quando outro desenvolvedor modificou o repositório remoto após o seu git pull anterior e enquanto você trabalhava. Neste caso você dever realizar um git pull para sincronizar as atualizações e depois enviar as suas alterações com git push.

$ git pull
$ git push

Problemas: Merge alterações no mesmo arquivo

Quando há diferenças entre o repositório remoto e o local em um mesmo arquivo o git tenta realizar um merge automático após o pull neste caso ele apresenta o editor de código nano (padrão ubuntu) para você escrever uma mensagem informativa.

Escreva a mensagem e pressione CTRL+X para sair, em seguida ele pergunta se deseja salvar pressione Y de Yes e por fim, para confirmar o nome do arquivo pressione ENTER.

Resumo dos comandos

  • git add: adiciona arquivos no versionamento.

Sintaxe: “git add [URL_do_arquivo]”

É comum utilizar a opção . para adicionar todos os arquivos não versionados.

Exemplo: “git add .”

  • git clone: cria uma cópia local de um repositório remoto já existente, por exemplo, é a primeiro comando para baixar um projeto que você queira contribuir.

Sintaxe: git clone [URL_do_repositorio]

git clone git://github.com/schacon/grit.git

  • git push: envia alterações do repositório local para o repositório remoto;

Sintaxe: git push

  • git pull: recebe alterações que estão no repositório remoto e as aplica no repositório local e na área de trabalho. Para muitos casos o git consegue sincronizar alterações, mesmo que seja nos mesmos arquivos, porém em alguns há conflitos de alterações na mesma linha e o git não realizará a integração automática e você deve fazer o processo manual.

Sintaxe: git pull

  • git commit: submete as alterações da área de trabalho para o repositório local.

Sintaxe: “git commit -m ‘mensagem de texto descrevendo as modificações’ “