diff --git a/cap08/cap08_er.Rnw b/cap08/cap08_er.Rnw index 57779862f4d68cf50eade6be2c6756564e5ec9a9..ff542ac48af0d9fd301baa1b903df74106020b3c 100644 --- a/cap08/cap08_er.Rnw +++ b/cap08/cap08_er.Rnw @@ -11,7 +11,7 @@ presentes. \listofprogram \begin{program}[H] - \caption{Configure usuário e e-mail.} + \caption{Configurar usuário e e-mail localmente e globalmente.} \end{program} <<engine="bash", echo=TRUE, eval=FALSE>>= ## Configurando localmente @@ -31,7 +31,7 @@ git config --global user.email "namelastname@servidor" %%---------------------------------------------------------------------- \begin{program}[H] - \caption{Inicie um projeto Git local.} + \caption{Iniciar um projeto Git local.} \end{program} <<engine="bash", echo=TRUE, eval=FALSE>>= ## Em um diretório que deseja-se versionar @@ -56,11 +56,100 @@ git log %%---------------------------------------------------------------------- \begin{program}[H] - \caption{Trabalhe com ramos.} + \caption{Criar chaves públicas para adicionar aos perfils em seviços + Web.} +\end{program} +<<engine="bash", echo=TRUE, eval=FALSE>>= +## Cria uma chave pública. +ssh-keygen -t rsa -C "namelastname@servidor" + +## Exibe as chaves públicas. +cat ~/.ssh/id_rsa.pub + +## Adicione o conteúdo a um servidor remoto, como: +## - git@github.com +## - git@gitlab.com +## - git@gitlab.c3sl.ufpr.br + +## Verifica conexão com o servidor +ssh -T endereço ## endereço = git@github.com, ... + +## Obs.: Todos os comandos ssh são provinientes do +## pacote de função ssh para shell, portanto para +## utilizar instale este pacote. +@ + +%%---------------------------------------------------------------------- + +\begin{program}[H] + \caption{Criar chaves públicas e adicionar ao um servidor remoto.} +\end{program} +<<engine="bash", echo=TRUE, eval=FALSE>>= +## Cria uma chave pública na sua máquina local. +ssh-keygen -t rsa -C "namelastname@servidor" + +## Exibe as chaves públicas criadas. +cat ~/.ssh/id_rsa.pub + +## Exibe as chaves autorizadas da sua conta no servidor remoto. +ssh user@caporal.c3sl.ufpr.br "cat ~/.ssh/authorized_keys2" + +## Insere a chave gerada final do arquivo de chaves autorizadas. +ssh user@caporal.c3sl.ufpr.br \ + "cat >> ~/.ssh/authorized_keys2" < ~/.ssh/id_rsa.pub + +@ + +%%---------------------------------------------------------------------- + +\begin{program}[H] + \caption{Inicar um repositório remoto Git em um servidor.} +\end{program} +<<engine="bash", echo=TRUE, eval=FALSE>>= +## Loga no servidor por SSH. +ssh user@caporal.c3sl.ufpr.br + +## Criar um diretório para conter o projeto. Apesar do final .git +## (opcional), é um diretório, não um arquivo. +mkdir -p ~/Documentos/meu1repo.git +cd ~/Documentos/meu1repo.git + +## Inicia um repositório remoto sem workspace. +git --bare init +git config --list + +## Sai do servidor. +exit + +## Opção 1: Na máquina local, clonar o repositório. O diretório criado +## não tem o .git no final +git clone user@macalan.c3sl.ufpr.br:~/Documentos/meu1repo.git +cd meu1repo +git status + +## Opção 2: Se o repositório ja começou localmente, então apenas +## adicione o endereço do remoto. +git remote add origin \ + user@macalan.c3sl.ufpr.br:~/Documentos/meu1repo.git +git push origin master + +## Exibir os endereços remotos. +git remote -v + +@ + +%%---------------------------------------------------------------------- + +\begin{program}[H] + \caption{Criar um ramo, incluir modificações e fazer o merge em + outro.} \end{program} <<engine="bash", echo=TRUE, eval=FALSE>>= ## Verifica os ramos existentes git branch +git branch -l ## Apenas os locais +git branch -r ## Apenas os remotos +git branch -a ## Todos ## Cria um ramo, para trabalho especÃfico como: ## - Corrigir bugs @@ -89,10 +178,15 @@ git branch -d bugfix @ +%% Criar um ramo e subir as diferenças, setar upstream. + +%% Baixar um ramo e criar o seu local. + %%---------------------------------------------------------------------- \begin{program}[H] - \caption{Visualize diferenças.} + \caption{Visualizar diferenças entre referências relativas, absolutas + (\textit{commits}) e ramos.} \end{program} <<engine="bash", echo=TRUE, eval=FALSE>>= ## ------------------------------------------- @@ -132,7 +226,7 @@ git diff master feature1 %%---------------------------------------------------------------------- \begin{program}[H] - \caption{Resolva conflitos de merge.} + \caption{Resolver conflitos de merge.} \end{program} <<engine="bash", echo=TRUE, eval=FALSE>>= ## Incorpora modificações realizadas no ramo feature @@ -149,7 +243,7 @@ git commit -a -m "Merge do ramo feature" %%---------------------------------------------------------------------- \begin{program}[H] - \caption{Visualize seu projeto.} + \caption{Visualizar o histórico de \textit{commits} do projeto.} \end{program} <<engine="bash", echo=TRUE, eval=FALSE>>= ## Histórico de registros @@ -164,12 +258,13 @@ git reflog ## Histórico de registro via interface gráfica padrão gitk +gitk --all @ %%---------------------------------------------------------------------- \begin{program}[H] - \caption{Volte versões anteriores.} + \caption{Voltar arquivos para versões anteriores.} \end{program} <<engine="bash", echo=TRUE, eval=FALSE>>= ## Verifica o histórico de versões do repositório @@ -211,12 +306,16 @@ git checkout -b ramo_teste %%---------------------------------------------------------------------- \begin{program}[H] - \caption{Reescreva commits.} + \caption{Refazer o último \textit{commit} para alterar a mensagem e/ou + incluir mais modificações.} \end{program} <<engine="bash", echo=TRUE, eval=FALSE>>= ## Verifica o histórico de versões do repositório git log --oneline +## Caso seja o objetivo, adicione mais modificações. +git add script.R + ## ------------------------------------------- ## Reescreve a última mensagem de commit git commit --amend -m "Correção de Commit" @@ -230,31 +329,6 @@ git commit --amend -m "Correção de Commit" %%---------------------------------------------------------------------- -\begin{program}[H] - \caption{Cria chaves públicas.} -\end{program} -<<engine="bash", echo=TRUE, eval=FALSE>>= -## Cria uma chave pública. -ssh-keygen -t rsa -C "namelastname@servidor" - -## Exibe as chaves públicas. -cat ~/.ssh/id_rsa.pub - -## Adicione o conteúdo a um servidor remoto, como: -## - git@github.com -## - git@gitlab.com -## - git@gitlab.c3sl.ufpr.br - -## Verifica conexão com o servidor -ssh -T endereço ## endereço = git@github.com, ... - -## Obs.: Todos os comandos ssh são provinientes do -## pacote de função ssh para shell, portanto para -## utilizar instale este pacote. -@ - -%%---------------------------------------------------------------------- - \begin{program}[H] \caption{Trabalhe remotamente.} \end{program} @@ -281,6 +355,12 @@ git pull origin %%---------------------------------------------------------------------- +\begin{itemize} +\item asdasd +\item asdas +\item +\end{itemize} + \begin{program}[H] \caption{Manipule ramos remotos.} \end{program} @@ -379,3 +459,34 @@ git remote set-url origin --push --add endereço_remoto git push origin @ + +%%---------------------------------------------------------------------- + +\begin{program}[H] + \caption{Remove ramos de demanda, locais e remotos, já incorporados + aos ramos permanentes.} +\end{program} +<<engine="bash", echo=TRUE, eval=FALSE>>= +## Listar os ramos: +git branch -l ## Locais +git branch -r ## Remotos +git branch -a ## Todos +git branch --merged ## Incorporados ao atual + +## Remove ramos: +git branch -d bugfix ## Locais +git branch -dr origin/bugfix ## Remotos +git push --delete origin bugfix ## No origin +git push origin :bugfix ## Idem o anterior + +## Remove todos os ramos LOCAIS com 'issue' no nome. +git branch -l --merged | grep "issue" | xargs -n 1 git branch -d + +## Remove todos os ramos REMOTOS com 'issue' no nome. +git branch -r --merged | grep "issue" | xargs -n 1 git branch -dr + +## Acima da versão 2.5.0 pode-se usar +git branch -d `git branch l --merged` +git branch -dr `git branch r --merged` + +@