Jump to content
alexandre1985

Aprender Git no Windows

Recommended Posts

alexandre1985

Este tutorial é para quem se está a iniciar no Git para Windows. Vão a http://git-scm.com/ e instalem o Git.

O git para windows instala um programa chamado "Git Bash" e é esse programa que vamos usar neste tutorial.

Primeiro, abram o Git Bash. Como vêem, é uma linha de comandos.

Tem de configurar o vosso git com estes comandos(só fazemos isto 1ª vez):

git config --global user.name "teu nome" (em que teu nome é o teu nome)

git config --global user.email "teu email" (em que teu email é o teu email)

Alguns comandos para navegar no Git Bash

cd pasta -> move a linha de comandos para pasta

ls -> mostra todos os ficheiros que estão dentro da pasta actual

pwd -> mostra o path da pasta actual

explorer . -> abre o explorer do windows na pasta actual

Agora que temos estes comandos podemos navegar para a pasta do nosso projecto de programação.

NOTA: De notar que se queremos ir para a pasta superior à pasta em que estamos fazemos 'cd ..'

Na verdade o '..' significa pasta parente (pasta que está acima da actual) e o '.' significa pasta actual. Por isso se quisermos ir para duas pastas acima da actual fazemos 'cd ../..'

Agora para irmos para a pasta dos nosso projectos. Imaginemos que estamos em "C:\Users\Joao\" e queremos navegar para "C:\Users\Joao\Documents\NetBeansProject\proj" . Fazemos 'cd Documents/NetBeansProject/proj'

importante: Podemos usar o botão Tab (botão paragrafo) para completar o nome de uma pasta ou ficheiro. Por exemplo, fazemos 'cd Doc' e depois carregamos em Tab, e o git bash completa o nome de Doc para Documents. Só tens de escrever as primeiras letras e depois carregas em Tab que o Git Bash completa o nome que querias dizer.

Agora que já estamos na pasta dos nossos projecto, fazemos git init para começar um novo repositório.

Um repositório é o local onde vais guardar todas as snapshots do teu projecto (todas as modificações do teu projecto).

O teu repositório é uma pasta de nome '.git' que se vai criar na pasta onde fizeres o git init. Aí vai estar toda a informação do teu repositório. Se quiseres apagar o teu repositório é só apagares a pasta '.git'

Agora que já temos um repositório já podemos guardar uma snapshot (neste caso vai ser a primeira snapshot) do estado actual dos nossos ficheiros. Para isso executamos:

git add --all :/

git commit -a -m "inicio"

Agora já tens o 1º commit (ou snapshot) do teu projecto. Todos os commits tem um nome e o nosso primeiro chama-se "inicio", tal como está no comando git commit -a -m "inicio" . Se quisermos por outro nome é só alterar "inicio" para "outro nome qualquer".

Para tirarmos snapshots aos nossos ficheiros fazemos o git commit . Este é o comando que guarda o estado actual dos nosso ficheiros dentro do repositório.

Uma commit é isso mesmo, é o estado dos teus ficheiros num determinado tempo. É como se fosse uma fotografia de todos os teus ficheiros do projecto. Podemos ver todas as tuas "fotografias" do teu projecto com o comando:

git log

Todos os commits tem um hash que são os numeros que representam o teu commit. O hash é a string que está na primeira linha de cada commit quando fazemos o git log.

Para verificarmos se existem ficheiros que foram modificados e ainda não foram commited usamos o comando:

git status

Está aqui um site em inglês que explica melhor do que eu como funcionar com o git

https://www.atlassian.com/git/tutorials/setting-up-a-repository/

Edited by alexandre1985

Share this post


Link to post
Share on other sites
alexandre1985

Imaginemos que já temos muitos commits dentro do nosso repositório. Se quisermos ver como eram os nossos ficheiros num determinado commit fazemos:

git checkout hash_do_commit

em que hash_do_commit é um hash de um dos teus commits, por exemplo, db18e90e . Não precisas de escrever o hash todo, os primeiros 4 caracteres do teu hash chegam.

Depois se quiseres voltar a por os teus ficheiros no estado em que estavam fazes: git checkout master

Se quiseres por os teus ficheiros como estavam num determinado commit, e apagar todos commits posteriores a esse, fazes:

git reset --hard hash_do_commit

Isto apaga todos os commits posteriores a hash_do_commit e nunca mais vais ver esses commits. Cuidado ao fazer esta operação! Tens de ter a certeza do que estás a fazer.

Se tens o teu repositório online, por exemplo no GitHub, nunca uses o comando git reset --hard. Utiliza invés git revert hash_do_commit para fazeres a mesma operação.

Edited by alexandre1985

Share this post


Link to post
Share on other sites
alexandre1985

Agora vamos por o nosso repositório online, no GitHub. Vais passar a existir 2 repositórios, um local e um online.

Para isso temos de ter uma conta no http://github.com . Regista-te só, não faças download de nenhum programa.

Antes de começarmos vamos criar uma key para pudermos aceder ao nosso repositório por ssh. Aqui https://help.github.com/articles/generating-ssh-keys/ explica como fazemos.

Depois de termos a nossa key no GitHub, vamos à nossa pagina principal do GitHub e escolhemos "New repository". Damos um nome ao nosso repositório e escolhemos "Create repository" .

Depois dentro do Git Bash, fazemos cd até à pasta do nosso projecto. Agora fazemos:

git remote add origin url em que url é o link do nosso repositório. Ele vai ser algo como "git@github.com:nick_no_github/nome_do_repositório.git"

E por fim fazemos: git push -u origin master

Isto vai enviar o nosso repositório local para o repositório online.

Agora já temos 2 repositórios, um online e outro local.

O git funciona da seguinte maneira: tu tens sempre um repositório local e a única coisa que vais fazer é sincronizar os commits do teu repositório local com os commits do repo online. Tu trabalhas sempre com o teu repo local, só depois é que sincronizas os commits do teu repo local com os commits do teu repo online para ficar tudo online.

Quando for para sincronizar os teus repositórios, primeiro tens de fazer commits do teu trabalho para o repo local. Depois fazes:

git pull origin master

(isto vai buscar os commits do teu repo online e põe-os no teu repo local). Depois fazes:

git push origin master

(isto vai enviar os teus commits do teu repo local para o repo online)

Tens de fazer sempre o pull antes do push

Edited by alexandre1985

Share this post


Link to post
Share on other sites
alexandre1985

Vamos criar uns atalhos para ser mais fácil trabalhares com o Git Bash.

Abre o Git Bash e escreve estes comandos lá dentro (podes copiar e colar. para colar fazes Shift + Insert dentro do git bash):

echo "alias ls='ls --color=auto'" >> ~/.bashrc; echo "alias log='git log --oneline --decorate --graph'" >> ~/.bashrc; echo "alias commit='git add --all :/ && git commit -a -m'" >> ~/.bashrc; echo "alias push='git push'" >> ~/.bashrc; echo "alias pull='git pull --rebase origin master'" >> ~/.bashrc;

e agora fecha o git bash com o comando exit e depois volta a abrir outra vez o git bash.

Agora já temos uns atalhos configurados.

Sempre que quiseres fazer um commit fazes:

commit "comentario do commit"

(nunca te esqueças das aspas)

Sempre que quiseres ver os teus commits fazes:

log

Sempre que quiseres fazer um pull escreves:

pull

Sempre que quiseres fazer um push fazes:

push

Assim está tudo mais simplificado para ti

Edited by alexandre1985

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.