Básico de Git

_old nunca mais!

Se você já teve alguma experiência com programação, com certeza já criou alguma pasta _old, _backup ou algo parecido. Provavelmente você queria fazer uma alteração e estava "guardando" a versão anterior do seu código.

Não é assim que os melhores programadores trabalham. Eles normalmente usam alguma ferramenta de controle de versão para ajudá-los na tarefa de adicionar uma nova versão de seu código e poder criar novas versões, sem a necessidade de fazer cópias manuais.

Existem várias ferramentas de controle de versão, tais como:

  • Git
  • Subversion
  • Mercurial
  • Merant PVCS
  • Visual Source Safe

Todos elas têm suas vantagens e desvantagens e não vamos discutir sobre elas. Aqui, vamos falar especialmente do Git, o controle de versão usado para controlar a versão do código do Kernel do Linux e criado pelo o Linus Torvalds, o mesmo cara que criou o Linux.

O Git também é usado pelo Github e foi lá que você criou uma conta para se cadastrar aqui no Code Saga, então já está familiarizado pelo menos com o nome ;)

Chega de enrolação e vamos ao que interessa!

Instalação

O primeiro passo é instalar o Git e isso pode ser feito com o comando abaixo se você estiver usando Ubuntu (ou outra distribuição de Linux que use apt-get como gerenciador de pacotes):

$ apt-get install git

Para instalação no Mac e no Windows, você pode conferir este link:

Se identificando

Após instalar o Git na sua máquina, chegou a hora de se identificar, dizer ao Git quem você é para que ele saiba reconhecer quem "comitou" o código, para isso:

$ git config --global user.name "Seu nome"
$ git config --global user.email "seu e-mail"

Colocando essa opção --global estamos dizendo que para todos os repositórios Git nessa máquina valerá essa opção, a menos que ela seja redefinida.

Taxonomia de um comando Git

Sempre que falarmos de um comando, a estrutura será a seguinte:

  • git
  • nome do comando git que queremos executar, Ex: git config
  • opções, Ex: git config --global
  • argumentos, Ex: git config user.email, para mostrar o email definido

Se quiser ver todas as configurações definidas na sua máquina podemos usar o comando:

$ git config --list

ou

$ git config --global --list 

Obtendo Ajuda

Muito parecido com o shell com o Git também é muito fácil obter ajuda:

$ git help # mostra help geral
$ git help config # mostra help específico para o comando citado

Se precisar de ajuda para um comando especifico basta dar git help <comando>, veremos alguns comando hoje e o help pode te ajudar.

Iniciando um repositório

No seu diretório workspace, você tem um diretório workspace, né? Na sua pasta HOME em ~/workspace, crie um diretório, meu_projeto.

$ cd ~/workspace
$ mkdir meu_projeto

Neste diretório, vamos dar o comando git init, para dizer ao Git que queremos que ele comece a "olhar" para os arquivos nesse pasta:

$ cd meu_projeto
$ git init
$ ls -a
. .. .git

Como pode ver o git criou um arquivo .git, me cobrem de falar mais dele em outro encontro nosso ;). Esse diretório tem tudo que o Git precisa para trabalhar e indica que esse diretório está sendo controlado pelo Git.

Adicionando e comitando

Aposto que está ansioso para ver como o Git controla a versão dos arquivos do seu projeto, vamos lá então, primeiro vamos criar um arquivo README.md e ver o que o Git nos diz com o comando git status:

$ touch README.md
$ git status
On branch master

Initial commit

Untracked files:
        README.md

nothing added to commit but untracked files present

Ele nos diz que há arquivos não controlados (untracked), em outras palavras, arquivos que o Git ainda não faz controle. Então agora vamos adicionar a area de seleção do Git:

$ git add README.md
$ git status
On branch master

Initial commit

Changes to be committed:
        new file:   README.md

Agora ele nos diz que há mudanças a serem comitadas (gravadas), sendo assim vamos comitar!

