diff --git a/cap08/cap08_dt.Rmd b/cap08/cap08_dt.Rmd index 3a66b3703c2ad4c712990f84364e2c208ada714f..4a1c3a216e23b08d11e7643bb7dc579bc044d3c3 100644 --- a/cap08/cap08_dt.Rmd +++ b/cap08/cap08_dt.Rmd @@ -9,8 +9,9 @@ Dicionário de Termos O `config` é um comando usado para ajustar as configurações padrão do git. Há duas configurações básicas a serem feitas: a inclusão do e-mail e do nome do usuário git. -Todas as configurações são globais e ficam armazenadas em um arquivo -chamado `.gitconfig`, que fica localizado no diretório padrão do usuário. +Todas as configurações definidas como globais ficam armazenadas em um +arquivo chamado `.gitconfig`, que fica localizado no diretório padrão +do usuário. **Exemplo:** ```{r, engine='bash', eval=FALSE} @@ -22,14 +23,14 @@ git config --global user.email ezio.auditore@exemple.com ## SSH Key -É uma chave de autenticação, baseada em criptografia de chave pública -(chave assimétrica), que torna o processo transferência de arquivos -entre o cliente e o servidor mais segura. +É uma chave de autenticação baseada em criptografia de chave pública +(chave assimétrica). Essa criptografia torna o processo transferência +de arquivos entre o cliente e o servidor mais segura. Para que o git local consiga se conectar a um servidor git remoto, é necessário que esta chave seja gerada e que as devidas configurações -sejam feitas tanto localmente quanto no servidor remoto. -Caso contrário é exibido um erro e a conexão é interrompida. +sejam feitas tanto localmente quanto no servidor remoto, +caso contrário, é exibido um erro e a conexão é interrompida. **Exemplo:** ```{r, engine='bash', eval=FALSE} @@ -63,11 +64,27 @@ git init ## Stagin Area -A stagin area é um espaço temporário na pasta gerenciada pelo git, onde ficam os arquivos -antes de ser marcados como uma versão definitiva. Em tradução livre, stagin area -é area de estágio, e podemos imaginar que o arquivo está estagiando antes de +A stagin area é um espaço temporário na pasta gerenciada pelo git. É +aonde ficam os arquivos antes de ser marcados como uma versão definitiva. +Em tradução livre, stagin area é area de estágio, +podemos assim imaginar que o arquivo está estagiando antes de ser promovido a um arquivo definitivo. +## Remote + +O `remote` mostra o servidor remoto aonde o +seus arquivos git estão hospedados. O remote padrão +geralmente é criado com o nome de `origin`, mas +é possível adiciona-lo utilizando outros nomes e +até mesmo adicionar outros servidores remotos juntamente ao `origin`. + +**Exemplo:** +```{r, engine='bash', eval=FALSE} +# Adicionando um servidor remoto com nome origin: +git remote add origin "git@gitlab.c3sl.ufpr.br:pet-estatistica/apostila-git.git" +``` + + ## Clone O `clone` é usado quando deseja-se clonar um repositório que está @@ -136,49 +153,6 @@ Usando o checkout é possivel voltar a commits anteriores. git checkout teste ``` -## HEAD - -`HEAD` é um arquivo que contém um apontador para o `branch` atual. -Quando o `checkout` é executado para a mudança do `branch`, -esse arquivo é automaticamente modificado apontando agora para o -novo local, permitindo que, quando o computador for desligado e depois -ligado novamente, o git ainda esteja trabalhando com o mesmo `branch` -de antes. - -## Tag - -As tags são usadas para marcar pontos específicos do desenvolvimento. -Geralmente são usadas para marcar versões definitivas, como a v1.0, v2.0 -e assim por diante. - -Elas são divididas em dois tipos: leve e anotada. -A `tag` leve simplemente aponta para um `commit` específico, já a `tag` -anotada é guardada como objtos inteiros, possuindo algumas informações -relacionadas a ela, como o nome da pessoa que criou, a data, uma mensagem -semelhante a de `commit`, entre outras. - -**Exemplo:** -```{r, engine='bash', echo=TRUE, eval=FALSE} -# Criando tag leve: -git tag -l "v1.0.0" - -# Criando tag anotada: -git tag -a v1.0 -m "Minha primeira tag anotada." -``` - -## Remote - -Remote é utilizado o servidor remoto aonde o -seus os arquivos git estão hospedados. O remote padrão -geralmente é criado com o nome de `origin`, -e é possível adicionar outros remotes utilizando nomes diferentes. - -**Exemplo:** -```{r, engine='bash', eval=FALSE} -# Adicionando um servidor remoto: -git remote add origin "git@gitlab.c3sl.ufpr.br:pet-estatistica/apostila-git.git" -``` - ## Merge Com o `merge` é possivel a fusão dos dois ramos em um. @@ -200,7 +174,8 @@ git merge novoBranch ## Status O status exibe a diferença entre o estado atual dos arquivos e o estado -do ultimo `commit` do mesmo `branch`. +do ultimo `commit` do mesmo `branch`. São três estados possíveis: +consolidado (committed), modificado (modified) e preparado (staged). **Exemplo:** ```{r, engine='bash', eval=FALSE} @@ -210,12 +185,13 @@ git status ## Rm -O `git rm` serve para remover um arquivo de forma que ele deixe de ser -gerenciado pelo git e seja excluido do disco rígido. Também é possível -que o arquivo deixe de ser gerenciado e permaneça no disco. +O `git rm`, na sua forma mais comum, serve para remover um arquivo de +forma que ele deixe de sergerenciado pelo git e seja excluido do disco +rígido. Também é possível que o arquivo deixe de ser gerenciado +e permaneça no disco. Uma das vantagens é que, quando o arquivo é removido pelo `git rm`, ele -não aparece como não adicionado a stagin area, precisando somente que +já aparece como preparado (staged), precisando somente que a exclusão seja commitada. **Exemplo:** @@ -230,7 +206,7 @@ git rm --cached teste.tex ## Mv O `git mv` move ou renomeia arquivos, informando ao git que eles foram -movido ou renomeados é que não se tratam de um novos arquivos. +movidos ou renomeados. Caso a mudança seja feita sem esse comando o git entende que o arquivo foi deletado e que um novo arquivo foi criado, deixando de fora, @@ -242,6 +218,71 @@ por exemplo, a ligação existente entre o arquivo e seus commits. git mv teste.tex arquivo1.tex ``` +## Push + +-------- + +O `push` é usado para empurrar as o repositório local para o servidor +remoto. + +-------- + +## Fetch + +O `fetch` busca no repositório remoto os dados e arquivos que +não estão no repositório local. É impostante frisar que o `fetch` não +faz o merge dos arquivos, deixando isso para ser feito manualmente +pelo usuário. + +**Exemplo:** +```{r, engine='bash', echo=TRUE, eval=FALSE} +# Buscando arquivos no servidor remoto origin: +git fetch origin +``` + +## Pull + +O `pull` é semelhante ao comando `fetch`, porém, puxa os +arquivos do servidor remoto fazendo merge. Caso haja algum conflito de +merge, estes deverão ser resolvidos manualmente. + +**Exemplo:** +```{r, engine='bash', echo=TRUE, eval=FALSE} +# Puxando arquivos no servidor remoto origin: +git pull origin +``` + + +## HEAD + +`HEAD` é um arquivo que contém um apontador para o `branch` atual. +Quando o `checkout` é executado para a mudança do `branch`, +esse arquivo é automaticamente modificado apontando agora para o +novo local, permitindo que, quando o computador for desligado e depois +ligado novamente, o git ainda esteja trabalhando com o mesmo `branch` +de antes. + +## Tag + +As tags são usadas para marcar pontos específicos do desenvolvimento. +Geralmente são usadas para marcar versões definitivas, como a v1.0, v2.0 +e assim por diante. + +Elas são divididas em dois tipos: leve e anotada. +A `tag` leve simplemente aponta para um `commit` específico, já a `tag` +anotada é guardada como objtos inteiros, possuindo algumas informações +relacionadas a ela, como o nome da pessoa que criou, a data, uma mensagem +semelhante a de `commit`, entre outras. + +**Exemplo:** +```{r, engine='bash', echo=TRUE, eval=FALSE} +# Criando tag leve: +git tag -l "v1.0.0" + +# Criando tag anotada: +git tag -a v1.0 -m "Minha primeira tag anotada." +``` + ## Stash É uma maneira de não precisar fazer um `commit` para mudar de `branch`. @@ -271,30 +312,6 @@ git reset --hard HEAD~1 ``` -## Fetch - -O `fetch` busca no repositório remoto os dados e arquivos que -não estão no repositório local. É impostante frisar que o `fetch` não -faz o merge dos arquivos, deixando isso para ser feito manualmente -pelo usuário. - -**Exemplo:** -```{r, engine='bash', echo=TRUE, eval=FALSE} -# Buscando arquivos no servidor remoto origin: -git fetch origin -``` - -## Pull - -O `pull` é semelhante ao comando `fetch`, porém, puxa os -arquivos do servidor remoto fazendo merge. Caso haja algum conflito de -merge, estes deverão ser resolvidos manualmente. - -**Exemplo:** -```{r, engine='bash', echo=TRUE, eval=FALSE} -# Puxando arquivos no servidor remoto origin: -git pull origin -``` ## Rebase