├── .gitignore ├── .gitmodules ├── Ementa.md ├── LICENSE ├── Participantes.md ├── README.md └── docs ├── README.md ├── configuracao ├── README.md └── imgs │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ └── cadastro_gh.png ├── pratica ├── README.md └── imgs │ ├── 1.png │ ├── 10.png │ ├── 11.png │ ├── 12.png │ ├── 13.png │ ├── 14.png │ ├── 15.png │ ├── 16.png │ ├── 17.png │ ├── 18.png │ ├── 19.png │ ├── 2.png │ ├── 20.png │ ├── 21.png │ ├── 22.png │ ├── 23.png │ ├── 24.png │ ├── 25.png │ ├── 26.png │ ├── 27.png │ ├── 28.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ ├── colab1.png │ ├── colab2.png │ ├── colab3.png │ ├── colab4.png │ ├── g1.png │ ├── g2.png │ └── g3.png └── visao_geral ├── README.md └── imgs ├── timeline_a.png ├── timeline_b.png └── timeline_c.png /.gitignore: -------------------------------------------------------------------------------- 1 | /.project 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "docs/visao_geral/exemplo-timeline-A"] 2 | path = docs/visao_geral/exemplo-timeline-A 3 | url = https://github.com/arruda/exemplo-timeline-github-mimimi-A.git 4 | [submodule "docs/visao_geral/exemplo-timeline-B"] 5 | path = docs/visao_geral/exemplo-timeline-B 6 | url = https://github.com/arruda/exemplo-timeline-github-mimimi-B.git 7 | [submodule "docs/visao_geral/exemplo-timeline-C"] 8 | path = docs/visao_geral/exemplo-timeline-C 9 | url = https://github.com/arruda/exemplo-timeline-github-mimimi-C.git 10 | -------------------------------------------------------------------------------- /Ementa.md: -------------------------------------------------------------------------------- 1 | Eclipse + Git: Github sem mimimi 2 | ================================ 3 | 4 | Duração total do curso: 2 Horas. 5 | Ministrado por: Felipe Arruda Pontes 6 | 7 | 8 | ## Visão Geral do Git(30 mins) 9 | * O que é? 10 | * Trabalhos Individuais 11 | * Trabalhos Coletivos 12 | * Teoria vs Prática 13 | * Principais Etapas no Git 14 | 15 | ## Configuração (30 mins) 16 | 17 | * Criando uma Conta no Github 18 | * Configurando o Git 19 | 20 | ## Prática (1h) 21 | 22 | * Clone do projeto 23 | * Commits locais 24 | * Push 25 | * Pull 26 | * Contribuindo -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Felipe Arruda Pontes 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /Participantes.md: -------------------------------------------------------------------------------- 1 | Lista de Participantes 2 | ====================== 3 | 4 | * Felipe Arruda Pontes -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Eclipse + EGit: Github sem mimimi. 2 | ================================ 3 | 4 | Muitas pessoas deixam de participar no Github sob o pretexto deste ser complicado. 5 | Quando na verdade este é bem simples e incompreendido por alguns. 6 | 7 | Neste minicurso vou mostrar que é possível sim fazer rapidamente trabalhos versionados em Git, e 8 | colaborar em projetos no Github, sem dor, sem linha de comando, e sem preconceitos (até usuários de Windows são bem vindos). 9 | 10 | 11 | Justificativa 12 | ------------- 13 | 14 | Ter boas noções de controle de versionamento são conhecimentos mínimos exigidos na maioria das grandes empresas, isso por que está facilita a organização e o controle do trabalho, seja este individual ou em equipe. E como o Github é a maior rede social de projetos colaborativos, percebe-se que não há ambiente melhor para o aluno poder aprender sobre essas práticas. 15 | Para facilitar aos alunos que não estão acostumados a utilizar a linha de comandos ou um sistema operacional Unix, uma boa opção para interagir com os recursos Github é utilizar a IDE Eclipse, proporcionando uma interface gráfica amigável, compatível com diversos sistemas operacionais, e abrangente o suficiente para ser usada em diferentes linguagens de programação. 16 | 17 | Ementa 18 | ------ 19 | 20 | A ementa do curso pode ser vista em: [Ementa](Ementa.md) 21 | 22 | 23 | Abordagem 24 | --------- 25 | 26 | Será utilizado a IDE Eclipse, pelo simples fato de que está é roda nos principais sistemas operacionais disponíveis, 27 | em conjunto com um plugin chamado EGit para possibilitar os utilizar os comandos de Git de uma forma fácil e visualmente interativa sem sair da IDE. 28 | 29 | Para tratar o aspecto colaborativo do Git, iremos utilizar o Github. 30 | Neste ambiente os participantes do minicurso poderão experimentar as funcionalidades 31 | e aprender mais sobre as dificuldades de trabalhar em grupo e descobrir as vantagens que um sistema de versionamento 32 | descentralizado como o Git proporcionam. 33 | 34 | Apresentação 35 | ------------ 36 | 37 | Para ver a apresentação basta começar por este arquivo: [Índice](docs/README.md) 38 | 39 | 40 | 41 | Licença 42 | ------- 43 | 44 | Esse projeto é distribuido sob a licença MIT, veja o arquivo LICENSE para mais detalhes. 45 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | Índice 2 | ====== 3 | 4 | * [Visão Geral](visao_geral/README.md) 5 | * [Configuração](configuracao/README.md) 6 | * [Prática](pratica/README.md) -------------------------------------------------------------------------------- /docs/configuracao/README.md: -------------------------------------------------------------------------------- 1 | # Configuração 2 | 3 | ## Criando Uma Conta no Github 4 | 5 | Para criar uma conta, devemos acessar o endereço: https://github.com/. 6 | 7 | Em seguida devemos preencher o formulario de cadastro e clicar em **Sign Up for Github**, conforme a imagem a seguir: 8 | 9 | ![Cadastro Github](imgs/cadastro_gh.png) 10 | 11 | 12 | ## Configurando o Git 13 | 14 | Devemos agora configurar algumas coisas no git (através do plugin **EGit** no **Eclipse**). 15 | 16 | 17 | ### Preferências do Eclipse 18 | 19 | Para acessar essas configurações, clique no menu **Window->Preferences**: 20 | 21 | ![Acessando Menu de Preferêcias](imgs/1.png) 22 | 23 | ### Configurações do Git 24 | 25 | Na janela de preferências podemos escrever **"git"** no campo de busca (canto superior esquerdo) e em seguida selecionar a opção **Team->Git->Configuration** no painel esquerdo: 26 | 27 | ![Configurações do git no Menu de Preferências](imgs/2.png) 28 | 29 | #### Adicionando Informações do Usuário 30 | 31 | A principio para poder ter um ambiente funcional devemos adicionar duas configurações ao git: 32 | 33 | * nome do usuario 34 | * email do usuario 35 | 36 | Para isso clique no botão **[add Entry...]** e coloque os dados a seguir, trocando o campo **value** pelos seus dados: 37 | 38 | ![Add User.name](imgs/3.png) 39 | 40 | Isso informa ao Git qual o nome do usuario que vai fazer os commits quando você estiver logado na sua máquina: 41 | 42 | ![Add User.name](imgs/4.png) 43 | 44 | Agora devemos informar o email do usuario, novamente clique no botão **[add Entry...]** e coloque os dados a seguir, trocando o campo **value** pelos seus dados: 45 | 46 | ![Add User.name](imgs/5.png) 47 | 48 | Para finalizar e salvar as configurações do GIT clique em **[OK]**. 49 | 50 | ## Próximo Tópico 51 | Próximo Tópico: [Prática](../pratica/README.md) -------------------------------------------------------------------------------- /docs/configuracao/imgs/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/configuracao/imgs/1.png -------------------------------------------------------------------------------- /docs/configuracao/imgs/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/configuracao/imgs/2.png -------------------------------------------------------------------------------- /docs/configuracao/imgs/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/configuracao/imgs/3.png -------------------------------------------------------------------------------- /docs/configuracao/imgs/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/configuracao/imgs/4.png -------------------------------------------------------------------------------- /docs/configuracao/imgs/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/configuracao/imgs/5.png -------------------------------------------------------------------------------- /docs/configuracao/imgs/cadastro_gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/configuracao/imgs/cadastro_gh.png -------------------------------------------------------------------------------- /docs/pratica/README.md: -------------------------------------------------------------------------------- 1 | # Prática 2 | 3 | ## Criando um Repositório no Github 4 | 5 | Uma vez feito o login no Github, podemos criar um novo repositório de um projeto facilmente clicando em **[+ New Repository]**, localizado no canto inferior direito da tela, conforme a imagem abaixo: 6 | 7 | ![Novo Repositório no Github](imgs/g1.png) 8 | 9 | Na tela seguinte colocamos os dados do novo repositório: 10 | 11 | * nome 12 | * descrição 13 | 14 | E selecionamos a *checkbox* **initialize this repository with a README**. O que essa opção faz é que ao invés de ter um repositório vazio, ele criará um repositório já com um commit responsavel por criar um arquivo README com os dados de nome e descrição do projeto. Isso é algo que agiliza um pouco as coisas. Em seguida clicamos em **[Create Repository]** 15 | 16 | A imagem abaixo é um exemplo de como pode ser preenchido esses campos: 17 | 18 | 19 | ![Dados Novo Repositório no Github](imgs/g2.png) 20 | 21 | 22 | ## Clone do Repositório 23 | 24 | Agora que já temos um repositório **remoto** (o repositório que acabou de ser criado no Github), podemos fazer um **clone** dele localmente. 25 | 26 | Mas antes disso precisamos selecionar algumas janelas no Eclipse para realizar essas operações. 27 | 28 | ### Habilitando Janelas do Egit 29 | 30 | Selecionamos no menu **Window->Show view->Other...**: 31 | 32 | ![Opção de Menu Para Incluir Novas Janelas Egit](imgs/1.png) 33 | 34 | Na janela que abrir digitamos **git** para filtrar as janelas disponiveis, e escolhemos as opções: 35 | 36 | * Git Repositories 37 | * Git Staging 38 | 39 | ![Seleção de Novas Janelas Egit](imgs/2.png) 40 | 41 | ### Usando Egit Para Clonar o Repositório 42 | 43 | Na nova janela, recém incluida, **Git Repositories** clicamos na opção **Clone a Git Repository**. 44 | 45 | ![Opção Clone a Git Repository](imgs/3.png) 46 | 47 | Para o próximo passo, precisamos pegar o endereço do repositório git que criamos no Github, para isso, vá na pagina do novo repositório e copie o endereço de **HTTPS** (não usar o SSH, já que para utiliza-lo seria necessário outras configurações mais avançadas). A figura abaixo mostra onde se encontra esse link: 48 | 49 | ![Link do repositorio git no github](imgs/g3.png) 50 | 51 | Agora colocamos no primeiro campo (**URI**) colocamos o link do repositório git que criamos no Github. 52 | 53 | Automaticamente os outros campos irão ser preenchidos, faltando apenas os campos relativos a **Autenticação**. 54 | 55 | No campo **user** coloque seu usuário do Github, e no campo **password** coloque sua senha, e clique em **[Next]**. 56 | 57 | ![Dados para clone de repositorio no egit](imgs/4.png) 58 | 59 | Na próxima janela temos a opção de quais branches iremos trazer/baixar neste clone, como temos apenas nosso branch padrão (o branch **master**) não precisamos mudar nada nesta tela. 60 | 61 | ![Seleção de Branches para clone de repositorio no egit](imgs/5.png) 62 | 63 | Na próxima tela temos uma série de opções, mas podemos ignorar todas elas, e apenas considerar uma: **Directory**. 64 | Nesta opção selecionamos onde vai ser clonado o repositório localmente. Se não quiser, pode deixar neste local por padrão, isso fica a gosto de cada um. Por fim clicamos em **[Finish]**. 65 | 66 | ![Onde clonar o repositorio no egit](imgs/6.png) 67 | 68 | Feito isso, podemos ver que agora temos localmente um clone do repositório git que criamos no github. 69 | 70 | ![Como aparece o repositorio no egit](imgs/7.png) 71 | 72 | 73 | ### Criando um Projeto no Eclipse a Partir do Repositório Local 74 | 75 | O que temos agora não é ainda um projeto no eclipse, portanto não podemos utilizar as facilidades da IDE para trabalhar nesse repositorio recém clonado. Isso é: Temos o repositório na nossa máquina mas ele ainda não foi importado como um projeto do Eclipse. 76 | 77 | Para isso vamos clicar com o botão direito no repositório e selecionar a opção **Import Projects...**: 78 | 79 | ![Opção de importar o projeto](imgs/8.png) 80 | 81 | 82 | Na próxima janela selecionamos a opção **Import as General Project** e clicamos em **[Next]**: 83 | 84 | ![Opções da janela de importar projeto](imgs/9.png) 85 | 86 | Na janela seguinte, se quisermos, podemos trocar o nome do projeto. Por fim clicamos em **[Finish]** 87 | 88 | 89 | ![Terminando de importar projeto](imgs/10.png) 90 | 91 | Agora tornamos nosso repositório em um projeto do Eclipse: 92 | 93 | ![Após importar projeto](imgs/11.png) 94 | 95 | ### Fazendo o Git Ignorar Arquivos Desnecessários 96 | 97 | Se formos para a aba de **Git Staging** e selecionarmos o projeto recém criado, veremos que ele mostra um arquivo **.project** numa área denominada **Unstaged Changes**. 98 | 99 | ![Projeto no Git Staging](imgs/12.png) 100 | 101 | Esse arquivo foi criado pelo Eclipse, ele que tem os dados, que o Eclipse entende, sobre o projeto que criamos a pouco. 102 | 103 | Neste caso, ele aparece na área **Unstaged Changes** pois é um novo arquivo, e o Git está nos informando que ele é uma nova alteração que ainda não foi marcada (**Git add**) para ser versionada. 104 | 105 | Entretanto, não iremos versionar esse arquivo, isso por que é um pouco sem sentido commitar esse arquivo, já que não necessáriamente iremos usar o Eclipse sempre neste projeto. Ou então se um colega que decida colaborar com o trabalho não usar a IDE Eclipse não faz sentido este arquivo que é expecifico para o local de trabalho de cada um ser versionado. Em algumas situações inclusive isso pode gerar problemas, já que se em uma máquina o arquivo **.project** tem alguma informação sobre o caminho para aquele projeto, podemos ter outra maquina que não se utilize o mesmo caminho. Isso faria com que o **.project** de uma maquina atrapalhasse o de outra. 106 | 107 | Portanto devemos dizer para o Git ignorar esse arquivo. 108 | 109 | Para fazer com que o Git pare de verificar se um determinado arquivo foi modificado clicamos neste com o botão direito, e selecionamos a opção **Ignore**. 110 | 111 | ![Git ignore project](imgs/13.png) 112 | 113 | Feito isso veremos que o arquivo .project sumirá da janela **Unstaged Changes**, e agora temos outro arquivo aparecendo: **.gitignore**. 114 | 115 | ![Gitignore no lugar do Project](imgs/14.png) 116 | 117 | Esse é o arquivo que contém as informações que dizem ao Git para ignorar determinados arquivos que escolhermos. 118 | Para que em qualquer lugar os mesmos arquivos sejam ignorados, devemos versionar esse arquivo e portanto coloca-lo em um commit. 119 | 120 | 121 | ## Commits Locais 122 | 123 | A primeira coisa que devemos fazer para versionar (commitar) uma alteração em nosso repositório local é marcar quais arquivos, dentre os que sofreram alguma alteração, devem ser commitados. 124 | 125 | Portanto para adcionar um arquivo a um commit (o equivalente ao comando **Git Add**), devemos clicar e arrastar o arquivo da janela de **Unstaged Changes** para a janela de **Stages Changes**: 126 | 127 | 128 | ![Git add gitignore](imgs/15.png) 129 | 130 | Uma vez feito isso para todos os arquivos que queiramos commitar, devemos escrever uma mensagem de commit que em poucas palavras descreva a alteração sendo realizada. Escrevemos essa mensagem no campo **Commit Message**, e uma vez concluído clicamos em **[Commit]**: 131 | 132 | ![Commit do gitignore](imgs/16.png) 133 | 134 | Se quisermos ver o histórico dos commits, para ter uma noção da timeline de nossas alterações, podemos clicar com o botão direito no repositorio e selecionar a opção **Show in->History**. 135 | 136 | ![Opção de mostrar History](imgs/17.png) 137 | 138 | Isso mostrará a timeline do nosso repositório, isso é, nossa arvore de commits, onde os commits mais recentes ficam no topo. 139 | 140 | ![Janela de History](imgs/18.png) 141 | 142 | ## Push 143 | 144 | Agora que fizemos o commit localmente precisamos enviar essa alteração para nosso repositório remoto (aquele do Github) para atualiza-lo com nossas novas alterações. 145 | 146 | Para isso vamos fazer um push. Assim clicamos com o botão direito no repositório em questão e selecionamos a opção: **push to upstream**: 147 | 148 | ![Opção de Push](imgs/19.png) 149 | 150 | Neste ponto provavelmente será pedido o usuario e a senha do Github, uma vez informado é exibido uma janela informando o que foi enviado: 151 | 152 | ![Após Push](imgs/20.png) 153 | 154 | ## Pull 155 | 156 | Antes de começarmos a ver a parte do **Pull** vamos navegar para a janela do projeto no Github, mais especificamente vamos para o arquivo **README.md** de nosso repositório, e clicamos no botão no formato de um **lápis**, para habilitar a edição deste arquivo no próprio browser: 157 | 158 | ![Editar Arquivo no Github](imgs/21.png) 159 | 160 | Uma vez nesta tela alteramos o arquivo README.md com alguma coisa, ex: 161 | 162 | ![Editando Arquivo no Github](imgs/22.png) 163 | 164 | Para commitar essas alterações pelo Github devemos escrever a mensagem de commit, e clicar em **[Commit Changes]**: 165 | 166 | ![Commitando Arquivo no Github](imgs/23.png) 167 | 168 | Com isso nosso repositório local está agora desatualizado em relação ao remoto (Github). 169 | 170 | Portanto devemos fazer um **pull** das novas alterações para o nosso repositório local. 171 | 172 | Para tal, clicamos com o botão direito no nosso repositório e em seguida selecionamos a opção **pull**: 173 | 174 | ![Selecionando opção de pull](imgs/24.png) 175 | 176 | Isso abrirá uma tela informando quais as alterações foram pegas (**pull**) do Github: 177 | 178 | ![Resultado de pull](imgs/25.png) 179 | 180 | ## Comparar Alterações (Diff) 181 | Vamos agora fazer mais uma alteração local no **README.md**, trocando outros detalhes, ex: 182 | 183 | ![Outras alterações locais](imgs/26.png) 184 | 185 | Agora, na aba do **Git staging**, damos dois cliques no arquivo **README.md** (dentro da janela de **unstaged changes**). 186 | 187 | Isso abrirá uma janela que mostra as alterações que foram feitas (**esquerda**) em comparação com o que tinha antes (**direita**) localmente: 188 | 189 | ![Comparação local](imgs/27.png) 190 | 191 | Agora que conferimos que a alteração é aquilo mesmo que queriamos, podemos commitar essa alteração: 192 | 193 | ![Commitando outra alteração](imgs/28.png) 194 | 195 | 196 | ## Contribuindo 197 | 198 | Existem diversas maneiras de se contribuir em um repositório no Github, porém, por conta da carga horária do curso, veremos apenas a mais simples de todas. 199 | 200 | Neste caso iremos incluir diretamente um outro usuário como **Colaborador**, assim este terá direito de enviar diretamente seus commits (**push**) para seu repositório. 201 | 202 | Para isso, vá no seu repositório do Github, e selecione a opção **Settings**, que fica no menu da direita: 203 | ![Opção Settings do Repo](imgs/colab1.png) 204 | 205 | Em seguida selecione a opção **Collaborators** no menu da esquerda: 206 | ![Settings do Repo Github](imgs/colab2.png) 207 | 208 | Coloque o username do colaborador e clique em **[Add Collaborator]**: 209 | ![Incluindo Colaborador](imgs/colab3.png) 210 | 211 | Por fim, você terá a lista dos seus colaboradores neste repositório: 212 | 213 | ![Lista de Colaboradores](imgs/colab4.png) 214 | 215 | -------------------------------------------------------------------------------- /docs/pratica/imgs/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/1.png -------------------------------------------------------------------------------- /docs/pratica/imgs/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/10.png -------------------------------------------------------------------------------- /docs/pratica/imgs/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/11.png -------------------------------------------------------------------------------- /docs/pratica/imgs/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/12.png -------------------------------------------------------------------------------- /docs/pratica/imgs/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/13.png -------------------------------------------------------------------------------- /docs/pratica/imgs/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/14.png -------------------------------------------------------------------------------- /docs/pratica/imgs/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/15.png -------------------------------------------------------------------------------- /docs/pratica/imgs/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/16.png -------------------------------------------------------------------------------- /docs/pratica/imgs/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/17.png -------------------------------------------------------------------------------- /docs/pratica/imgs/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/18.png -------------------------------------------------------------------------------- /docs/pratica/imgs/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/19.png -------------------------------------------------------------------------------- /docs/pratica/imgs/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/2.png -------------------------------------------------------------------------------- /docs/pratica/imgs/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/20.png -------------------------------------------------------------------------------- /docs/pratica/imgs/21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/21.png -------------------------------------------------------------------------------- /docs/pratica/imgs/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/22.png -------------------------------------------------------------------------------- /docs/pratica/imgs/23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/23.png -------------------------------------------------------------------------------- /docs/pratica/imgs/24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/24.png -------------------------------------------------------------------------------- /docs/pratica/imgs/25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/25.png -------------------------------------------------------------------------------- /docs/pratica/imgs/26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/26.png -------------------------------------------------------------------------------- /docs/pratica/imgs/27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/27.png -------------------------------------------------------------------------------- /docs/pratica/imgs/28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/28.png -------------------------------------------------------------------------------- /docs/pratica/imgs/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/3.png -------------------------------------------------------------------------------- /docs/pratica/imgs/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/4.png -------------------------------------------------------------------------------- /docs/pratica/imgs/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/5.png -------------------------------------------------------------------------------- /docs/pratica/imgs/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/6.png -------------------------------------------------------------------------------- /docs/pratica/imgs/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/7.png -------------------------------------------------------------------------------- /docs/pratica/imgs/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/8.png -------------------------------------------------------------------------------- /docs/pratica/imgs/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/9.png -------------------------------------------------------------------------------- /docs/pratica/imgs/colab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/colab1.png -------------------------------------------------------------------------------- /docs/pratica/imgs/colab2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/colab2.png -------------------------------------------------------------------------------- /docs/pratica/imgs/colab3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/colab3.png -------------------------------------------------------------------------------- /docs/pratica/imgs/colab4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/colab4.png -------------------------------------------------------------------------------- /docs/pratica/imgs/g1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/g1.png -------------------------------------------------------------------------------- /docs/pratica/imgs/g2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/g2.png -------------------------------------------------------------------------------- /docs/pratica/imgs/g3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/pratica/imgs/g3.png -------------------------------------------------------------------------------- /docs/visao_geral/README.md: -------------------------------------------------------------------------------- 1 | # Visão Geral de GIT 2 | 3 | ## O que é? 4 | 5 | * Um VCS (Version Control System) 6 | * Rápido e Moderno 7 | * Facilita alterações colaborativas 8 | * Pode ser usado para qualquer tipo de "Trabalho de Conteúdo" 9 | * Distribuído e Local (conectividade não impede o versionamento do trabalho) 10 | 11 | ## Trabalhos Individuais 12 | 13 | Existem necessidades básicas como: 14 | 15 | * Manter o **histórico** de alterações (chamados de Commits): 16 | * O que foi alterado; 17 | * Quando foi alterado; 18 | * Por que foi alterado; 19 | * **Revisar** Alterações: 20 | * Desfazer alterações; 21 | * Voltar para uma alteração; 22 | * Criar ramificações nas alterações (chamados Branches) 23 | 24 | 25 | ## Trabalhos Coletivos 26 | 27 | Além das necessidades presentes em trabalhos individuais, em trabalhos coletivos existem as seguintes necessidades: 28 | 29 | * Identificação: 30 | * Quem fez a alteração; 31 | * Juntar Alterações: 32 | * Juntar alterações de todos os colaboradores (chamado Merge); 33 | 34 | 35 | 36 | ## Teoria vs Prática 37 | 38 | ### Teoria 39 | 40 | Na teoria é simples, temos aqui dois exemplos, onde Felipe e Annanda cada um está fazendo uma parte de um trabalho. 41 | 42 | Assim cada um tem uma tarefa: 43 | * Felipe irá fazer o arquivo README e 44 | * Annanda fará o arquivo de Licença de software livre. 45 | 46 | Se formos ver a linha do tempo dos commits (alterações) do Felipe e da Annanda teremos algo do tipo: 47 | 48 | #### Linha do tempo do Felipe: 49 | 50 | ![Exemplo timeline A](imgs/timeline_a.png) 51 | 52 | #### Linha do tempo da Annanda: 53 | 54 | ![Exemplo timeline B](imgs/timeline_b.png) 55 | 56 | ### Prática 57 | 58 | Na prática as coisas são um pouco mais complexas, pois temos: 59 | 60 | * Pessoas fazendo alterações em paralelo; 61 | * Pessoas fazendo alterações em horários diferentes; 62 | 63 | Como fica esse histórico e a linha do tempo se não podemos perder as informações do que cada um fez e temos que juntar isso de alguma forma?! 64 | 65 | #### Linha do tempo do Merge de Felipe e Annanda: 66 | 67 | ![Exemplo timeline C](imgs/timeline_c.png) 68 | 69 | ## Principais Etapas no Git 70 | 71 | ### Git Clone 72 | 73 | #### Comando: 74 | 75 | $ git clone git@caminho/para/repositorio.git 76 | 77 | #### Descrição: 78 | 79 | Cria uma cópia local do repositório do remoto de origem. 80 | 81 | ### Git Status 82 | 83 | #### Comando: 84 | 85 | $ git status 86 | 87 | #### Descrição: 88 | 89 | Mostra o estado atual do repositório local. 90 | 91 | 92 | ### Git Add 93 | 94 | #### Comando: 95 | 96 | $ git add . 97 | 98 | #### Descrição: 99 | 100 | Marca alterações a serem versionadas. 101 | 102 | 103 | ### Git Commit 104 | 105 | #### Comando: 106 | 107 | $ git commit -m 'mensagem de commit' 108 | 109 | #### Descrição: 110 | 111 | Versiona as alterações marcadas pelo git add. 112 | 113 | 114 | ### Git Push 115 | 116 | #### Comando: 117 | 118 | $ git push origin master 119 | 120 | #### Descrição: 121 | 122 | Envia os commits locais para o reposítorio remoto. 123 | 124 | 125 | ### Git Pull 126 | 127 | #### Comando: 128 | 129 | $ git pull origin master 130 | 131 | #### Descrição: 132 | 133 | Recupera os commits do reposítorio remoto para o reposítorio local. 134 | 135 | 136 | ### Git Merge 137 | 138 | #### Comando: 139 | 140 | $ git merge branch 141 | 142 | #### Descrição: 143 | 144 | Junta os commits de um branch no atual. 145 | 146 | ## Próximo Tópico 147 | Próximo Tópico: [Configuração](../configuracao/README.md) -------------------------------------------------------------------------------- /docs/visao_geral/imgs/timeline_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/visao_geral/imgs/timeline_a.png -------------------------------------------------------------------------------- /docs/visao_geral/imgs/timeline_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/visao_geral/imgs/timeline_b.png -------------------------------------------------------------------------------- /docs/visao_geral/imgs/timeline_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arruda/github-sem-mimimi/50ae45e0eb11ae5fc035a376b0ea8f7b44724e15/docs/visao_geral/imgs/timeline_c.png --------------------------------------------------------------------------------