$ git commit -m "Meu primeiro commit"
$ git status
On branch master
nothing to commit, working directory clean

Pronto, fizemos nosso primeiro commit no Git! O comando git commit grava nossas modificações e a opçõa -m é para o Git receber uma mensagem para nosso commit, sem mensagem o Git reclama!

Visualizando commits

Para ver o nosso commit, podemos usar o comando git log:

$ git log
commit 405ef53eec6995d6be608d5b419774eed321adcf
Author: Seu nome <email@gmail.com>
Date:   Mon Apr  4 17:58:17 2015 -0300

    Meu primeiro commit

Digite q para sair do log.

Mais sobre adicionar e comitar

Muito simples até agora, né? Vamos agora mostrar o poder do controle de versão.

Vamos abrir o arquivo README.md e fazer algumas alterações.

$ atom README.md

Esse comando só funciona se você tem o Atom instalado, mas você pode usar qualquer editor de código ou texto.

Altere o arquivo e salve, volte ao terminal e dê o comando:

$ git status
On branch master
Changes not staged for commit:
        modified:   README.md

no changes added to commit

Veja que interessante, o Git nos diz que há mudanças que ainda não foram selecionadas para commit, sendo assim, vamos adiciona-las.

$ git add README.md
$ git status
On branch master
Changes to be committed:
        modified:   README.md

E agora está no "jeito" para commit, é só colocar pra dentro ;):

$ git commit -m "Altera o README.md"

Se você esquecer o -m o Git vai abrir o editor definido em git config core.editor no meu caso o vim, vamos alterar para o nano:

$ git config core.editor
core.editor=vim
$ git config core.editor "nano"

Altere mais uma vez o arquivo README.md e commit com o comando:

$ git add README.md
$ git commit

Isso vai abrir o editor nano, escreva sua mensagem no commit e salve com Ctrl+X e depois Y para confirmar.

Bem, por hoje é só, tente entender um pouco mais sobre a área de seleção, sobre o arquivo .gitignore (falaremos mais dele em breve) e prepare-se para o próximo tutorial Git Remoto

Fonte Obrigatória: Git Essencial - Gravando Alterações no Repositório

Faça login para comentar.

Entrar

30 Comentários

leonardotho93

leonardotho93 há 4 meses

$ subl README.md bash: subl: command not found

o que fazer?


Henrique Morato

Henrique Morato há 4 meses

Você pode usar qualquer editor de código, se está usando o Atom: atom README.md, com o VSCode: code README.md, qualquer editor de texto também abriria esse arquivo.


tchesk

tchesk há aproximadamente 1 ano

[diretorio workspace macos]

Ola Boa noite! Tentei de diversas formar criar o repositorio workspace, pesquisei mas nao estou conseguindo cria-lo. entao apresenta o seguinte erro. -bash: cd: /Users/felix/workspace: No such file or directory

Cheers!


tchesk

tchesk há aproximadamente 1 ano

Consegui encontrar a solucao! :)


gguilherme09

gguilherme09 há aproximadamente 1 ano

Quando ele diz: " Vamos abrir o arquivo README.md e fazer algumas alterações.

$ subl README.md Altere o arquivo e salve, volte ao terminal e dê o comando " o que é para alterar dentro do arquivo, nao entendi


Eduardo Araujo

Eduardo Araujo há 4 meses

Seria para abrir o arquivo em um editor de texto qualquer e escrever qualquer coisa, só para o o git mostrar que houve uma alteração no arquivo "README.md" e que era preciso add e depois commitar para subir as alterações.


Dany Silva

Dany Silva há mais de 1 ano

Estou utilizando o Git no Windows a opção : $git config core.editor

não funciona, nesse caso seria o bloco de notas, se aplica a windows esse exemplo?


Alan Rafael R. Batista

Alan Rafael R. Batista há mais de 1 ano

Essa config "core.editor" é somente para mostrar que o git tem configurações e que elas podem ser alterada. O fato de não ter editado o core.editor não deve te atrapalhar para fazer os próximos desafios.


matheusam

