Seu primeiro repositório


Existem duas maneiras pelas quais você geralmente chega aqui. Ou você tem uma pasta de projeto já existente, um weather-app que você vinha construindo localmente, e quer que o Git comece a registrar seu histórico. Ou alguém já construiu o projeto, ele vive no GitHub, e você quer sua própria cópia de trabalho na sua máquina. Ambos começam com três pequenos comandos, e ao final deste capítulo você terá usado todos os três de verdade. Primeiro, porém, uma verificação que leva dez segundos: garantir que o Git esteja na sua máquina.
Você tem Git instalado?
Tudo neste manual acontece no terminal, então o primeiro passo é abrir um. Um terminal é um aplicativo onde você digita comandos como texto e os programas respondem em texto. Ele já está no seu computador:
- macOS: o aplicativo é chamado Terminal. Pressione Cmd+Space, digite "terminal" e pressione Enter.
- Windows: abra PowerShell por enquanto (procure por "powershell" no menu Iniciar). Instalar Git abaixo também adiciona Git Bash, um terminal construído exatamente para isso, e qualquer um executa os mesmos comandos Git.
- Linux: procure por um aplicativo chamado Terminal ou Console; Ctrl+Alt+T abre em muitas distribuições.
Git em si é um programa de linha de comando: não tem janela própria, e você o usa digitando comandos que começam com a palavra git e lendo o que ele imprime de volta. Isso também é como ler cada bloco de código neste manual: a linha começando com $ é o comando que você digita (sem o $ em si), e as linhas abaixo dele são a resposta do Git.
Então, a verificação. Digite isto no seu terminal e pressione Enter:
$ git --version
git version 2.45.1Um número de versão de volta significa que Git está instalado e você está pronto. Seu número provavelmente será diferente deste, e tudo bem. Se você vir "command not found" ou "git is not recognized", Git ainda não está na sua máquina, e instalá-lo é uma tarefa única:
- macOS: executar
git --versiongeralmente abre um diálogo oferecendo instalar as Command Line Tools da Apple. Aceite, e macOS instala Git para você. - Windows: baixe Git for Windows em git-scm.com/downloads e execute o instalador. Os padrões são todas escolhas razoáveis, e instala Git Bash também.
- Linux: instale o pacote
gitcom o gerenciador de pacotes da sua distribuição, por exemplosudo apt install gitno Ubuntu e Debian.
Uma vez que a instalação termina, feche seu terminal, abra um novo e execute git --version novamente. Um número de versão significa que você terminou a configuração para sempre; nada no resto deste manual precisa ser instalado.
git --version diz se está na sua máquina: um número de versão significa que você está pronto, e "command not found" significa instalar em git-scm.com ou no instalador do seu sistema. Você faz isso apenas uma vez. A configuração é a parte menos divertida de qualquer manual, então parabéns por passar por ela! Transformando uma pasta em um repositório
Abra um terminal e mude para sua pasta de projeto com cd (abreviação de "change directory"), depois execute um comando, git init:
$ cd weather-app
$ git init
Initialized empty Git repository in /Users/mara/projects/weather-app/.git/Essa pasta agora é um repositório: um projeto que Git observa, pronto para registrar snapshots dele conforme você trabalha. git init faz a mesma coisa toda vez. Ele procura por uma pasta .git oculta, cria uma se estiver faltando, e a partir daí a pasta está sob observação do Git.
O branch padrão de um novo repositório é nomeado main. Se você cair em um tutorial mais antigo, um repositório mais antigo ou um curso gravado alguns anos atrás, verá master usado pela mesma coisa: é o mesmo primeiro branch sob um nome mais antigo. Este manual sempre usa main.
O que é um branch?
Um branch é uma linha separada de histórico para seus commits pousarem, e main é aquele com o qual todo novo repositório começa. Branches cobre criação e alternância entre eles.
git init transforma qualquer pasta em um repositório Git, pronto para Git começar a rastreá-la. Execute uma vez dentro de uma pasta de projeto e você está pronto, e executá-lo novamente mais tarde não faz mal. Novos repositórios usam um branch chamado main, embora os mais antigos que você encontra por aí geralmente sejam chamados master pela mesma coisa. Dizendo ao Git quem você é
Antes do seu primeiro commit, Git quer saber quem está fazendo isso. Defina dois valores uma vez, e Git se lembra deles para cada commit que você faz nesta máquina:
$ git config --global user.name "João Silva"
$ git config --global user.email "[email protected]"Cada commit que você cria é marcado com esse nome e email. Pule esta etapa, e Git volta para algo adivinhado do nome de usuário e hostname do seu computador, então seus commits carregam uma identidade que você nunca escolheu.
Defina seu nome e email antes do seu primeiro commit. Faça commit primeiro e defina depois, e o erro fica assado no histórico desse commit. Pior, alguns hosts (GitHub incluído) combinam commits com sua conta por email, então um commit feito sob o endereço errado ou um adivinhado aparece como trabalho de um estranho anônimo em vez do seu.
git config --global user.name e git config --global user.email definem o nome e email que Git marca em cada commit que você faz. Defina antes do seu primeiro commit, porque um commit feito antes de você definir seu email é atribuído a uma identidade adivinhada, e um host como GitHub pode não conectá-lo à sua conta. Faça uma vez e cada repositório na sua máquina se lembra. Copiando um projeto existente com git clone
Às vezes o projeto já existe em outro lugar, e você quer uma cópia de trabalho dele na sua máquina. git clone faz isso em um comando:
$ git clone https://github.com/octocat/Hello-World.git
Cloning into 'Hello-World'...
remote: Enumerating objects: 13, done.
remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13
Receiving objects: 100% (13/13), done.Git cria uma nova pasta nomeada Hello-World, baixa o histórico completo do projeto nela, e coloca seus arquivos na pasta para que você possa começar a ler ou editar imediatamente. Não há etapa separada de git init necessária. Clonar configura o repositório para você como parte do download.
git clone <url> baixa o repositório de alguém, histórico inteiro incluído, em uma nova pasta nomeada após o projeto. Recorra a ele quando o projeto já existe em algum lugar; recorra a git init quando está começando um do zero. Uma vez que a clonagem termina você tem uma cópia completa de trabalho, pronto para procurar ou adicionar. O que está dentro da pasta oculta .git
Todo repositório, quer você tenha chegado lá com git init ou git clone, tem uma pasta oculta nomeada .git sentada em sua raiz. Ela é oculta por padrão, então peça ao terminal pela listagem completa com ls -a (ls lista o conteúdo de uma pasta, e -a inclui entradas ocultas) para vê-la sentar ao lado dos seus arquivos de projeto normais:
$ ls -a
. .. .git README.md srcEssa pasta é o repositório real. Ela contém cada commit que você fez, seus branches, e as configurações de config da seção acima. Delete a pasta .git e o projeto perde seu histórico inteiro, voltando a ser uma pasta ordinária que Git não rastreia mais. Tudo mais no projeto é uma cópia de trabalho do que .git contém.
.git em sua raiz, e essa pasta é o repositório real: seu histórico inteiro e suas configurações vivem lá. Execute ls -a dentro de um projeto para vê-la, já que é oculta por padrão. Nunca a delete a menos que realmente queira apagar o histórico inteiro do projeto, já que deletá-la transforma a pasta de volta em uma pasta simples que Git não rastreia mais. Se os termos repositório e commit ainda parecem confusos, O que é Git cobre o modelo mental em que esses comandos se baseiam, e o Glossário tem uma definição curta para cada pedaço de vocabulário neste capítulo. Uma vez que sua identidade está definida e você tem um repositório para trabalhar, O loop de commit cobre o ciclo cotidiano de edição, estágio e commit que você usará constantemente a partir daqui.

