obter um projeto, por exemplo, para testar a última versão, você pode
preferir começar com os primeiros dois capítulos de
link:user-manual.html[O Manual do Usuário Git].
obter um projeto, por exemplo, para testar a última versão, você pode
preferir começar com os primeiros dois capítulos de
link:user-manual.html[O Manual do Usuário Git].
Com a última forma, você pode usar o visualizador de manual de sua
escolha; veja linkgit:git-help[1] para maior informação.
Com a última forma, você pode usar o visualizador de manual de sua
escolha; veja linkgit:git-help[1] para maior informação.
-É uma boa idéia se introduzir ao git com seu nome e endereço público de
-email antes de fazer qualquer operação. A maneira mais fácil de fazê-lo
-é:
+É uma boa idéia informar ao git seu nome e endereço público de email
+antes de fazer qualquer operação. A maneira mais fácil de fazê-lo é:
------------------------------------------------
Este instantâneo está agora armazenado em uma área temporária que o git
------------------------------------------------
Este instantâneo está agora armazenado em uma área temporária que o git
Uma nota em mensagens de commit: Apesar de não ser exigido, é uma boa
idéia começar a mensagem com uma simples e curta (menos de 50
caracteres) linha sumarizando a mudança, seguida de uma linha em branco
Uma nota em mensagens de commit: Apesar de não ser exigido, é uma boa
idéia começar a mensagem com uma simples e curta (menos de 50
caracteres) linha sumarizando a mudança, seguida de uma linha em branco
commits em email, por exemplo, usam a primeira linha no campo de
cabeçalho Subject: e o resto no corpo.
commits em email, por exemplo, usam a primeira linha no campo de
cabeçalho Subject: e o resto no corpo.
comando `add` do git faz algo mais simples e mais poderoso: 'git-add' é
usado tanto para arquivos novos e arquivos recentemente modificados, e
em ambos os casos, ele tira o instantâneo dos arquivos dados e armazena
comando `add` do git faz algo mais simples e mais poderoso: 'git-add' é
usado tanto para arquivos novos e arquivos recentemente modificados, e
em ambos os casos, ele tira o instantâneo dos arquivos dados e armazena
------------------------------------------------
O ramo "experimental" é o que você acaba de criar, e o ramo "master" é o
------------------------------------------------
O ramo "experimental" é o que você acaba de criar, e o ramo "master" é o
o ramo em que você está atualmente; digite
------------------------------------------------
$ git checkout experimental
------------------------------------------------
o ramo em que você está atualmente; digite
------------------------------------------------
$ git checkout experimental
------------------------------------------------
mudança, e mude de volta para o ramo master:
------------------------------------------------
mudança, e mude de volta para o ramo master:
------------------------------------------------
------------------------------------------------
neste ponto, os dois ramos divergiram, com diferentes mudanças feitas em
------------------------------------------------
neste ponto, os dois ramos divergiram, com diferentes mudanças feitas em
-------------------------------------
Ramos são baratos e fáceis, então isto é uma boa maneira de experimentar
-------------------------------------
Ramos são baratos e fáceis, então isto é uma boa maneira de experimentar
------------------------------------------------
Isso cria um novo diretório "myrepo" contendo um clone do repositório de
------------------------------------------------
Isso cria um novo diretório "myrepo" contendo um clone do repositório de
------------------------------------------------
Quanto está pronto, ele diz a Alice para puxar as mudanças do
------------------------------------------------
Quanto está pronto, ele diz a Alice para puxar as mudanças do
Isto unifica as mudanças do ramo "master" do Bob ao ramo atual de Alice.
Se Alice fez suas próprias mudanças no intervalo, ela, então, pode
Isto unifica as mudanças do ramo "master" do Bob ao ramo atual de Alice.
Se Alice fez suas próprias mudanças no intervalo, ela, então, pode
"master" no comando acima é, de fato, desnecessário, já que é o padrão.)
O comando "pull" executa, então, duas operações: ele obtém mudanças de
um ramo remoto, e, então, as unifica no ramo atual.
Note que, em geral, Alice gostaria que suas mudanças locais fossem
"master" no comando acima é, de fato, desnecessário, já que é o padrão.)
O comando "pull" executa, então, duas operações: ele obtém mudanças de
um ramo remoto, e, então, as unifica no ramo atual.
Note que, em geral, Alice gostaria que suas mudanças locais fossem
com o que Alice fez desde que suas histórias se ramificaram, Alice irá
usar seu diretório de trabalho e o índice para resolver conflitos, e
mudanças locais existentes irão interferir com o processo de resolução
com o que Alice fez desde que suas histórias se ramificaram, Alice irá
usar seu diretório de trabalho e o índice para resolver conflitos, e
mudanças locais existentes irão interferir com o processo de resolução
Esta operação é segura mesmo se Alice tem mudanças locais não gravadas.
A notação de intervalo "HEAD..FETCH_HEAD" significa mostrar tudo que é
Esta operação é segura mesmo se Alice tem mudanças locais não gravadas.
A notação de intervalo "HEAD..FETCH_HEAD" significa mostrar tudo que é
-alcançável de FETCH_HEAD mas exclua tudo que é alcançável de HEAD. Alcie
-já sabe tudo que leva a seu estado atual (HEAD), e revisa o que Bob tem
-em seu estado (FETCH_HEAD) que ela ainda não viu com esse comando.
+alcançável de FETCH_HEAD mas exclua tudo o que é alcançável de HEAD.
+Alice já sabe tudo que leva a seu estado atual (HEAD), e revisa o que Bob
+tem em seu estado (FETCH_HEAD) que ela ainda não viu com esse comando.
ramificaram, ela pode disparar o seguinte comando:
------------------------------------------------
$ gitk HEAD..FETCH_HEAD
------------------------------------------------
ramificaram, ela pode disparar o seguinte comando:
------------------------------------------------
$ gitk HEAD..FETCH_HEAD
------------------------------------------------
Alice pode querer ver o que ambos fizeram desde que ramificaram. Ela
pode usar a forma com três pontos ao invés da forma com dois pontos:
Alice pode querer ver o que ambos fizeram desde que ramificaram. Ela
pode usar a forma com três pontos ao invés da forma com dois pontos:
-Isto significa "mostre tudo que é alcançavel de qualquer um, mas exclua
-tudo que é alcançavel a partir de ambos".
-This means "show everything that is reachable from either one, but
-exclude anything that is reachable from both of them".
+Isto significa "mostre tudo que é alcançável de qualquer um deles, mas
+exclua tudo que é alcançável a partir de ambos".
Por favor, note que essas notações de intervalo podem ser usadas tanto
com gitk quanto com "git log".
Por favor, note que essas notações de intervalo podem ser usadas tanto
com gitk quanto com "git log".
-Apoós inspecionar o que Bob fez, se não há nada urgente, Alice pode
-decidir continuar trabalhando sem puxar de Bob. Se a história de Bob
+Após inspecionar o que Bob fez, se não há nada urgente, Alice pode
+decidir continuar trabalhando sem puxar de Bob. Se a história de Bob
tem alguma coisa que Alice precisa imediatamente, Alice pode optar por
separar seu trabalho em progresso primeiro, fazer um "pull", e, então,
finalmente, retomar seu trabalho em progresso em cima da história
resultante.
tem alguma coisa que Alice precisa imediatamente, Alice pode optar por
separar seu trabalho em progresso primeiro, fazer um "pull", e, então,
finalmente, retomar seu trabalho em progresso em cima da história
resultante.
-Quanto você está trabalhando em um pequeno grupo unido, não é incomum
-interagir com o mesmo repositório várias e várias vezes. Definindo um
+Quando você está trabalhando em um pequeno grupo unido, não é incomum
+interagir com o mesmo repositório várias e várias vezes. Definindo um
repositório remoto antes de tudo, você pode fazê-lo mais facilmente:
------------------------------------------------
repositório remoto antes de tudo, você pode fazê-lo mais facilmente:
------------------------------------------------
Diferente da forma longa, quando Alice obteve de Bob usando um
repositório remoto antes definido com 'git-remote', o que foi obtido é
Diferente da forma longa, quando Alice obteve de Bob usando um
repositório remoto antes definido com 'git-remote', o que foi obtido é
-------------------------------------
Note que 'git pull' sempre unifica ao ramo atual, independente do que
-------------------------------------
Note que 'git pull' sempre unifica ao ramo atual, independente do que
Note que ele não precisa dar o caminho do repositório de Alice; quando
Bob clonou seu repositório, o git armazenou a localização de seu
Note que ele não precisa dar o caminho do repositório de Alice; quando
Bob clonou seu repositório, o git armazenou a localização de seu
http; veja linkgit:git-pull[1] para detalhes.
Git pode também ser usado em um modo parecido com CVS, com um
http; veja linkgit:git-pull[1] para detalhes.
Git pode também ser usado em um modo parecido com CVS, com um
-repositório central para o qual que vários usuários empurram
-modificações; veja linkgit:git-push[1] e linkgit:gitcvs-migration[7].
+repositório central para o qual vários usuários empurram modificações;
+veja linkgit:git-push[1] e linkgit:gitcvs-migration[7].
-interrelacionados. Nós já vimos que o comando 'git-log' pode listar
-esses commits. Note que a primeira linha de cama entrada no log também
+interrelacionados. Nós já vimos que o comando 'git-log' pode listar
+esses commits. Note que a primeira linha de cada entrada no log também
-Mas há outras formas de se referir a commits. Você pode usar qualquer
-parte inicial do nome que seja longo o bastante para unicamente
-identificar o commit:
+Mas há outras formas de se referir aos commits. Você pode usar qualquer
+parte inicial do nome que seja longo o bastante para identificar
+unicamente o commit:
-------------------------------------
$ git show c82a22c39c # os primeiros caracteres do nome são o bastante
-------------------------------------
$ git show c82a22c39c # os primeiros caracteres do nome são o bastante
-------------------------------------
$ git tag v2.5 1b2e1d63ff
-------------------------------------
-------------------------------------
$ git tag v2.5 1b2e1d63ff
-------------------------------------
assiná-lo; veja linkgit:git-tag[1] para detalhes.
Qualquer comando git que precise conhecer um commit pode receber
assiná-lo; veja linkgit:git-tag[1] para detalhes.
Qualquer comando git que precise conhecer um commit pode receber
Seja cuidadoso com o último comando: além de perder quaisquer mudanças
em seu diretório de trabalho, ele também remove todos os commits
Seja cuidadoso com o último comando: além de perder quaisquer mudanças
em seu diretório de trabalho, ele também remove todos os commits
-posteriores desse ramo. Se esse ramo é o único ramo contendo esses
-commits, eles serão perdidos. Também, não use 'git-reset' num ramo
+posteriores desse ramo. Se esse ramo é o único ramo contendo esses
+commits, eles serão perdidos. Também, não use 'git-reset' num ramo
publicamente visível de onde outros desenvolvedores puxam, já que vai
forçar unificações desnecessárias para que outros desenvolvedores limpem
a história. Se você precisa desfazer mudanças que você empurrou, use
publicamente visível de onde outros desenvolvedores puxam, já que vai
forçar unificações desnecessárias para que outros desenvolvedores limpem
a história. Se você precisa desfazer mudanças que você empurrou, use
uma lista. Quando a história tem linhas de desenvolvimento que
divergiram e então foram unificadas novamente, a ordem em que 'git-log'
uma lista. Quando a história tem linhas de desenvolvimento que
divergiram e então foram unificadas novamente, a ordem em que 'git-log'
-linux, ou o git mesmo) tem unificações frequentes, e 'gitk' faz um
-trabalho melhor de visualizar sua história. Por exemplo,
+Linux, ou o próprio git) tem unificações frequentes, e 'gitk' faz um
+trabalho melhor de visualizar sua história. Por exemplo,
-------------------------------------
$ gitk --since="2 weeks ago" drivers/
-------------------------------------
-------------------------------------
$ gitk --since="2 weeks ago" drivers/
-------------------------------------
-permite você navegar em quaisquer commits desde as últimas duas semanas
-de commits que modificaram arquivos sob o diretório "drivers". (Nota:
+permite a você navegar em quaisquer commits desde as últimas duas semanas
+de commits que modificaram arquivos sob o diretório "drivers". (Nota:
-Finalmente, a maioria dos comandos que recebem nomes de arquivo
-te permitirão opcionalmente preceder qualquer nome de arquivo por um
+Finalmente, a maioria dos comandos que recebem nomes de arquivo permitirão
+também, opcionalmente, preceder qualquer nome de arquivo por um
commit, para especificar uma versão particular do arquivo:
-------------------------------------
commit, para especificar uma versão particular do arquivo:
-------------------------------------
plenamente a profundidade e o poder do git você precisa entender duas
idéias simples nas quais ele se baseia:
* A base de objetos é um sistema bem elegante usado para armazenar a
história de seu projeto--arquivos, diretórios, e commits.
plenamente a profundidade e o poder do git você precisa entender duas
idéias simples nas quais ele se baseia:
* A base de objetos é um sistema bem elegante usado para armazenar a
história de seu projeto--arquivos, diretórios, e commits.
índice, e algumas outras coisinhas que você vai precisar pra usar o
máximo do git. Você pode encontrá-la em linkgit:gittutorial-2[7].
índice, e algumas outras coisinhas que você vai precisar pra usar o
máximo do git. Você pode encontrá-la em linkgit:gittutorial-2[7].
-Se você não quer continuar do jeito certo, algumas outras disgressões
-que podem ser interessantes neste ponto são:
+Se você não quiser continuar com o tutorial agora nesse momento, algumas
+outras digressões que podem ser interessantes neste ponto são:
- séries de commits em patches em email, e vice-versa, úteis para
- projetos como o kernel linux que dependem pesadamente em patches
+ séries de commits em patches para email, e vice-versa, úteis para
+ projetos como o kernel Linux que dependem fortemente de patches
enviados por email.
* linkgit:git-bisect[1]: Quando há uma regressão em seu projeto, uma
forma de rastrear um bug é procurando pela história para encontrar o
enviados por email.
* linkgit:git-bisect[1]: Quando há uma regressão em seu projeto, uma
forma de rastrear um bug é procurando pela história para encontrar o
- commit culpado. Git bisect pode ajudar a executar uma busca binária
- por esse commit. Ele é inteligente o bastante para executar uma
+ commit culpado. Git bisect pode ajudar a executar uma busca binária
+ por esse commit. Ele é inteligente o bastante para executar uma
busca próxima da ótima mesmo no caso de uma história complexa
não-linear com muitos ramos unificados.
busca próxima da ótima mesmo no caso de uma história complexa
não-linear com muitos ramos unificados.
--------
linkgit:gittutorial-2[7],
linkgit:gitcvs-migration[7],
--------
linkgit:gittutorial-2[7],
linkgit:gitcvs-migration[7],