matheusam há 4 meses

Não tenho certeza, mas talvez isso funcione: git config core.editor "notepad" Para usar outros editores em ambiente Windows, acho que talvez especificando o caminho do executável funcione, já que o notepad é um executável. E.g: git config core.editor "C:\foo\bar.exe" Se alguém testar avise se deu certo.


BiancaCerantola

BiancaCerantola há mais de 1 ano

quando eu faço esse comando: $ touch README.md $ git status

Aparece na minha tela isso aqui: $ touch README.md

Caedrus@LAPTOP-8UPJDL76 MINGW64 ~/workspace/meuprojeto (master) $ git status ]On branch master Changes to be committed: (use "git reset HEAD ..." to unstage)

    deleted:    README.md

Untracked files: (use "git add ..." to include in what will be committed)

    README.md

Alguém me ajuda.


gleisernicolas

gleisernicolas há mais de 1 ano

O Comando git status vai mostrar pra você todos os arquivos ainda não "trackeados". Basta digitar git add --all que todos os arquivos novos ou arquivos modificados vão ser adicionados e assim você poderá prosseguir com o commit e futuramente o push .


Vitor Bernardo

Vitor Bernardo há mais de 1 ano

Não consigo abrir o subl. Recebo a seguinte mensagem:

"bash: D:programasSublimeTextsublime_text.exe: command not found"

Alguém com um problema parecido que tenha conseguido resolver?


Dany Silva

Dany Silva há mais de 1 ano

Bom, nesse caso abre pelo explorador de arquivos que dá certo tbm .


Dany Silva

Dany Silva há mais de 1 ano

Bom, nesse caso abre pelo explorador de arquivos que dá certo tbm .


rafael-andrade

rafael-andrade há mais de 1 ano

subl é o comando pra abrir o arquivo com SUBLIME. Você pode usar o gedit mesmo ou algum outro editor de texto.


Matahary147

Matahary147 há quase 2 anos

Estou usando windows tento escrever o primeiro git config name após dar Enter nada acontece, está faltando alguma coisa talvez?


Edilson Alves

Edilson Alves há quase 2 anos

Amigo, se você está digitando o comando corretamente, não é para acontecer nada mesmo... Comando: git config --global user.name "Seu nome"


Ignacio Ito

Ignacio Ito há quase 2 anos

error: cannot spawn nano: No such file or directory error: unable to start editor 'nano' Please supply the message using either -m or -F option.

Aconteceu ao dar o 'git commit'


Alan Rafael R. Batista

Alan Rafael R. Batista há quase 2 anos

Se estiver no windows você não terá o nano disponível.


matheusam

matheusam há 4 meses

Dependendo da distro não tem nano por padrão, apenas Vim. Tente um 'apt-get install nano'. (Ubuntu, debian...) Mude o gerenciador de pacotes de acordo com sua distro. E como disseram não tem nano para Windows, mas já ouvi falar que tem como instalar o Vim.


TiagOliveiraTI

TiagOliveiraTI há aproximadamente 2 anos

Estou usando o windows 10, e, para o comando subl.exe funcionar, precisei criar uma variavel de sistema. Segui este tutorial aqui: https://scotch.io/tutorials/open-sublime-text-from-the-command-line-using-subl-exe-windows


Ignacio Ito

Ignacio Ito há quase 2 anos

Putz tive esse problema.


Luis Reis

Luis Reis há mais de 1 ano

Show, muito obrigado :D


Matheus Gonçalves

Matheus Gonçalves há 4 meses

Muito obrigado, me ajudou muito esse tutorial!


mgomesnet

mgomesnet há aproximadamente 2 anos

Tudo certo, vamos que vamos...


Fmlopes42

Fmlopes42 há mais de 2 anos

"No seu diretório workspace, você tem um diretório workspace, né? Na sua pasta HOME em ~/workspace, crie um diretório, meu_projeto." Acho que eu não tenho um diretório workspace

Quando eu coloco o comando: cd ~/workspace

