Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
apostila-git
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Harbor Registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pet-estatistica
apostila-git
Commits
db8a2f93
Commit
db8a2f93
authored
9 years ago
by
Eduardo E. R. Junior
Browse files
Options
Downloads
Patches
Plain Diff
Adiciona a seção de Interfaces GIT com descrição do git gui
parent
478b2b7b
Branches
Branches containing commit
Tags
Tags containing commit
1 merge request
!20
Issue#28
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
cap06.Rmd
+160
-2
160 additions, 2 deletions
cap06.Rmd
with
160 additions
and
2 deletions
cap06.Rmd
+
160
−
2
View file @
db8a2f93
...
@@ -35,7 +35,7 @@ simultaneamente e o procedimento de *commit* se torna trabalhoso, pois
...
@@ -35,7 +35,7 @@ simultaneamente e o procedimento de *commit* se torna trabalhoso, pois
é necessário listar todos os arquivos que fazem parte de um *commit*
é necessário listar todos os arquivos que fazem parte de um *commit*
no commando `git add`. Uma última situação exemplo em que o uso de *CLI*
no commando `git add`. Uma última situação exemplo em que o uso de *CLI*
não parece satisfatório é na comparação de arquivos, já usamos o comando
não parece satisfatório é na comparação de arquivos, já usamos o comando
`git diff` na
seçã
o 3 e o *output* deste comando foi de simples
`git diff` na
capítul
o 3 e o *output* deste comando foi de simples
visualização, mas em arquivos maiores (com muitas linhas) a navegação
visualização, mas em arquivos maiores (com muitas linhas) a navegação
para verificar as alterações do arquivo não é tão amigável. Para
para verificar as alterações do arquivo não é tão amigável. Para
facilitar essas e outras situações surgem as *GUI's (Graphical User
facilitar essas e outras situações surgem as *GUI's (Graphical User
...
@@ -50,7 +50,161 @@ trabalho de um projeto com versionamento **GIT** são descritos.
...
@@ -50,7 +50,161 @@ trabalho de um projeto com versionamento **GIT** são descritos.
## Interfaces GIT ##
## Interfaces GIT ##
### git-gui (Nativo) ###
Neste material chamaremos de **Interfaces GIT** as *GUI's* para gestão de um
repositório **GIT**. Estas facilitam a utilização das principais
instruções **GIT** (`git add`, `git commit`, `git push`, `git pull`) e a
visualização dos arquivos e alterações no repositório.
Desde o surgimento do GIT diversas *GUI's* foram propostas. Este
capítulo ter por objetivo apresentar as mais usuais interfaces dos
sistemas operacionais UNIX, Mac OS X e Windowns.
### git-gui ###
Baseada em *Tcl/Tk* a *GUI* chamada `git gui` é mantida como projeto
independente do GIT, mas as versões estáveis são distribuídas junto com
o programa principal. Portanto não é necessário o download e
instalação. A interface é voltada para realizar alterações no
repositório. `git gui` permite a realização de diversas modificações no
repositório, desde as mais simples como *commitar* arquivos até mais
específicas como voltar estágios ou reescrever o último *commit* (muito
útil quando notamos erros de gramática logo após a submissão).
`git gui`, no Windows, pode ser aberto pelo menu iniciar. Nesta
plataforma, ao instalar o GIT (conforme visto no capítulo 2) duas
aplicações ficam disponíveis **git BASH** e **git GUI**. Em sistemas
LINUX podemos criar um *alias* (criar e editando adequadamente um
arquivo em */usr/share/applications*) para que `git gui` fique listada
junto as aplicações do sistema. --Descobrir no MAC se `git gui` fica no
lançador automaticamente. De forma geral, independente da plataforma de
trabalho `git gui` pode ser iniciada a partir de um terminal `bash`, com
o comando:
```sh
git gui
```
Para exemplificar a utilização desta interface vamos alterar alguns
arquivos do repositório `meu1repo`, criado no capítulo 2.
```{r, engine = "bash", include = FALSE}
if [ -d meu1repo ]; then
sudo rm -R meu1repo
fi
mkdir meu1repo
cd meu1repo/
git init
echo "O que é GNU/Linux
Linux é o núcleo do sistema operacional, programa responsável pelo
funcionamento do computador, que faz a comunicação entre hardware
(impressora, monitor, mouse, teclado) e software (aplicativos em
geral). O conjunto do kernel e demais programas responsáveis por
interagir com este é o que denominamos sistema operacional. O kernel é o
coração do sistema.
Os principais programas responsáveis por interagir com o kernel foram
criados pela fundação GNU. Por este motivo é mais correto nos
referenciarmos ao sistema operacional como GNU/Linux ao invés de apenas
Linux.
Uma distribuição nada mais é que o conjunto de kernel, programas de
sistema e aplicativos reunidos num único CD-ROM (ou qualquer outro tipo
de mídia). Hoje em dia temos milhares de aplicativos para a plataforma
GNU/Linux, onde cada empresa responsável por uma distro escolhe os
aplicativos que nela deverão ser inclusos. " > README
git add .
git commit -m "Adiciona README"
git checkout -b newbranch
echo " Lista de afazeres:
* tarefa 1
* tarefa 2
* tarefa 2
* tarefa 3
* tarefa 4
* tarefa 5" > TODO.txt
git add .
git commit -m "Adiciona TODO list"
git checkout master
echo " --- vivaolinux.com" >> README
git add .
git commit -m "Adiciona referência do texto"
git checkout newbranch
echo "##-------------------------------------------
## Arquivo R
plot(iris)" > arquivo.R
git add .
git commit -m "Adiciona arquivo.R"
git checkout master
git merge master newbranch
git branch -d newbranch
```
```{r, engine = "bash", include = TRUE}
cd meu1repo/
echo $(tr '[[:lower:][:upper:]]' '[[:upper:][:lower:]]' < README) > README
echo "Lista de afazeres:
-------------------------------------------
* tarefa 1
* tarefa 2
* tarefa 3
* tarefa 4
* tarefa 5
* tarefa 6" > TODO.txt
echo "
Mais um arquivo criado" > OTHER.txt
```
Após as alterações a interface gráfica é chamada.
```sh
git gui
```
<!--  -->
FIGURA: Inteface `git gui`
A interface `git gui` se apresenta de forma bem simples, o que facilita
sua utilização. Na figura ?? detacamos as quatro áreas que compreendem a
interface. Na primeira porção temos listados os arquivos presentes no
*working directory*, os arquivos criados aparecem com ícone em branco e
os modificados com linhas em azul. E aqui a interface implementa
interativamente o comando `git add`, pois ao clicar no ícone de um
arquivo ele é automaticamente adicionado à *staging area*. Na segunda
parte são listados os arquivos na *staging area* com ícone de *check
mark*. Na terceira parte destacada temos a implementação do comando
`git diff` para qualquer arquivo selecionado. Com destaque de cores a
interface apresenta em vermelho as deleções e verde as adições. Por fim
temos no canto inferior direito a área para escrever *commits* com
botões para submissão de ação. Um detalhe importante do `git gui` é que
o idioma do sistema operacional é verificado para sua construção, ou
seja, os botões da interface na figura ?? são *push*, *commit*, *sign
off*, etc pois o idioma do sistema operacional em que essa interface foi
executado é o inglês. Para português (Brasil) as mensagem ficam .....
Além das quatro áreas principais da interface, que facilitam
interativamente atividades como `git status`, `git diff`, `git add`,
`git commit` e `git push`, temos mais implementações no menu da
interface para procedimentos não cotidianos.
### gitk (Tcl/Tk) / gitg (Gtk) / gitx (MacOS) ###
### gitk (Tcl/Tk) / gitg (Gtk) / gitx (MacOS) ###
...
@@ -104,3 +258,7 @@ grande valia.
...
@@ -104,3 +258,7 @@ grande valia.
Citar materiais de referência para instalação e
Citar materiais de referência para instalação e
utilização.
utilização.
<!-- Exclui o repositório criado para exemplicação -->
```{r, engine = "bash", include = FALSE, eval = FALSE}
sudo rm -R meu1repo
```
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment