Lays Marie Hidani
Git é um sistema de controle de versões. Todo o trabalho acontece na sua máquina (computador).
Já o GitHub é uma plataforma de hospedagem, controle de versão e colaboração. Funciona como uma espécie de "rede social" colaborativa dos programadores. Podendo visualizar o seu código e de toda a comunidade dentro da plataforma, clonar, etc. Faça o download do Git Acesse o GitHub
Quando falamos sobre repositório local estamos falando sobre o repositório (arquivos) que está na sua máquina versionado utilizando uma ferramenta de controle de versões como o git.
Já quando falamos sobre repositório remoto, nos referimos ao repositório hospedado em uma plataforma como o GitHub, por exemplo.
É um sistema de controle de versões distribuído, usado principalmente no desenvolvimento de software, mas pode ser usado para registrar o histórico de edições de qualquer tipo de arquivo. O Git foi inicialmente projetado e desenvolvido por Linus Torvalds para o desenvolvimento do kernel Linux, mas foi adotado por muitos outros projetos. Cada diretório de trabalho do Git é um repositório com um histórico completo e habilidade total de acompanhamento das revisões, não dependente de acesso a uma rede ou a um servidor central. -Wikipedia-
O workflow básico do Git pode ser descrito assim:
- Você modifica arquivos no seu diretório de trabalho.
- Você seleciona os arquivos, adicionando snapshots deles para sua área de preparação.
- Você faz um commit, que leva os arquivos como eles estão na sua área de preparação e os armazena permanentemente no seu diretório Git. - GIT -
Os comandos e interação do Git se dá pelo terminal (prompt de comando/shell/etc), após a instalação, também serão adicionados dois novos terminais a sua máquina (built-in do Git): o Git CMD (padrão Windows) e o Git Bash (padrão MacOs e Linux).
Mesmo que seu OS seja Windows, Mac ou Linux, você pode optar por usar qualquer um dos terminais GitCMD ou Git Bash.
Você pode optar por usar o terminal de sua própria máquina, ou os terminais do Git, ou mesmo qualquer outro de sua preferência.
Você poderá ainda usar o GUI ("Graphical User Interface"), onde, ao invés de executar os comandos via terminal, você poderá usar uma interface gráfica. O próprio Git já vem com um GUI na instalação (built-in): o Git GUI, mas existem outros para baixar conforme a sua preferência. Acesse o link abaixo para fazer o download: GUIs
GitHub é uma plataforma de hospedagem de código-fonte com controle de versão usando o Git. Ele permite que programadores, utilitários ou qualquer usuário cadastrado na plataforma contribuam em projetos privados e/ou Open Source de qualquer lugar do mundo. GitHub é amplamente utilizado por programadores para divulgação de seus trabalhos ou para que outros programadores contribuam com o projeto, além de promover fácil comunicação através de recursos que relatam problemas ou mesclam repositórios remotos (issues, pull request). -Wikipedia-
O GitHub é uma plataforma de hospedagem de código para controle de versão e colaboração. Ele permite que você e outros trabalhem juntos em projetos de qualquer lugar. -GitHub- Saiba mais
Basta acessar o site do GitHub e se cadastrar para começar a usar o site.
- Clone: copiar/clonar repositório remoto no seu computador.
- Add: comando para que o Git passe a "olhar" seus arquivos. Os arquivos passam de "Untracked" para "Staged" antes do 1º commit, e de "Modified" para "Staged", do 1º commit em diante
- Commit: consolidar todas as mudanças.
- Push (local -> remoto): sincronizar os arquivos do seu repositório local para o repositório remoto.
- Pull (remoto -> local): sincronizar os arquivos do seu repositório remoto para o repositório local.
- Não adicionado ao git (untracked)
- Preparado (staged/index)
- Modificado (modified)
- Consolidado (comitted)
É o primeiro estado do arquivo. Os arquivos estão na sua máquina, mas não estão aos cuidados do Git. Uma vez adicionado (add
) ao Git, ele não volta mais ao estado de untracked.
Depois de dar o comando "add
" ao Git, os arquivos passam para a área "staged", onde o git já está cuidando dos arquivos e está de olho em todas as alterações que estão acontecendo.
Em uma definição livre, pode ser considerada uma área de preparo, uma espécie de "palco", onde o Git assiste da plateia todas as modificações :)
Depois que comitamos o arquivo ele passa para a área "commited", que em uma tradução livre, consolida todas as mudanças do arquivo, oficializa.
Sempre que ocorrer uma modificação no arquivo, ele sairá de "commited" e passará para uma nova área chamada "modified".
Quando o arquivo é "add
" pela primeira vez ele sai de "untracked" (não rastreado) e passa a ser rastreado pelo Git, dessa forma, ele não irá voltar a estar em "untracked".
Ao invés disso, sempre que houver uma modificação, ele sairá de "commited" e passará para "modified", aguardando ser adicionado (add) a "staged" novamente e depois ser commitado.
Utilizaremos para os exemplos o terminal Git Bash.
Sempre que for executar um comando git, o terminal deverá estar aberto na pasta do repositório em questão.
Essa configuração inicial que seguirá nos tópicos é necessária somente quando inicia-se um novo repositório ou quando se deseja alterar alguma dessas configurações. Em repositórios já existentes, pula-se essa etapa.
git config --global user.name nome_de_usuario
(ex: git config --global user.name hlays)
Tipos de usuário:
- Global: configuração para minha máquina
- System: todos os usuários dessa máquina vão usar o mesmo login
- Local: para um repositório específico, caso específico. Por exemplo,uma pessoa usa sua máquina certa vez para commitar.
Assim, pode-se configurar como global, local, ou system, dependendo do caso. Na maior parte das vezes, utiliza-se global.
git config --global user.email e-mail
ex:
git config --global user.email meuemail@gmail.com
git config --global --list
Pode abreviar usando --l ao invés de --list ex:
git config --global --l
Basta executar o comando config de novo.
git config --global --unset user.name
Neste caso, levando em consideração que foi configurado usuário como global.
git config --global --unset email
Neste caso, levando em consideração que foi configurado usuário como global.
O editor de texto padrão do Git é o VIM, durante a instalação você também recebe um opção de alterar essa configuração. Mas se por algum motivo, depois de instalado, desejar mudar o editor padrão:
git config --global core.editor nome do editor que deseja
Navegue até o diretório através do comando cd
.
cd caminho_da_pasta
Dicas de abreviação/atalho
- Para voltar uma pasta acima/pasta anterior. Digite: cd ..
- Diretório principal: cd ~
- Listar o conteúdo de um diretório. Dentro da pasta em questão digite: dir
- Adicionar local padrão (Se você está sempre usando o mesmo diretório e deseja deixá-lo como padrão para sempre que abrir o terminal): basta clicar com o botão direito do mouse sobre o ícone do terminal do Git >>> Propriedades >>> Atalho >>> Iniciar em: >>> coloque o caminho para o seu diretório padrão >>> Aplicar >>> ok
ex:
cd desktop/projetos/site
Para listar os arquivos da pasta ls
cd .git
ls
Na primeira vez que você for fazer push de um repositório de sua máquina para o GitHub (somente a primeira vez mesmo, os próximos repositórios não necessitarão dessa configuração), você deverá gerar um conjunto de chaves SSH, uma pública e uma privada, elas servirão para autenticar seus gits no GitHub. Onde sua Chave pública do github será autenticada pela chave privada da sua máquina. Não se preoculpe que não é tão complicado quanto parece. Para acessar o passo-a-passo do próprio GitHub, basta acessar esse link.
No terminal digite o comando abaixo. Você deverá informar o mesmo e-mail que está cadastrado no GitHub
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
O prompt irá informar que está gerando as chaves. depois disso irá perguntar onde você deseja salvar a chave privada, se quiser no local já sugerido pelo git, basta teclar ENTER.
Depois disso ele irá perguntar se você deseja salvar uma senha adicional, geralmente não é necessário, então basta teclar ENTER. caso for inserir senha, deve-se digitar a senha e depois confirmar a mesma.
Entre no diretório das chaves salvas:
cd ~/.ssh/
Depois irá mostrar o nome das chaves, a que interessa é a .pub, copie o nome dela. Pode usar o comando [cat] ou [more]. Digite:
cat id_rsa.pub
Irá aparecer sua chave pública no terminal..copie.
Vá no site do Github, clique em sua imagem de perfil (botão verde no canto superior direito da tela) >>> settings (lado esquerdo da tela) >>> SSH and GPG keys >>> new SSH key (botão verde no canto superior direito da tela) >>> Digitar o nome/titulo (geralmente coloca-se o nome do seu pc) e colar a chave >>> Add SSH Key.
Os commits aparecem da ordem de criação mais recente para a mais antiga, e dizemos que o commit mais recente é filho do mais antigo, sucessivamente. Ex:
$ git log --oneline
a7b2440 (HEAD -> master) C5 - Quinto commit
d6ec6be C3 - Quarto commit
bd5dcc8 C2 - Terceiro commit
98f7dd4 C1 - Segundo commit
e0a52d7 C0 - Primeiro commit
Então: C0 é pai de C1, C1 é pai de C2, C4 é filho de c3, etc.
! Não escreva mensagens de commit como as do exemplo acima 'Segundo commit, Terceiro commit, etc'. Sempre escreva mensagens claras resumindo as alterações que você está fazendo no repositório. Lembre-se de que elas são um histórico do seu projeto.
Geralmente, se você colabora com repositórios da empresa onde trabalha, ou em projetos opensource, por exemplo, dos quais você faz parte da equipe, quando você desejar enviar seus commits com alterações do repositório em questão, precisará estar ajustado no Git como Colaborador, caso contrário ao tentar fazer o commit, será informado de "acesso negado".
Para isso, o dono do repositório deverá ir até a página do repositório em questão, clicar em settings >>> colaborators >>> e inserir seu nome de usuário.
Assim, sendo um colaborador, toda vez que enviar um commit, o dono do repoitório será notificado sobre suas alterações e deverá permitir ou não que elas sejam consolidadas.
Geralmente, se você colabora com projetos opensource, por exemplo, dos quais você deseja colaborar de alguma forma, quando você faz alterações em arquivos e deseja commitá-los para o repositório original (que não foi criado por você), deverá solicitar essa permissão através do botão pull request no Github. Suas alterações serão avaliadas e consideradas pelos colaboradores oficiais do repositório. Isso permite o controle sobre o projeto, sem que qualquer um mexa no repositório sem permissão e evitando alterações indesejadas.
Quando você faz um fork, cria uma cópia de um repositório remoto de outra pessoa para o seu repositório remoto, assim quando fizer alterações e commits nos arquivos deste repositório, estes serão refletidos no seu repositório e não no original.