Escolar Documentos
Profissional Documentos
Cultura Documentos
giitHub
Me segue lá https://github.com/MarcosMthJr
^^
Instalando o Git
Basta entrar no site baixar e seguir os passos, é bem simples.
• para configurar o editor padrão (passa o comando no terminal que abre o editor, no meu caso
o vscode é code):
◦ git config --global core.editor code
Inicializando um repositório
Acesse o diretório do seu projeto pelo terminal, ou crie esse diretório caso não exista.
E para inicializar o repositório e ele fazer parte do ecossistema do git, você digita:
git init
ele vai criar um diretório dentro do que você criou, essa pasta criada ela vai armazenar informações do
seu repositório, como configuração, branches e etc…
Commit
Commit é quando você cria uma versão dos arquivos no seu diretório.
Só é criado um commit dos arquivos que estão em stage!
Untracked : Arquivos marcados como untracked são arquivos não monitorados pelo Git. Os arquivos
que acabaram de ser criados sempre estarão com esse estado.
Stage: Os arquivos marcados como stage são os arquivos novos ou modificados que serão salvos no
próximo commit. O que o comando anterior git add faz é adicionar os arquivos de untracked e
modified para stage.
Unmodified: Quando realizamos um commit, os arquivos saem de stage para unmodified, isso significa
que, na linha do tempo, seu arquivo está igual ao estado salvo no último commit.
Modified: São os arquivos já monitorados pelo Git que sofreram alguma alteração desde o último
commit.
Manipulando arquivos
(criando, modificando e commitando)
Para ver o status do repositório, basta digitar git status
(se o diretório estiver vazio, ele vai aparecer “ nothing to commit” )
Caso não exista, crie um arquivo qualquer, pode ser um Readme.md por exemplo.
Se você digitar um git status depois de criar esse arquivo, você vai perceber que ele está no seu
primeiro estágio (Untracked files)
Para adicionar esse arquivo ao stage para ser possível realizar commit , basta digitar git add arquivo,
nesse caso: git add Readme.md
Se der um git status, ele vai retornar que você tem um novo arquivo que já pode ser possível realizar o
commit
new file: Readme.md
Nesse momento ele tá em Stage
Mas se você editar esse arquivo, e der o git status ele vai mostrar que um arquivo foi modificado
modified: Readme.md
para que ele possa salvar a modificação nesse arquivo, basta dar o comando git add Readme.md
Assim ele voltará para Stage e pode realizar o commit.
Realizando commit
Para realizar um commit, digite:
git commit -m “Mensagem”
assim ele vai realizar o commit de todos os arquivos que foram adicionados ao git (git add)
Uma boa prática é colocar na mensagem qual alteração você fez antes de realizar o commit.
Exemplo se eu adicionei um novo arquivo, eu colocaria
git commit -m “Add Readme.md”
é uma forma de criar um log para as pessoas se localizarem com mais facilidade.
Depois de dar esse comando, ele vai retornar o diretório que você tá, também vai retornar uma
hash(codigo) e um comentário, essa hash é o código daquela versão, é a partir desse número que você
consegue voltar para a versão desejada.
Se você digitar git status, ele vai dizer que não há nada para realizar o commit, porém se você editar
ele vai entrar em modified e para realizar o commit precisar dar o git add novamente no arquivo
desejado, e assim vai criando, modificando, adicionando ao stage e criando versões .
Visualizando Logs
Para visualizar o log da forma mais básica é só digitar o comando git log, vai ser apresentado uma
hash do commit, autor a data e mensagem do commit.
O comando git log --decorate mostra algumas informações, como de qual branch e ele saiu e para qual
branch ele foi, tags geradas e etc…
Outra opção bem interessante é filtrar pelo autor:
git log --author=”Nome do Autor”
(caso procure de alguém que não exista ele não retornará nada )
Pra visualizar de forma gráfica o que esta acontecendo com seus branches e suas versões digite:
git log - -graph
Para obter informações de determinado commit(versão), copie a hash do commit desejado, e digite:
git show hashCopiada
E você vai ver suas alterações
--mixed: ele vai tirar o arquivo do commit, mandando ele de volta para antes do stage (para o
modified)
Ex: git reset --mixed hashDoCommitQueDesejaManterComoUltimo
- -hard: ele vai ignorar a existência desse commit e tudo que foi feito nele, ele vai apagar o commit
completamente!(tenha muita certeza que nunca mais vai querer acessar arquivo antes de dar esse
comando!)
Ex: git reset --hard hashDoCommitQueDesejaManterComoUltimo
Criando Repositório no gitHub
Entre no site do gitHub, crie um conta e logue.
• Ao fazer login, você terá acesso a uma opção que tem um ícone de + ao lado da sua foto de
perfil, clique nele e selecione New repository.
• Escolha um nome para seu repositório, esse nome tem que ser único para você, não pode ter
um repositório com o mesmo nome.
• Digite uma descrição
• Selecione a opção de visualização de código(public: qualquer um pode ver seu código, private:
só você e quem você compartilhar que poderá ver)
• Você também pode escolher se quer ou não inicializar seu repositório já com o Readme,
gitignore e licença. (como ao decorrer desse material você já criou um repositório local, não
vamos marcar essa opção)
• Clique em create repository
Pronto Repositório criado!
• Vai pedir para selecionar onde quer salvar a chave “Enter a file in which to save the key (/
home/you/.ssh/id_rsa): [Press enter]” pode deixar a padrão, só apertar ENTER
• Vai pedir para colocar uma passphrase para aumentar a segurança, e logo pede para
confirmar “> Enter passphrase (empty for no passphrase): [Type a passphrase]> Enter
same passphrase again: [Type passphrase again]” é só apertar ENTER e deixar tudo
padrão
Localizando a Chave e Adicionando no gitHub
• para localizar sua chave ssh na sua maquina: basta digitar
• digite o comando cd ~/.ssh/ no seu terminal para navegador até o diretório que estão as
chaves criadas. (~ é sua home e o .ssh é porque é um diretório oculto)
◦ dê um ls e veja se as chaves estão ai
◦ A chave id_rsa.pub é a chave que vamos colocar no nosso gitHub.
• Copie essa chave com o comando cat id_rsa.pub (ou pode abrir com um editor de texto)
▪ Navegue até seu diretório que tem seus arquivos pelo terminal.
▪ Copie o código e cole no seu terminal
• git remote add origin https://github.com/seuUsuario/seuRepositorio.git
◦ “origin” é o nome da sua pasta de origem no gitHub, você pode mudar esse
nome ou deixar o padrão
• e digite git push -u origin master
◦ esse comando diz para onde vai (diretório remoto “origin”) e de onde
vem(“diretório master”) se for necessário mude esses valores conforme suas
configurações.
▪ Ao executar os comandos ele manda para o seu repositório no gitHub e exibe algumas
informações. Volte para seu gitHub e atualize a pagina do seu repositório, verifique se
os arquivos foram “upados” com sucesso!
Enviando mudanças para o gitHub
Faça o commit normalmente dos seus arquivos modificados ou criados
• Abra o terminal e digite:
◦ git add arquivo / git commit -m ”mensagem” ou
◦ git commit -am “mensagem” para adiconar no stage e já realizar o commit de uma vez sófoi
▪ o commit foi feito em seu repositório local
Para que ele vá para seu repositório no gitHub digite:
• git push origin master
◦ origin = diretório remoto
◦ master = branch que você está, sempre que cria um repositório incial o branch se chama
“master”
▪ vamos ver branch mais pra frente, rlx ae ! :D
Basta dar ENTER e pronto, ele vai enviar para o gitHub
Pronto, ele vai fazer uma cópia de todo repositório da pessoa dentro do seu repositório.
A diferença entre git clone eu fork, é que se você fizer uma modificação com arquivo clonado, você não
vai conseguir enviar, pois, não tem permissão .
O que o branch faz é apontar para algum commit(para uma versão do projeto)
Vou te dar um exemplo bem besta, mas, é fácil de entender:
Quando você quer criar uma nova versão do projeto, o que você faz ? Se você for inteligente, você
vai criar um diretório com os arquivos do projeto original copiados dentro dele, e com o nome da
versão (ex: projetoX_2.0), isso para que você possa fazer as atualizações e programar novos recursos
sem modificar o código da versão que está pegando (versão projetoX_1.0).
O branch é mais ou menos isso, ele cria um “diretório” que aponta para um commit (uma versão), sem
modificar a versão que está no branch MASTER ou em outro branch que você queira manter intacto
até fazer as modificações necessárias no projeto copiado.
Branch no mesmo commit
Você pode criar um branch que aponta para o mesmo commit que outro branch está apontando, isso
funciona da mesma maneira quando você cria uma pasta no computador e tem os mesmos arquivos
de outra pasta dentro dele..
Aqui nessa imagem temos dois branches o master e o testing apontando para a mesma hash de um
commit.
Criando um branch
Para criar um branch abra seu terminal e digite : git checkout -b nomeDoBranch
Pronto ele vai criar e já vai entrar no branch para você.
Para ver os branches existentes digite: git branch
Repare que tem um branch com um * logo no inicio do nome dele, esse * é pra sinalizar qual branch
você está.
Aqui criamos um
novo branch e
fizemos um novo
commit do Master
nesse novo branch
chamado hotfix.
(temos uma
ramificação, dois
branches apontando
para commit
diferentes porém
com o os arquivos do
master)
Crimos um novo commit no
branch iss53, o commit C5.
E reparamos também que o
branch hotfix não existe mais,
na verdade o seu commit agora
é o master, pois ele foi
adicionado ao branch principla
master.
O C4 pode ser unido ao master seja via
merge ou rebase, como não existe
nenhum commit antes/depois, ele vai
juntar a só o commit do hotfix mesmo.
Para jogar esses dois commits do branch ss53 para o Master usando o merge, temos que criar um
novo commit e esse commit novo vai juntar todas as modifcações feitas no outro branch (C3 e C5 vai
juntar com C4), veja na imagem abaixo, o commit novo é chamado de C6.
Ele vai criar um commit extra no master (C6) com as modificações que você fez no branch iss53
por isso C6 é resultado dos arquivos que estavam em C3, C5 e C4
Pro e Contra:
pro:
• Operação não destrutiva
◦ Ele não vai destruir nenhum commit, ele cria um novo commit para juntar tudo
Contra:
◦ commit extra, que não vai ser usado para nada além de unir arquivos
• Histórico poluído
◦ Se tiver muitos branches você acaba criando uma árvore com várias linhas e fica
complicado entender.
Rebase
Vamos agora aplicar o rebase
Merge na prática
Depois de ter criado outro branch sem ser o master e ter adiconado arquivos nele, e feito tudo que
queria, e ter realizado o commit, basta só digitar: git merge nomeBranchCriado
ex: git merge teste
Ele vai abrir uma tela de merge, que diz qual branch ele vai mesclar com o master “Merge branch
teste”
E dentro dele também mostra os commits feitos é só salvar e sair. E pronto.
Se digitar um git log você vai ver os commits e também vai ver um commit escrito “Merge banch”
Rebase na prática
Depois de ter criado outro branch sem ser o master e ter adiconado arquivos nele, e feito tudo que
queria, e ter realizado o commit, você tem que mudar de branch, precisa voltar para o master ou para
outro branch destino que você quer unir as mudanças do outro branch, logo após mudar com o
comando git checkout branchDestino basta só digitar: git rebase nomeBranchCriado
Criando o .gitignore
Ele serve para ignorar alguns arquivos como senha na hora de enviar os arquivos para um repositório
no gitHub.
Ele é um arquivo que fica na seu diretório principal e dentro dele você usar alguns padrões para dizer
ao git quais arquivos ele n deve subir.
Passo a passo:
Para usar e configurar o .gitignore, você pode seguir esses passos.
1. Crie um arquivo chamado .gitignore dentro do seu diretório principal, e abrir esse arquivo com
um editor de texto.
2. Você pode ignorar por extensões, nome ou pastas.
1. Para ignorar um tipo de extensão coloque dentro do seu .gitignore a extensão desejada,
com um *. antes, dessa forma ele vai ignorar qualquer arquivo com aquela extensão ex:
*.json
2. Para ignorar um arquivo com um determinado nome coloque dentro do seu .gitignore a o
nome do arquivo, e dessa forma ele vai ignorar qualquer arquivo com esse nome ex:
arquivoX.php
3. Para ignorar arquivos de uma pasta digite no seu arquivos .gitignore o nome da pasta
acompanhado comm um ex: pastaX/*
3. Agora salve seu arquivos .gitignore, e digite git status e verifique se sua configuração
funcionou.
Uma dica. Existe um site que você coloca os editores de texto, arquivos, pastas etc que você
deseja configurar para ser ignorado e ele gera um arquivo .gitignore para você.
https://www.gitignore.io/