Dá a mensagem : bash: cd: /c/Users/Fer/workspace: No such file or directory

O que eu tenho que fazer?


Paulo Henrique

Paulo Henrique há mais de 2 anos

Iae cara, estou usando windows aqui também, eu criei minha workspace no /c/Users/Nome do meu Usuário/ mesmo. Isso pode estar ocorrendo como o erro mostra, que você não criou ainda o diretório workspace, tente cria-lo e depois prosseguir.


Michel Lima

Michel Lima há mais de 2 anos

O meu também não existia, apenas criei e foi tudo tranquilo.


Fmlopes42

Fmlopes42 há aproximadamente 2 anos

deu certo gente, brigadão =D


Lara

Lara há mais de 2 anos

Não consigo adicionar o código subl README.md. Dá erro "subl: command not found ". Eu já tenho sublime text 2 instalado, o SO é Windows, já vi vários tutoriais mas não consigo resolver o problema, eu posso usar outro editor de texto para fazer esses exercícios ou obrigatóriamente precisa ser o sublime?


Felipe Laprano

Felipe Laprano há mais de 2 anos

Pode usar qualquer editor sim Lara. Pra rodar o comando no windows você precisa digitar: "subl.exe README.md" Depois de configurado (como foi feito em https://scotch.io/tutorials/open-sublime-text-from-the-command-line-using-subl-exe-windows), pra rodar o sublime pelo prompt de comando do windows você sempre digita "subl.exe"


nicolasgleiser

nicolasgleiser há mais de 2 anos

Creio que não precisa ser o sublime , pode abrir usando outro editor, digita notepad README.md que vai funcionar, faz as mudanças e prossiga com o desafio , pelo menos aqui foi normal .

Espero ter ajudado .


nicolasgleiser

nicolasgleiser há mais de 2 anos

Feito ... =)


ViviReis

ViviReis há mais de 2 anos

Basic OK


ayslanportela

ayslanportela há aproximadamente 3 anos

Para quem deseja , obter o Sublime Editor no Windows , estou disponibilizando um link com um tutorial , pelo que eu li nos comentários de quem utiliza windows, irá ajudar !!!

https://scotch.io/tutorials/open-sublime-text-from-the-command-line-using-subl-exe-windows

Abs !


Lara

Lara há mais de 2 anos

Não funcionou! Não consigo fazer funcionar os comando subl.


SilloeSouzaSantos

SilloeSouzaSantos há aproximadamente 3 anos

Finalmente consegui! Próximo desafio!


SilloeSouzaSantos

SilloeSouzaSantos há aproximadamente 3 anos

Para ignorar um arquivo especifico, o que devo colocar no arquivo .gitignore? Tentei colocar me_ignore.txt, mas ele continua aparecendo em untracked. Está correto?


praganavictor

praganavictor há mais de 2 anos

Voce so precisa criar o .gitignore e dentro dele colocar o me_ignore.txt e salvar o arquivo


João Almeida

João Almeida há aproximadamente 3 anos

Olá Jessica, tudo bem? Esse comando depende que você tenha o Sublime instalado. Não é um requisito você fazer essa instalação. No ubuntu você pode, por exemplo, usar o gedit que já vem com o sistema operacional (dai o comando seria "gedit README.md") ou instalar outro editor como o Atom (http://atom.io) e o comando seria "atom README.md".

Vamos fazer um tutorial falando mais sobre editores, por enquanto temos esse aqui sobre instalação do Sublime: http://www.codesaga.com.br/tutorials/instalando-o-sublime-text-no-ubuntu


Lara

Lara há mais de 2 anos

tenho o sublime instalado mas acontece o mesmo erro da Jessica!


jessicams91

jessicams91 há aproximadamente 3 anos

Estou com problemas para executar o comando $ subl README.md sh.exe" subl: command not found alguem sabe o que pode ser?


João Almeida

João Almeida há aproximadamente 3 anos

Realmente Felipe, você tem razão... vamos atualizar o texto. Obrigado :)