Git e GitHub para iniciantes

Preview:

Citation preview

@americano

git & GitHub Para iniciantes

Knowledge worker

Estamos na era da informação e somos knowledge workers! Trabalhamos com a bunda sentada na cadeira, operando

um computador criando e editando documentos.

Fluxo de trabalho

1. Criar um arquivo 2. Salva-lo 3. Editá-lo 4. Salva-lo de novo 5. etc.

Vida de arquivo

Controle de versão manual

Podemos automatizar isso?

Para cada versão do documento, precisamos de saber:

1. Quando o arquivo foi modificado? 2. O que mudou? 3. Por que ele foi modificado?

E tem mais… trabalhando em times

Mais uma perguntinhaPara cada versão do documento, precisamos de saber:

1. Quando o arquivo foi modificado? 2. O que mudou? 3. Por que ele foi modificado? 4. Quem fez a modificação?

Resumindo

Queremos uma ferramenta que:

1. “traqueie” a versão do documento 2. mantenha um histórico das mudanças

no documento 3. incentive o trabalho em grupo

Set up

Download e instale Git: http://git-scm.com/

Setar ID

$ git config --global user.name "Sebastien Saunier”$ git config --global user.email "seb@lewagon.org"

Comandos básicos

Starting

$ mkdir new_project$ cd new_project$ git init

Status

$ git status

git te informa se houve alguma mudança no diretório em que você está trabalhando (diretório sujo)

Commit

2-steps process

# Select which file to add to the commit.$ git add <file_1_which_has_been_modified>$ git add <file_2_which_has_been_modified>

# Take a snapshot of what is in the staging area.$ git commit --message "A meaningful message about this change"

Diff

Use git status para saber se houve mudanças no diretório e use git diff para saber exatamente o que mudou:

$ git diff$ git diff <a_specific_file_or_folder>

Log

Veja o histórico de commits

$ git log

Branching

One feature = One branch

Branch

$ git branch my-feature

Trabalhando no Branch

$ git checkout my-feature$ git commit (x2)

Merge

$ git checkout master$ git diff master..my-feature$ git merge --no-ff my-feature

Clean up

$ git branch -d my-feature

Remote

We need a remote!

Crie um repositório no GitHub: https://github.com/new

$ git remote add origin https://github.com/<user>/<project>.git

Push

Compartilhe seu código com seu time (e com o mundo!)

# Generic command$ git push <remote> <branch>

# What we'll use$ git push origin master

Pull

# Generic command$ git pull <remote> <branch>

# What we'll use$ git pull origin master

Github Desktop app

desktop.github.com

Página de perfil

Página de repositório

Commits & Branches

Pull requests

Issues

Forks

Colaboração open source

Github pages

Hospedando seu site estático de graça!!

Repo example: lewagon/ui-components

Obrigado!