├── .gitbook └── assets │ ├── asking-pull-request.png │ ├── create-pull-request.png │ ├── create-repository-button.png │ ├── create-repository-desc.png │ ├── create-repository-name.png │ ├── create-repository-public-private.png │ ├── differents-commits.png │ ├── image.png │ ├── initialize-with-readme.png │ ├── repo-create.png │ ├── screen-shot-2018-09-22-at-20.22.57.png │ └── screen-shot-2018-09-22-at-22.51.11.png ├── CONTRIBUTING.md ├── README.md ├── SUMMARY.md ├── ciclo-de-vida-basico ├── comandos-mais-utilizados.md ├── criando-um-repositorio.md ├── hands-on-2.md ├── o-que-e-o-.gitignore.md └── trabalhando-com-branchs.md ├── dicas-boas-praticas ├── dicas-de-boas-praticas.md ├── explicacao-sobre-cherry-pick.md ├── explicacao-sobre-rebase.md └── explicacao-sobre-squash.md ├── git-e-github ├── conceitos-e-vocabulario-do-git.md ├── setup-de-instalacao.md ├── setup-instalacao-linux.md ├── setup-instalacao-windows.md └── setup.md ├── hands-on ├── exercicio-1.md ├── exercicio-2.md ├── exercicio-3.md └── exercicio-4.md ├── images ├── alternate-between-branches.png ├── create-branches-1.png ├── create-branches-2.png ├── git-remote-v.png ├── hands-on-fork-1.PNG ├── hands-on-fork-2.PNG ├── hands-on-fork-3.PNG ├── hands-on-fork.PNG ├── hands-on-merge.png ├── p0001-0.png ├── p0001-1.png ├── p0001-10.png ├── p0001-11.png ├── p0001-12.png ├── p0001-13.png ├── p0001-14.png ├── p0001-2.png ├── p0001-3.png ├── p0001-4.png ├── p0001-5.png ├── p0001-6.png ├── p0001-7.png ├── p0001-8.png └── p0001-9.png └── o-que-onde-e-por-que.md /.gitbook/assets/asking-pull-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/asking-pull-request.png -------------------------------------------------------------------------------- /.gitbook/assets/create-pull-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/create-pull-request.png -------------------------------------------------------------------------------- /.gitbook/assets/create-repository-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/create-repository-button.png -------------------------------------------------------------------------------- /.gitbook/assets/create-repository-desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/create-repository-desc.png -------------------------------------------------------------------------------- /.gitbook/assets/create-repository-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/create-repository-name.png -------------------------------------------------------------------------------- /.gitbook/assets/create-repository-public-private.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/create-repository-public-private.png -------------------------------------------------------------------------------- /.gitbook/assets/differents-commits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/differents-commits.png -------------------------------------------------------------------------------- /.gitbook/assets/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/image.png -------------------------------------------------------------------------------- /.gitbook/assets/initialize-with-readme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/initialize-with-readme.png -------------------------------------------------------------------------------- /.gitbook/assets/repo-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/repo-create.png -------------------------------------------------------------------------------- /.gitbook/assets/screen-shot-2018-09-22-at-20.22.57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/screen-shot-2018-09-22-at-20.22.57.png -------------------------------------------------------------------------------- /.gitbook/assets/screen-shot-2018-09-22-at-22.51.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/.gitbook/assets/screen-shot-2018-09-22-at-22.51.11.png -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Como contribuir com esse repositório? 2 | 3 | Estamos atualizando o conteúdo desse guia de git e github e a ajuda da comunidade será essencial para isso!! 4 | 5 | ## Com quais assuntos posso contribuir?
6 | Você pode ver quais assuntos e exercícios estamos buscando contribuição nas [issues](https://github.com/WoMakersCode/git-e-github/issues) do nosso projeto. 7 | 8 | ### :question: Como envio um conteúdo para esse guia?
9 | Para enviar um conteúdo, siga os seguintes passos: 10 | 1. :fork_and_knife: Faça uma fork deste repositório 11 | 2. :hammer: Veja a issues abertas no repositório, as issues terão a estrutura [seção](assunto da issue)
12 | *as seções são as pastas com os conteúdos, atualmente as seções se dividem em: [ciclo de vida basico](https://github.com/WoMakersCode/git-e-github/tree/master/ciclo-de-vida-basico),[git e github](https://github.com/WoMakersCode/git-e-github/tree/master/git-e-github),[hands-on](https://github.com/WoMakersCode/git-e-github/tree/master/hands-on) e [dicas-boas-praticas](https://github.com/WoMakersCode/git-e-github/tree/master/dicas-boas-praticas)* 13 | 3. :busts_in_silhouette: Adicione o seu perfil na área de pessoas colaboradoras do projeto (contributors) 14 | 4. :wrench: Envie um Pull Request 15 | 5. :wrench: Solicite a revisão do hacktober-team 16 | 6. :tada: Tenha o seu Pull Request aprovado - sucesso! 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: >- 3 | Este é um curso rápido e prático para você aprender a utilizar controle de 4 | versão em seus projetos. 5 | --- 6 | 7 | # Desvendando Git e GitHub 8 | 9 | ![](.gitbook/assets/screen-shot-2018-09-22-at-20.22.57.png) 10 | 11 | ## **GitHub** é como as pessoas constroem software 12 | 13 | Trabalhar com controle de versão é uma habilidade essencial para qualquer desenvolvedora de software gerenciar sua base de código, acompanhar as alterações e coordenar a colaboração entre uma equipe. 14 | 15 | Neste curso, você aprenderá sobre: 16 | 17 | 1. [Criando uma conta e seu primeiro repositório no GitHub](git-e-github/setup.md) 18 | 2. [Setup de instalação](git-e-github/setup-de-instalacao.md) 19 | 3. [Vocabulário](git-e-github/conceitos-e-vocabulario-do-git.md) 20 | 4. [Trabalhando com repositórios](ciclo-de-vida-basico/criando-um-repositorio.md) 21 | 5. [Comandos mais utilizados](ciclo-de-vida-basico/comandos-mais-utilizados.md) 22 | 6. [Trabalhando com branchs](ciclo-de-vida-basico/trabalhando-com-branchs.md) 23 | 7. [Restringindo arquivos com .gitignore](ciclo-de-vida-basico/o-que-e-o-.gitignore.md) 24 | 8. [Dicas de boas práticas](dicas-boas-praticas/dicas-de-boas-praticas.md) 25 | 9. [Atividades hands-on](ciclo-de-vida-basico/hands-on-1.md) 26 | 27 | 28 | ## **Sobre a nossa comunidade** 29 | 30 | A WoMakersCode é uma **comunidade** sem fins lucrativos, que busca o **protagonismo feminino na tecnologia**, através do desenvolvimento profissional e econômico. Oferecemos workshops, eventos e debates com foco no mercado de Tecnologia, orientados para capacitação técnica e fortalecimento de habilidades pessoais. Nossos eventos são realizados em diversas cidades do país, promovendo a conscientização da igualdade de gênero e buscando compreender as causas da sub-representação feminina neste mercado de TI. 31 | 32 | 33 | ## **Contribua para esse guia** 34 | Veja detalhes no nosso [guia de contribuição](https://github.com/WoMakersCode/git-e-github/blob/master/CONTRIBUTING.md) 35 | 36 | ## **Quem já contribuiu com esse guia** 37 | 38 | [Cynthia Zanoni](https://github.com/cyz)
39 | [Kamila Santos](https://github.com/Kamilahsantos)
40 | [Caroline Pinheiro](https://github.com/CarolPinheiro)
41 | [Leticia Campos](https://github.com/leticiacamposs2)
42 | [Ester Gama](https://github.com/esterfania)
43 | [Letícia Vargas](https://github.com/leticiavargas) 44 | [Danielle Farias](https://github.com/danielle8farias/) 45 | 46 | **Acompanhe nossos canais e ajude-nos a crescer:** 47 | 48 | **→** [**Participe de nossos Meetups** ](https://www.meetup.com/pt-BR/WoMakersCode/) **→** [**Conheça nosso portal**](http://womakerscode.org/)\*\*\*\* 49 | 50 | **→ Siga em:** [**Facebook**](https://www.facebook.com/womakerscode/) **//** [**Twitter**](https://twitter.com/womakerscode) **//** [**Instagram**](https://www.instagram.com/womakersgram/) **//** [**Youtube**](https://www.youtube.com/womakerscode)\*\*\*\* 51 | 52 | -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Table of contents 2 | 3 | * [Desvendando Git e GitHub](README.md) 4 | * [O que é, o que é?](o-que-onde-e-por-que.md) 5 | 6 | ## Git e GitHub 7 | 8 | * [Criando uma conta e seu primeiro repositório no GitHub](git-e-github/setup.md) 9 | * [Setup de Instalação](git-e-github/setup-de-instalacao.md) 10 | * [Vocabulário do Git](git-e-github/conceitos-e-vocabulario-do-git.md) 11 | 12 | ## Ciclo de vida básico 13 | 14 | * [Trabalhando com Repositórios](ciclo-de-vida-basico/criando-um-repositorio.md) 15 | * [Comandos mais utilizados](ciclo-de-vida-basico/comandos-mais-utilizados.md) 16 | * [Hands-on \#1](ciclo-de-vida-basico/hands-on-1.md) 17 | * [Trabalhando com branchs](ciclo-de-vida-basico/trabalhando-com-branchs.md) 18 | * [O que é o .gitignore?](ciclo-de-vida-basico/o-que-e-o-.gitignore.md) 19 | * [Hands-on \#2](ciclo-de-vida-basico/hands-on-2.md) 20 | 21 | ## Hands on 22 | 23 | * [Exercício 1](hands-on/exercicio-1.md) 24 | * [Exercício 2](hands-on/exercicio-2.md) 25 | * [Exercício 3](hands-on/exercicio-3.md) 26 | 27 | ## Dicas e boas práticas 28 | 29 | * [Dicas de boas práticas](dicas-boas-praticas/dicas-de-boas-praticas.md) 30 | * [Explicação sobre rebase](dicas-boas-praticas/explicação-sobre-rebase.md) 31 | * [Explicação sobre squash](dicas-boas-praticas/explicação-sobre-squash.md) 32 | * [Explicação sobre cherry pick](dicas-boas-praticas/explicação-sobre-cherry-pick.md) 33 | -------------------------------------------------------------------------------- /ciclo-de-vida-basico/comandos-mais-utilizados.md: -------------------------------------------------------------------------------- 1 | # Comandos mais utilizados 2 | 3 | ## git status 4 | 5 | Verifica o status/condição da branch em que você está trabalhando, arquivos modificados, criados e exluídos 6 | 7 | ```css 8 | $ git status 9 | ``` 10 | 11 | ## git add 12 | 13 | Após criar um arquivo, adicione o arquivo no rastreamento do Git. No Terminal, use o comando `git add` seguido do nome do arquivo ou somente `.` para adicionar todos os arquivos ainda não rastreados. 14 | 15 | ```css 16 | $ git add index.html 17 | ``` 18 | 19 | ## git commit 20 | 21 | Depois de adicionar o arquivo a ser rastreado, confirme as alterações a serem rastreadas usando o Git. No Terminal, use `git commit - m` seguido por uma mensagem curta para confirmar as mudanças. 22 | 23 | ```css 24 | $ git commit -m "commit inicial" 25 | ``` 26 | 27 | Dica: tente tornar suas mensagens curtas, mas significativas. 28 | 29 | #### Exemplo 30 | 31 | ```css 32 | $ git commit -m "Página inicial e pastas de CSS e JS" 33 | ``` 34 | 35 | ## git push 36 | 37 | Depois de confirmar as alterações, envie as alterações de sua máquina local para o repositório remoto. No Terminal, use o comando `git push` seguido do nome da branch que você está enviando. 38 | 39 | #### Exemplo 40 | 41 | ```css 42 | $ git push origin master 43 | ``` 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /ciclo-de-vida-basico/criando-um-repositorio.md: -------------------------------------------------------------------------------- 1 | # Trabalhando com Repositórios 2 | 3 | ## Criar um repositório 4 | 5 | É possível versionar um projeto através de um repositório, que em seu computador, basicamente, será uma pasta que terá todos os arquivos do seu projeto. 6 | 7 | ```css 8 | $ git init 9 | ``` 10 | 11 | Este comando, irá criar uma pasta `.git` na raiz do projeto e nela, ficarão registradas as informações relacionadas ao controle do versionamento. 12 | 13 | ## Conectar um repositório local com a nuvem do GitHub 14 | 15 | Se você já está trabalhando em um projeto que ainda não está versionado, você pode criar um repositório no GitHub e conectar seus arquivos locais com o GitHub. Para adicionar o rastreamento remoto, use o comando `git remote add` no terminal, no diretório em que seu repositório está armazenado. 16 | 17 | ```javascript 18 | /* navegando até a pasta */ 19 | $ cd nomedaminhapasta 20 | 21 | /* estando dentro da pasta do projeto, indique a URL */ 22 | $ git remote add origin https://github.com/user/repo.git 23 | 24 | /* verificando a origem adicionada ao repositório */ 25 | $ git remote -v 26 | 27 | /* Retorno esperado */ 28 | origin https://github.com/user/repo.git (fetch) 29 | origin https://github.com/user/repo.git (push) 30 | ``` 31 | 32 | ## Clonar um repositório já existente 33 | 34 | Clonar um repositório já existente é, literalmente, fazer uma cópia dele em sua máquina local. No caso a seguir, vamos clonar um repositório remoto \(que está na nuvem do GitHub\). 35 | 36 | 1. Na página da Web do [repositório](https://github.com/WoMakersCode/Front-end-Study-Group), clique no botão verde "clone or download", no lado direito da página. 37 | 38 | ![Print da Tela do Projeto no GitHub](../.gitbook/assets/screen-shot-2018-09-22-at-22.51.11.png) 39 | 40 | 2. Selecione a opção "Usar HTTPS" - se estiver disponível - e copie o link. 41 | 42 | 3. No Terminal, navegue até sua pasta de desenvolvimento. 43 | 44 | *Nota: Se você não tiver uma pasta de desenvolvimento, pode ser uma boa idéia criar uma onde você pode armazenar todos os diretórios rastreados pelo `git` em um só lugar.* 45 | 46 | No tutorial, vou navegar até minha área de trabalho \(Desktop\) e criar uma pasta nova, no momento que estiver clonando o repositório. Para isso, logo após a URL do repositório no GitHub, vou adicionar o nome da pasta. 47 | 48 | ```css 49 | $ cd Desktop 50 | $ git clone https://github.com/WoMakersCode/Front-end-Study-Group.git nomedanovapasta 51 | ``` 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /ciclo-de-vida-basico/hands-on-2.md: -------------------------------------------------------------------------------- 1 | # Hands-on: Como fazer um fork e contribuir com outros projetos 2 | 3 | Um fork do GitHub é uma cópia de um repositório (repo) que fica em sua conta. Depois de fazer um fork (bifurcar) de um repositório, você poderá editar o conteúdo de seu repositório bifurcado sem afetar o repositório principal. Quando desejar, poderá enviar suas alterações para o repositório principal. 4 | 5 | ## Criando o fork 6 | 7 | Supondo que você esteja usando o GitHub, essa etapa é fácil. Apenas encontre o repositório para o qual você está contribuindo e pressione o botão Fork no canto superior direito. Isso criará uma cópia exata do repositório (e todos os seus ramos) com seu próprio nome de usuário. 8 | 9 | ![Repositório no GitHub com o botão FORK destacado em amarelo](../images/hands-on-fork.PNG) 10 | 11 | ## Clonando o repositório bifurcado 12 | 13 | O GitHub o redirecionará automaticamente para o repositório bifurcado com o seu nome de usuário. Este é o repositório que você precisa para clonar em seu ambiente de desenvolvimento local, não o original. Pegue a URL fornecida pelo GitHub no botão verde "Clonar ou Baixar" e conecte-a ao comando abaixo. 14 | 15 | ![Repositório no GitHub com o comando do botão clone acionado](../images/hands-on-fork-1.PNG) 16 | 17 | ``` 18 | git clone https://github.com/cyz/data-science-bootcamp.git 19 | ``` 20 | 21 | ## Mantendo seu repositório bifurcado com o repositório principal 22 | 23 | Depois de fazer o fork de um repositório, as alterações no repositório original (ou "upstream") não são enviadas para o seu fork. Precisamos dizer ao novo repositório para seguir as mudanças feitas no upstream para mantê-lo atualizado por meio de controles remotos. 24 | 25 | Alterne os diretórios para o repositório bifurcado que você acabou de clonar e execute os seguintes comandos. Substitua a última parte da primeira linha pelo URL do clone do repositório **original** - semelhante ao modo como você pegou o URL na etapa 2, mas **não é** aquele com seu nome de usuário. 26 | 27 | Isso vincula a bifurcação de volta ao repositório original como um remoto, que nomearemos ``upstream``, depois o buscaremos. 28 | 29 | ``` 30 | git remote add --track master upstream https://github.com/WoMakersCode/data-science-bootcamp.git 31 | git fetch upstream 32 | ``` 33 | 34 | ## Criando uma nova branch para realizar mudanças 35 | 36 | É possível fazer alterações diretamente na branch `master`, mas isso pode FUBAR as coisas no futuro por motivos complicados. É melhor criar um `checkout` novo ramo para **cada** mudança / melhoria que você deseja fazer. Substitua `fix-readme-typo` por um nome mais descritivo para suas alterações, como `add-study-references` ou `update-dependencies`. 37 | 38 | ``` 39 | git checkout -b fix-readme-typo upstream/master 40 | ``` 41 | 42 | ## Faça suas alterações! 43 | 44 | Essa é a parte mais fácil ou a mais difícil, dependendo de como você a encara. 😉 Neste ponto, você está isolado no novo branch que acabou de criar e é seguro abrir qualquer editor de texto ou IDE que usar e enlouquecer. 45 | 46 | ## Adicione, confirme e envie as alterações 47 | 48 | Você provavelmente está acostumado com esses comandos. Adicione os arquivos que você alterou e envie-os com uma mensagem descritiva. 49 | 50 | ``` 51 | git add . 52 | git commit -m "Ajustando alguns erros gramaticais no arquivo readme" 53 | ``` 54 | 55 | A única diferença é o ramo para o qual você está empurrando. Você provavelmente costuma enviar `push` para master, mas, neste caso, estamos enviando para o branch com o nome que você criou na etapa 4. 56 | 57 | ``` 58 | git push -u origin fix-readme-typo 59 | ``` 60 | 61 | ## Criando o seu Pull Request (PR) 62 | 63 | Agora você está pronto para enviar a melhoria feita aos mantenedores do projeto para aprovação. Ao acessar o seu repositório bifurcado em sua conta, você irá encontrar um aviso de que há uma branch disponível para Pull Request. 64 | 65 | ![Repositório no GitHub mostrando que existe uma branch disponível para criar um Pull Request](../images/hands-on-fork-2.PNG) 66 | 67 | Vá para a guia Pull Requests do repositório original e você verá uma sugestão automática do GitHub para criar uma solicitação pull de seu novo branch. 68 | 69 | ![Repositório no GitHub com o comando do botão clone acionado](../images/hands-on-fork-3.PNG) 70 | -------------------------------------------------------------------------------- /ciclo-de-vida-basico/o-que-e-o-.gitignore.md: -------------------------------------------------------------------------------- 1 | # O que é o .gitignore? 2 | 3 | Às vezes, há arquivos sensíveis \(exemplo: senhas\) ou que são irrelevantes e que você não deseja versionar \(exemplo: node\_module\). 4 | 5 | O Git usa um arquivo oculto chamado `.gitignore` para indicar quais arquivos ou tipos de arquivos \(exemplo: _.pkl, .ipynb\_checkpoints_\) não devem ser rastreados para o versionamento. Depois de adicionar o(s) nome(s) do(s) arquivo(s) ao arquivo `.gitignore`, as alterações feitas nos arquivos que correspondem a esses nomes não serão rastreadas. 6 | 7 | Exemplo: 8 | 9 | * Crie um arquivo chamado "credentials.json" no diretório do seu repositório. 10 | * Se você executar o `git status`, deverá ver "credentials.json" na seção de arquivos não acompanhados. 11 | * Agora, crie um arquivo chamado `.gitignore` - se ele não existir. 12 | * Adicione o texto "credentials.json" ao arquivo `.gitignore` 13 | * Salve e feche o arquivo `.gitignore` 14 | * Se você executar o `git status`, "credentials.json" não deverá mais aparecer. 15 | 16 | É uma boa prática adicionar, definir as regras e enviar o arquivo `.gitignore` para o GitHub, para que seus colaboradores possam ver \(e adicionar\) quais arquivos não devem ser rastreados no repositório. 17 | 18 | -------------------------------------------------------------------------------- /ciclo-de-vida-basico/trabalhando-com-branchs.md: -------------------------------------------------------------------------------- 1 | # Trabalhando com branchs 2 | 3 | ## 1. O que é uma branch? 4 | 5 | Acho que, sem sombra de dúvidas, quando começamos a mexer com github essa é a primeira dúvida que vem à nossa mente. Afinal, o que são as famosas branches que todos falam? 6 | Para explicar isso, eu gostaria de usar um exemplo mais prático, misturado com algo visual. 7 | Quando pesquisamos no google o que são branches, a primeira imagem que nos aparece é essa daqui: 8 | ![Demonstração do que seriam branches de forma visual](https://wac-cdn.atlassian.com/dam/jcr:389059a7-214c-46a3-bc52-7781b4730301/hero.svg?cdnVersion=1299) 9 | E se você nunca teve contato anteriormente com isso, pode ser meio assustador, mas não se preocupe, é mais fácil do que parece. 10 | Branch, é o nome dado para o sistema de versionamento que usamos através do Git e Github, para manter controle dos projetos. 11 | Vamos supor que estivéssemos construindo uma calculadora juntos, e decidíssemos que você cuidaria de criar a operação de soma e eu a de subtração. 12 | ![Fluxo de branches, indicando onde fica a master e a feature](https://atitudereflexiva.files.wordpress.com/2019/10/branch.png?w=300&h=208) 13 | Quando começamos um projeto, sempre nos encontramos na Master, a branch principal, e quando estamos trabalhando sozinhos ou até mesmo em grupo, é interessante que criemos "cópias" de um momento da nossa master, para podermos trabalhar com as novas features (por exemplo uma nova operação matemática), sem afetar o código que já se encontra funcionando. 14 | Ou seja, quando você fosse desenvolver a funcionalidade de soma da nossa calculadora, você criaria uma branch à parte da master, com tudo que ela possuísse naquele momento para que pudesse criar os códigos sem se preocupar em afetar o código que já possuíamos naquele momento. 15 | 16 | ## 2. Como criar uma branch 17 | Se você deseja criar uma branch via linha de comando, basta ir até o seu terminal (caso você seja usuário de Windows, pode usar o powershell ou, se quiser, baixar o Git Bash [aqui](https://gitforwindows.org/)) e digitar dentro da pasta onde está o seu projeto: 18 | 19 | git branch nome-da-sua-branch 20 | E depois para acessar a branch: 21 | 22 | git checkout nome-da-sua-branch 23 | Caso você queira em qualquer momento saber em qual branch se encontra, basta digitar: 24 | 25 | git branch 26 | E a branch onde você se encontra vai aparecer com um * ao lado e colorida, dependendo do terminal que você esteja usando. 27 | Caso queira ganhar tempo criando a branch e já indo para ela, basta digitar: 28 | 29 | git checkout -b nome-da-sua-branch 30 | E assim que a branch for criada, você já será levado para ela. 31 | Vale ressaltar que é uma boa prática darmos o nome às nossas branches com referência à feature que iremos desenvolver nelas, o que no nosso caso, seria "soma", por exemplo. 32 | 33 | **Caso você esteja usando o github, basta seguir os seguintes passos** 34 | Abra seu repositório depois de realizar o Fork ou criar um repositório novo. 35 | ![printscreen da tela inicial do github](../images/create-branches-1.png) 36 | Clique onde está escrito master, e digite lá o nome da branch que deseja criar 37 | ![printscreen do momento da criação da branch via github](../images/create-branches-2.png) 38 | Depois disso basta clicar em *Create branch*, para que a branch seja criada remotamente. 39 | 40 | ## 3. Como alternar entre branches 41 | Conforme explicado acima, podemos usar `git checkout nome-da-branch` para alternar entre as branches, mas existe outra forma também, que é: 42 | 43 | git switch nome-da-branch 44 | Que funciona da mesma forma que a anterior, e pode ser usada para navegar entre as branches. 45 | **Para alterar entre as branches no github basta seguir o seguinte passo** 46 | ![printsceen do Github demonstrando onde clicar para alternar entre branches](../images/alternate-between-branches.png) 47 | Basta clicar em master, e selecionar entre as branches disponíveis, para qual você deseja ir. 48 | ## 4. Como subir uma branch local para um repositório remoto 49 | Antes de subirmos nossa branch, precisamos verificar se nosso repositório local está com o link do repositório remoto configurado. 50 | Para isso, digite no terminal: 51 | 52 | git remote -v 53 | Caso você já tenha algum repositório no github conectado a ele, a resposta vai ser parecida com isso (um exemplo com um repositório meu): 54 | ![printsceen do Github demonstrando onde clicar para alternar entre branches](../images/git-remote-v.png) 55 | No entanto, caso não retorne nada, você pode criar um repositório no seu github e associar a ele através do comando: 56 | 57 | git remote add origin https://github.com/CarolPinheiro/git-e-github.git 58 | E já vai poder subir suas branches. 59 | Para isso, basta inicialmente digitar o comando: 60 | 61 | git add arquivos-alterados 62 | Adiciona os arquivos selecionados para a área de Stage, onde de uma forma simples, você prepara os arquivos para o commit (ou seja, registrar as atualizações e alterações do projeto). Para commitar basta digitar: 63 | 64 | git commit -m "Mensagem do commit" 65 | O **-m** significa 'message', ou seja ali você digita a mensagem que vai registrar aquela alteração, por exemplo "Função de soma criada". 66 | Assim que o commit tiver sido feito, basta ir no terminal e digitar: 67 | 68 | git push 69 | E sua branch já está disponível remotamente no github. 70 | ## 5. O que é um merge? 71 | Estamos entendendo como trabalhar com branchs, mas se quisermos trazer o trabalho que fizermos em uma branch para outra? 72 | 73 | Possuo duas branchs em um repositório GIT, uma chamada "ciclo-de-vida-basico" e a outra "master", estou trabalhando na primeira e após a finalização quero trazer o meu trabalho para "master", pois ela é a principal branch e onde deve ser depositado todo o código que funciona. 74 | 75 | Como fazer isso? Através do **merge**, que é quando pegamos um código de uma branch e adicionamos à outra branch, unificando assim as alterações. É importante para manter sua branch atualizada ou para levar seu código para a branch principal. 76 | 77 | Para unificar duas branchs, ou seja, fazer com que o conteúdo da primeira seja adicionado à segunda, utilizamos o comando `git merge nome-da-branch-a-ser-mergeada` na branch de destino. 78 | 79 | Abaixo um exemplo de **merge**: 80 | 81 | 1º Fazer checkout na branch de destino. Minha branch de destino é master, então farei: `git checkout master`. 82 | 83 | git checkout nome-da-branch-destino 84 | 85 | 2º Executar o merge para unificar sua branch na de destino. Como o nome da minha branch é ciclo-de-vida-basico, farei: `git merge ciclo-de-vida-basico`. 86 | 87 | git merge nome-da-branch-a-ser-mergeada 88 | 89 | Esse comando fará que o GIT automaticamente crie um commit com o branch atual e todo o conteúdo da branch origem. 90 | 91 | ### Exemplo de um merge local: 92 | 93 | Após fazer commit das alterações na minha branch de trabalho, estou apta para fazer merge: 94 | 95 | ![printsceen de um merge local](../images/hands-on-merge.png) 96 | 97 | 98 | -------------------------------------------------------------------------------- /dicas-boas-praticas/dicas-de-boas-praticas.md: -------------------------------------------------------------------------------- 1 | # Dicas de boas práticas 2 | 3 | ### Quando devo fazer um commit? 4 | 5 | O ideal é que você faça um commit a cada nova atualização funcional do seu código, para que você possa retornar a uma versão de trabalho, se necessário. Além disso, cada commit deve ter uma tarefa lógica que pode ser resumida em uma frase. 6 | 7 | ### Quando devo fazer um push? 8 | 9 | Sempre, logo depois de fazer um commit. 10 | 11 | ### Eu devo escrever mensagens de commit? 12 | 13 | Você precisa pelo menos de um título descritivo. Esta é uma parte importante da documentação do código \(especialmente em um ambiente de desenvolvimento em time\). 14 | 15 | -------------------------------------------------------------------------------- /dicas-boas-praticas/explicacao-sobre-cherry-pick.md: -------------------------------------------------------------------------------- 1 | # Explicando o Cherry Pick 2 | 3 | O **Cherry pick** é um comando do git que permite escolher commits específicos de uma branch e anexar a outra branch. 4 | 5 | Este é um recurso interessante quando temos equipes que precisam trabalhar de forma concomitante em um mesmo código. Imagine o cenário em que você está trabalhando em uma **branch A** enquanto uma colega está trabalhando em uma **branch B**. 6 | Em um determinado momento vocês esbarram em um erro que afeta ambas as branchs e é feita a correção na **branch A** mas o trabalho ainda está em andamento e não é possivel realizar o `merge` para propagar as correções. O **cherry pick** será o recurso que permitirá pegar o commit da correção e copia-lo para a **branch B**. 7 | 8 | **Importante!!** O uso do **cherry pick** deve ser moderado para evitar duplicação de commits. Sempre que possível utilize o **rebase** ou o **merge** para manter as branchs atualizadas, analisando as particularidades de cada situação para escolher o comando que melhor se encaixa. 9 | 10 | ### Como realizar um cherry pick em uma branch 11 | 12 | O primeiro passo é descobrir o ID do commit que deseja realizar o **cherry picking**. 13 | 14 | ```bash 15 | $ git checkout branch_feature # indo para branch da feature 16 | $ git log # mostra o log dos commits realizados na branch selecionada 17 | 18 | commit f6b178b6a2105718c4980f8c3e71a9d66462f7c8 19 | Author: Letícia Vargas 20 | Date: Wed Oct 20 20:00:07 2021 -0300 21 | ``` 22 | 23 | Depois de copiar o ID do commit, volte para a branch que deseja colar o commit e faça o picking. 24 | 25 | ```bash 26 | $ git checkout outra_branch # volta para a branch destino 27 | $ git cherry-pick f6b178b6a2105718c4980f8c3e71a9d66462f7c8 # cherry picking usando o ID do commit desejado 28 | ``` 29 | 30 | ### Copiando um intervalo de commits 31 | 32 | Caso você precise copiar uma série de commits, o git **cherry pick** permite informar um intervalo de IDs para copiar o grupo de uma vez só. Para isso você deve informar o ID do commit inicial e o ID do commit final. 33 | 34 | Se desejar copiar todos os commits incluindo o primeiro: 35 | 36 | ```bash 37 | $ git cherry-pick id_inicial^..id_final # você deve adicionar o acento circunflexo para incluir o commit inicial 38 | ``` 39 | 40 | Mas se o primeiro commit deve ser igorado: 41 | 42 | ```bash 43 | $ git cherry-pick id_inicial..id_final # você não precisa adicionar o acento 44 | ``` 45 | 46 | ### Principais parâmetros do cherry pick 47 | - `-e` : Permite editar a mensagem do commit. 48 | - `-x` : Adiciona uma mensagem ao commit indicando que é um cherry pick `cherry picked from commit` 49 | - `-allow-empty` : Permite commits em branco (por padrão o cherry pick não permite commits em branco). 50 | - `-allow-empty-message` : Permite commit sem título (por padrão commits sem títulos são barrados). 51 | 52 | 53 | ### E pode ter conflitos? 54 | 55 | Sim, podemos esbarrar em conflitos ao realizar o **cheryy picking**. Temos dois caminhos possíveis: 56 | 57 | - **Desfaser o cherry pick**: Neste caso você utiliza o comando `$git cherry-pick --abort` para desfazer o cherry pick e voltar a brach ao estado inicial. 58 | - **Resolver os conflitos**: Após a analise e resolução dos conflitos você deve usar o comando `$git cherry-pick --continue` para o git continuar o processo de **cherry picking** 59 | 60 | -------------------------------------------------------------------------------- /dicas-boas-praticas/explicacao-sobre-rebase.md: -------------------------------------------------------------------------------- 1 | # Explicando o Rebase 2 | 3 | O **Rebase** é um comando do git que permite reorganizar, mover ou combinar uma sequência de commits realizados em um repositório. 4 | 5 | Uma boa prática durante o desenvolvimento é a realização de commits a cada atualização funcional, contudo, em alguns casos, ao finalizar uma feature podemos ter um histórico com muitas informações repetidas e até confusas. 6 | 7 | Assim, ao utilizar o **rebase** podemos modificar o histórico do repositório, editando as mensagens, combinando vários commits e até excluindo commits que não são mais necessários no repositório. 8 | 9 | O principal motivo para a utilização do **rebase** está relacionado à manutenção de um histórico linear do projeto, com commits significativos que fornecem informações relevantes sobre as features implementadas. 10 | 11 | **Importante!!** O **rebase** mexe com toda a estrutura das branchs envolvidas, reescrevendo histórico de commits e unificando informações. Assim, todo processo de rebasing deve ser feito com muito cuidado para evitar perdas ao longo do processo, principalmente se o repositório estiver sendo utilizado por várias pessoas de forma concomitante. 12 | 13 | ### Como realizar um rebase em uma branch 14 | 15 | ```bash 16 | $ git checkout branch_feature # indo para a branch da feature 17 | $ git rebase outra_branch # fazendo o rebase entre a branch_feature e a outra_branch 18 | ``` 19 | 20 | Com este comando você irá realizar um **rebase** de todos os commits da `outra_branch` em sua branch atual `branch_feature`. 21 | 22 | ### Principais comandos do Rebase 23 | 24 | - `pick` : Mantem o commit como está, não será alterada a mensagem ou o conteúdo do commit. 25 | - `reword` : Semelhante ao `pick`, mas permite alterar a mensagem do commit. 26 | - `edit` : Permite editar um commit, sendo possível adicionar, alterar e dividir commits. 27 | - `squash` : Permite combinar commits em um único commit. O squash realiza a combinação sempre com o commit que está acima dele, sendo possível editar a mensagem de descrição. 28 | - `fixup` : Realiza a combinação de commits de forma semelhante ao `squash`, contudo descarta a mensagem do commit que sofre o merge. A mensagem do commit anterior passa a ser utilizada para descrever ambos commits. 29 | - `exec` : Permite executar comandos shell a cada commit marcado (por exemplo, uma suíte de testes) 30 | 31 | ### E se surgirem conflitos? 32 | 33 | Ao realizar um **rebase** estamos modificando o histórico de commits da branch, logo podemos esbarrar em commits que modificaram um mesmo arquivo. Quando essa situação acontece temos um conflito que o Git precisará de auxílio para resolver. 34 | 35 | Caso existam conflitos o Git irá mostrar qual o commit que precisa de atenção. Você terá as seguintes opções: 36 | 37 | - **Desfazer o rebase** : Neste caso você deve utilizar o comando `$git rebase --abort` para desfazer completamente o rebase, retornando a branch para o estado anterior ao comando `$git rebase`; 38 | - **Ignorar o commit conflituoso** : Você deve utilizar o comando `$git rebase --skip` para ignorar todas as modificações que estão no commit, ou seja, tudo o que foi realizado neste commit será descartado. 39 | - **Corrigir o conflito** : Neste caso você deve analisar os conflitos, realizar as correções necessárias e ao final usar o comando `$git rebase --continue` para o git continuar o processo de rebase. 40 | -------------------------------------------------------------------------------- /dicas-boas-praticas/explicacao-sobre-squash.md: -------------------------------------------------------------------------------- 1 | # Explicando o Squash Commit 2 | 3 | O **squash** é um recurso utilizado para combinar commits. É um comando que tem por objetivo organizar o histórico de commits que pode estar poluído com uma série de pequenos commits realizados ao longo do desenvolvimento. 4 | 5 | Com o **squash** mudamos o histórico dos commits agrupando, de uma forma mais significativa, as modificações realizadas. 6 | 7 | ### Como realizar um squash commit 8 | 9 | O **squash** geralmente é realizado em conjunto com o **rebase** (leia mais sobre o rebase [aqui](dicas-boas-praticas/explicação-sobre-rebase.md)). 10 | 11 | ```bash 12 | $ git log # listar os commits da branch atual 13 | $ git rebase -interactive HEAD~2 # iniciar o rebase com a opção de interatividade 14 | ``` 15 | 16 | O argumento `HEAD` referencia o commit mais atual e o `~2` informa ao git que queremos interagir com o segundo commit a partir do mais atual. 17 | 18 | Ao executar este comando temos acesso a um aquivo temporário para realização das alterações desejadas. Teremos um arquivo semelhante a este: 19 | 20 | ```bash 21 | pick 3c71782 Update de contagem 22 | pick 868bdc9 Adicionado novo parametro 23 | pick e23462b Opção de excluir parametro 24 | pick 5c07067 Adicionado modal de erro 25 | 26 | # Rebase 6eaddcd..5c07067 onto 6eaddcd 27 | # 28 | # Commands: 29 | # p, pick = use commit 30 | # r, reword = use commit, but edit the commit message 31 | # e, edit = use commit, but stop for amending 32 | # s, squash = use commit, but meld into previous commit 33 | # f, fixup = like "squash", but discard this commit's log message 34 | # x, exec = run command (the rest of the line) using shell 35 | # 36 | # These lines can be re-ordered; they are executed from top to bottom. 37 | # 38 | # If you remove a line here THAT COMMIT WILL BE LOST. 39 | # 40 | # However, if you remove everything, the rebase will be aborted. 41 | # 42 | # Note that empty commits are commented out 43 | ``` 44 | 45 | Será apresentada a lista de opções do **rebase** e para o **squash** temos duas opções: 46 | 47 | - `squash` : Adiciona no histórico a informação de que foi realizado um squash 48 | - `fixup` : Não adiciona a informação do squash no histórico 49 | 50 | O arquivo é aberto no terminal utilizando o `vim`, para interagir com o terminal, digite `i`. 51 | 52 | Para realizar o squash basta editar o arquivo adicionando a opção desejada nos commits: 53 | 54 | 55 | ```bash 56 | pick 3c71782 Update de contagem 57 | squash pick 868bdc9 Adicionado novo parametro 58 | squash pick e23462b Opção de excluir parametro 59 | pick 5c07067 Adicionado modal de erro 60 | 61 | ``` 62 | 63 | No exemplo, as linhas dos commits `868bdc9` e `e23462b` foram marcadas como `squash` e serão combinadas ao commit que está logo acima `3c71782`. 64 | 65 | Esse é um ponto importante, o squash sempre irá agrupar os commits com aquele logo acima, ou seja, você sempre irá fazer o **squash** de um commit mais antigo para um mais novo. 66 | 67 | Feitas as alterações, basta salvar o arquivo. No terminal você terá a opção de mudar as mensagens dos commits e assim que você salvar o squash estará pronto. 68 | 69 | ### Squash + merge 70 | 71 | Outra opção é utilizar o **squash** no momento que for realizado o `merge` de uma branch. 72 | 73 | ```bash 74 | $ git merge --squash branch_origem # indicar a branch da qual queremos buscar os commits 75 | ``` 76 | 77 | Com este comando o git irá pegar todos os commits da branch informada, realizar um `squash` agrupando tudo em um commit único e então realizar o `merge` da branch. 78 | -------------------------------------------------------------------------------- /git-e-github/conceitos-e-vocabulario-do-git.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: >- 3 | Neste vocabulário reunimos as expressões mais comuns, utilizadas para 4 | referenciar comandos de versionamento de projetos com Git (que valem para 5 | GitHub também!) 6 | --- 7 | 8 | # Vocabulário do Git 9 | 10 | ## Versionamento 11 | 12 | O versionamento de software é um processo de controle de versões, estabelecido por meio de "numerações" de históricos diferentes. Isso permite que os programadores e programadoras saibam quando e quais alterações foram realizadas, acompanhando as mudanças aplicadas no software. 13 | 14 | ## Repositório 15 | 16 | O repositório é a pasta do projeto. Todo repositório tem uma pasta oculta .git. Isso é o que mostra para o git e para você que existe um repositório naquela pasta. 17 | 18 | ## Change \(ou Diff\) 19 | 20 | O Git mantém o controle de versão rastreando as mudanças ou diferenças entre as versões dos arquivos. Você pode alterar um arquivo fazendo uma das duas coisas: 21 | 22 | 1. Criação, renomeação ou exclusão de arquivos. 23 | 2. Inserção ou exclusão de uma linha em um arquivo \(uma linha modificada é uma inserção e uma exclusão\) 24 | 25 | O Git representa inserções ou alterações adicionadas com um `+` e exclusões ou alterações removidas com um `-` 26 | 27 | ## Commit 28 | 29 | Um commit é um grupo de alterações no código. Toda vez que você quiser "salvar" as alterações feitas por você no repositório, você commita essas mudanças. Um commit contém as alterações que foram feitas nele e uma mensagem descritiva, além de informações meta \(data, autor, etc\). 30 | 31 | ## Branch 32 | 33 | Branches são separações de código. O branch padrão do projeto é o master. Branches normalmente são utilizados para separar alterações grandes ou novas funcionalidades do projeto. 34 | 35 | ## Merge 36 | 37 | Um merge é a união de duas branches, normalmente, merges são feitos na branch master. No exemplo do blog, quando a alteração do blog for terminada, alguém vai unir essas alterações na branch master para que elas possam finalmente fazer parte do projeto de fato. 38 | 39 | ## Clone 40 | 41 | Um clone de um repositório funciona como uma branch de um repositório online em um repositório local. Ou seja, quando se deseja trabalhar em um repositório hospedado no github, clona-se esse repositório para o seu computador, trabalha-se nele, e então é pedida a permissão para atualizar as alterações online. 42 | 43 | ## Pull 44 | 45 | É uma atualização do repositório local. É feito um merge do repositório online com o local para que os conflitos sejam resolvidos e seja possível enviar o código \(sem conflitos\) para o repositório online por meio de um push. 46 | 47 | ## Push 48 | 49 | Envia o código para o repositório online. 50 | 51 | ## Fork 52 | 53 | O fork é como um clone, porém dentro do github. Isso quer dizer que o repositório não vai ser baixado para seu computador, mas será criado um igual na sua conta. 54 | 55 | ## Pull Request 56 | 57 | Um pull request é um pedido que se faz ao dono do repositório para que este atualize o código dele com o seu código. Ou seja, você pede para que o dono do projeto ao qual você quer contribuir adicione suas modificações ao projeto oficial. 58 | -------------------------------------------------------------------------------- /git-e-github/setup-de-instalacao.md: -------------------------------------------------------------------------------- 1 | # Setup de Instalação 2 | 3 | ## Instalando o Git 4 | 5 | Instale o Git, no seu computador, através do Terminal para Mac ou Ubuntu e instalador para Windows. 6 | 7 | ### Mac 8 | 9 | Para instalar no Mac, você precisará ter o [Homebrew](https://brew.sh/index_pt-br) instalado, abrir o Terminal e digitar o comando: 10 | 11 | ```css 12 | $ brew install git 13 | ``` 14 | 15 | Após digitar este comando, aperte enter e aguarde a execução da instalação. 16 | 17 | ### Ubuntu / Linux 18 | 19 | Abra o seu terminal e digite o seguinte comando 20 | 21 | ```css 22 | $ apt install git 23 | ``` 24 | 25 | Dica: se você estiver com algum problema, tente seguir nosso [passo a passo detalhado](setup-instalacao-linux.md). 26 | 27 | ### Windows 28 | 29 | Para instalar no Windows, faça download do instalador em: [http://git-scm.com/downloads](http://git-scm.com/downloads) 30 | 31 | Dica: se você estiver com algum problema, tente seguir nosso [passo a passo detalhado](setup-instalacao-windows.md). 32 | 33 | Dica: Para verificar se o git já está instalado, abra o Terminal e digite `$ git` 34 | 35 | ## Configurando sua conta em seu computador 36 | 37 | Configure suas informações de usuário, para que todos os repositórios em que você irá trabalhar localmente estejam atrelados à sua conta. Para isso, abra o Terminal e digite os seguintes comandos: 38 | 39 | * Nome de usuário: 40 | 41 | ```css 42 | $ git config --global user.name "[nome]" 43 | ``` 44 | 45 | * E-mail da sua conta: 46 | 47 | ```css 48 | $ git config --global user.email "[endereco-de-email]" 49 | ``` 50 | 51 | *Lembre-se de substituir a informação entre `[colchetes]`pelos seus dados.* 52 | -------------------------------------------------------------------------------- /git-e-github/setup-instalacao-linux.md: -------------------------------------------------------------------------------- 1 | # Instalando, configurando e inicializando o Git no Linux 2 | 3 | 4 | Para instalar o Git no Linux, digite no terminal: 5 | 6 | ``` 7 | $ sudo apt install git 8 | ``` 9 | 10 | - **$** indica que você deve usar o **usuário comum** para fazer essa operação. 11 | 12 | - **sudo** é o comando que dá permissões de super usuário temporariamente; assim é possível fazer a instalação de programas. 13 | 14 | - **apt** do inglês, *Advanced Package Tool*, em português, Ferramenta de Empacotamento Avançada; é a ferramenta que nos ajuda na instalação, atualização e desinstalação de programas, entre outras funções. 15 | 16 | - **install** é o comando de instalar, indicando ao apt o que fazer. 17 | 18 | Verifique se a instalação foi feita corretamente digitando: 19 | 20 | ``` 21 | $ git --version 22 | ``` 23 | 24 | Você receberá o retorno da versão instalada. 25 | 26 | Antes de começar a usá-lo é preciso fazer as configurações iniciais. Assim, 27 | 28 | ``` 29 | $ git config --global user.name 30 | ``` 31 | 32 | - Digite seu nome sem os sinais de < e >. 33 | 34 | Em seguida: 35 | 36 | ``` 37 | $ git config --global user.email 38 | ``` 39 | 40 | - Digite seu email sem os sinais de < e >. 41 | 42 | Configurando o editor padrão: 43 | 44 | ``` 45 | $ git config --global core.editor nano 46 | ``` 47 | 48 | No meu caso, estou usando o **nano**, mas você pode utilizar outro de sua preferência. 49 | 50 | Para verificar as suas configurações: 51 | 52 | ``` 53 | $ git config --list 54 | ``` 55 | 56 | Caso queira que as configurações sejam feitas apenas no diretório (não global) indicado, basta retirar dos comandos a flag **--global**. Assim: 57 | 58 | ``` 59 | $ git config user.name 60 | $ git config user.email 61 | $ git config core.editor nano 62 | ``` 63 | 64 | Para inicializar o git no diretório desejado (caso ainda não o tenha feito), vá até o local onde você deseja fazer o controle de versionamento. 65 | 66 | ``` 67 | $ cd /home/seu_usuário/seu_repositório 68 | ``` 69 | 70 | - **cd** do inglês, change directory; serve para mudar de diretório/pasta. 71 | 72 | e digite 73 | 74 | ``` 75 | $ git init 76 | ``` 77 | 78 | A partir de agora, os arquivos serão rastreados pelo **Git**. 79 | -------------------------------------------------------------------------------- /git-e-github/setup-instalacao-windows.md: -------------------------------------------------------------------------------- 1 | # Instalando, configurando e inicializando o Git no Windows 2 | 3 | 4 | Para instalar o **Git** no Windows, [acesse o site oficial](https://git-scm.com/download/win). 5 | 6 | Após baixar o **instalador** execute-o para **começar a instalação**. 7 | 8 | ![instalador do git](../images/p0001-0.png) 9 | 10 | Na primeira tela nos são apresentados os **termos da licença de utilização** do **Git**. 11 | 12 | Basta clicar em **Next**. 13 | 14 | ![termos de licença](../images/p0001-1.png) 15 | 16 | A tela seguinte é sobre o **local de instalação**. Você pode alterá-la, caso queira. Após definir o local da instalação, clique em **Next**. 17 | 18 | ![local instalação](../images/p0001-2.png) 19 | 20 | Na próxima tela, o instalador oferece a possibilidade de selecionar os **componentes** que queremos que sejam instalados. Escolha os **componentes** de sua preferência e clique em **Next**. 21 | 22 | Abaixo um exemplo de como prefiro os meus: 23 | 24 | ![componentes](../images/p0001-3.png) 25 | 26 | Em seguida o instalador nos indica que criará uma pasta com **atalhos** no **menu iniciar**. Aqui você pode fazer de acordo com a sua preferência. No meu caso eu deixei o instalador criar os atalhos. 27 | 28 | Clique em **Next** para continuar a instalação. 29 | 30 | ![atalhos](../images/p0001-4.png) 31 | 32 | Na sequência, é pedido para selecionarmos o **editor de texto** que deve ser utilizado para editar os conflitos que ocorrerão. Aqui, eu aconselho a instalar seu editor preferido, antes da instalação do **Git** para que o instalador possa encontrá-lo. De todo modo, também é possível fazer a troca posteriormente. 33 | 34 | Após a escolha, clique em **Next** para continuar. 35 | 36 | ![escolhendo editor](../images/p0001-5.png) 37 | 38 | Em seguida, o instalador nos pergunta se queremos usar os comandos do **Git**: 39 | 40 | - somente no prompt de comandos do próprio git (chamado de Git Bash), neste caso ele não vai alterar a variável de ambiente PATH. 41 | 42 | - no **prompt do Windows** neste caso a variável de ambiente PATH será alterada para incluir o caminho onde está o executável do **Git**. 43 | 44 | - no prompt do Windows e com os comandos utilitários do Linux. Aqui a variável de ambiente PATH será alterada para incluir o caminho do executável do **Git** e dos executáveis de cada comando utilitário do **Linux**. 45 | 46 | Particularmente, prefiro essa última opção, porque o instalador traz para o **Windows** comandos que eu uso muito no terminal do **Linux**, como touch, cat, ls, etc. 47 | 48 | Escolha a opção que acha mais adequada para você e clique em **Next**. 49 | 50 | ![bash prompt](../images/p0001-6.png) 51 | 52 | Na sequência, devemos escolher a biblioteca de **validação de chaves de segurança SSL**. Eu costumo utilizar a **OpenSSL**, que é compatível com outras plataformas. 53 | 54 | Em seguida, clique em **Next**. 55 | 56 | ![SSL](../images/p0001-7.png) 57 | 58 | Aqui, o instalador nos pergunta como o **Git** deve tratar o final dos arquivos de texto. **Linux** e **Windows** tratam disso de formas diferentes. De maneira resumida, o **Linux** usa um caractere ASCII para a quebra de linha, enquanto o **Windows** usa dois. 59 | 60 | Eu prefiro a primeira opção, para evitar problemas de compatibilidade. 61 | 62 | ![final arquivo texto](../images/p0001-8.png) 63 | 64 | Na próxima tela, o instalador oferece a opção de escolher o emulador de terminal que queremos usar para o **Git**. Particularmente, acho melhor escolher o **MinTTY**, porque ele oferece alguns recursos melhores para terminal. 65 | 66 | **Atenção aqui**: se seu **Windows** for **32 bits** é melhor escolher o **cmd**. 67 | 68 | ![MinTTY](../images/p0001-9.png) 69 | 70 | Na sequência devemos escolher o comportamento padrão de comando **git pull**. Eu preferi deixar marcada a primeira opção. 71 | 72 | Em seguida, clique em **Next**. 73 | 74 | ![git pull](../images/p0001-10.png) 75 | 76 | Estamos quase finalizando. Nessa tela temos algumas opções de: 77 | 78 | - habilitar **cache de arquivos na memória**. Isso melhora o desempenho do **Git** em alguns casos. 79 | 80 | - habilitar o gerenciador de credenciais do **Git**. Isso permite autenticação em duas etapas no **Github**. 81 | 82 | - habilitar links simbólicos. 83 | 84 | ![extras](../images/p0001-11.png) 85 | 86 | Por último, o instalador nos oferece alguns componentes que estão em fase de experimentação. Aqui fica totalmente a seu critério. Eu prefiro não instalá-los. 87 | 88 | ![componentes experimentais](../images/p0001-12.png) 89 | 90 | Então, clique em **Install** para começar a instalação. 91 | 92 | ![instalação](../images/p0001-13.png) 93 | 94 | Depois da instalação, já podemos rodar o **Git Bash** e ver o arquivo de texto com as notas da versão lançada. 95 | 96 | Para finalizar clique em **Finish**. 97 | 98 | ![final instalação](../images/p0001-14.png) 99 | 100 | Agora você já pode versionar seus códigos no Windows! =D 101 | -------------------------------------------------------------------------------- /git-e-github/setup.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: >- 3 | Faremos nosso treinamento focado em trabalhar com o GitHub, como plataforma de 4 | versionamento. Para isso, siga os passos a seguir e crie sua conta gratuita. 5 | --- 6 | 7 | # Criando uma conta e seu primeiro repositório no GitHub 8 | 9 | ## Criando uma conta no GitHub 10 | 11 | O GitHub permite você criar uma conta gratuita, para isso, basta acessar [https://github.com/](https://github.com/) e seguir as instruções na tela para criar uma conta de usuário. 12 | 13 | ![Print da Tela Inicial do Portal do GitHub](../.gitbook/assets/image.png) 14 | 15 | Dica: escolha um nome de usuário sem caracteres especiais como ç e acentos. 16 | 17 | ## Criando um repositório no GitHub 18 | 19 | Repositório é um diretório onde os arquivos do seu projeto ficam armazenados. Ele pode ficar em um depósito do GitHub ou em seu computador. Você pode armazenar códigos, imagens, áudios, ou qualquer outra coisa relacionada ao projeto no diretório. 20 | 21 | ### Iniciando 22 | 23 | 1. No canto superior direito da página, clique no menu + e selecione a opção "New repository" (Novo repositório) 24 | 25 | ![Print do menu de criação de repositório no GitHub](../.gitbook/assets/repo-create.png) 26 | 27 | 2. Informe um nome sem espaços e caracteres especiais, de preferência um nome curto e fácil de memorizar. Por exemplo: "hello-world" (ola-mundo). 28 | 29 | ![Print da criação de um novo repositório no GitHub](../.gitbook/assets/create-repository-name.png) 30 | 31 | 3. Se desejar, adicione uma descrição do repositório. Por exemplo, "My first repository on GitHub" (Meu primeiro repositório no GitHub). 32 | 33 | ![Print informando a descrição do novo repositório no GitHub](../.gitbook/assets/create-repository-desc.png) 34 | 35 | 4. Informe a visibilidade do seu repositório: 36 | - Public: Qualquer pessoa na internet pode ver este repositório. 37 | - Internal: Repositório da organização e que será visivel somente a seus colaboradores. Obs: Essa opção só vai aparecer para você, se sua conta do GitHub for empresarial. 38 | - Private: Você decide quem pode visualizar e contribuir com este repositório. 39 | 40 | ![Print indicando a visibilidade do seu repositório no GitHub](../.gitbook/assets/create-repository-public-private.png) 41 | 42 | 5. Inicie o seu repositório com um README (LEIAME), este arquivo irá servir para descrever melhor o seu projeto e fornecer instruções de como utilizar. 43 | 44 | ![Print indicando a visibilidade do seu repositório no GitHub](../.gitbook/assets/initialize-with-readme.png) 45 | 46 | 6. Conclua a criação do repositório, clicando no botão "Create repository" (Criar repositório). 47 | 48 | ![Print do botão de criação de um repositório no GitHub](../.gitbook/assets/create-repository-button.png) 49 | 50 | ### 51 | 52 | -------------------------------------------------------------------------------- /hands-on/exercicio-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 'Exercício para você praticar :)' 3 | --- 4 | 5 | # Exercício 1 6 | 7 | ## Proposta 8 | 9 | Praticar a adição, commit e push para o GitHub. 10 | 11 | ## Passos para realização: 12 | 13 | ### 1. Conteúdo do projeto 14 | 15 | 1. Crie uma pasta com o nome do projeto \(a sua escolha\) e um arquivo chamado `index.html` 16 | 2. Adicione o seguinte conteúdo ao arquivo: 17 | 18 | ```markup 19 | 20 | 21 | 22 | Título da página 23 | 24 | 25 | 26 |

Aqui vai um título

27 | 28 | 29 | ``` 30 | 31 | ### 2. Subindo seu projeto para o GitHub 32 | 33 | 1. [Crie um repositório](../git-e-github/setup.md) em seu GitHub 34 | 2. Abra o seu terminal de comando e adicione a [origem remota](../ciclo-de-vida-basico/criando-um-repositorio.md) e conecte seu projeto local com o GitHub 35 | 3. Verifique as [alterações do seu projeto](../ciclo-de-vida-basico/comandos-mais-utilizados.md#git-status) e [adicione](../ciclo-de-vida-basico/comandos-mais-utilizados.md#git-add) ao fluxo de versionamento 36 | 4. Faça um [commit](../ciclo-de-vida-basico/comandos-mais-utilizados.md#git-commit) com uma mensagem útil e na sequência, um [push](../ciclo-de-vida-basico/comandos-mais-utilizados.md#git-push) para o repositório remoto \(GitHub\) 37 | 38 | ### 3. Lidando com alterações 39 | 40 | Abra a pasta do seu projeto, crie uma pasta chamada `imagens`, procure no Google por uma imagem de gato e salve dentro dessa nova pasta. Feito isso, abra seu arquivo `index.html` e adicione as seguintes modificações e salve o arquivo: 41 | 42 | ```markup 43 | 44 | 45 | 46 | Fanpage de Gatinhos 47 | 48 | 49 | 50 |

Perfil #catsoninstagram

51 | 52 | 53 | 54 | ``` 55 | 56 | Agora, repita os passos 2 e 3 do [item 2](exercicio-1.md#2-subindo-seu-projeto-para-o-github). 57 | -------------------------------------------------------------------------------- /hands-on/exercicio-2.md: -------------------------------------------------------------------------------- 1 | # Exercício 2 2 | 3 | ## Proposta 4 | 5 | Em vários casos, você encontrará arquivos que não pertencem \(ou não deveriam\) ao repositório. Exemplos típicos incluem: 6 | 7 | * Credenciais \(exemplo: senhas, usuários, keys\) 8 | * Cache de arquivos \(exemplo: .pyc\) 9 | * Ferramentas e bibliotecas complementares para execução do projeto \(exemplo: node\_modules\) 10 | 11 | O Git permite que os usuários adicionem um arquivo [`.gitignore`](../ciclo-de-vida-basico/o-que-e-o-.gitignore.md) ao seu projeto, na raiz da pasta, para ignorar esses arquivos específicos. 12 | 13 | ## Passos para realização: 14 | 15 | ### Criando um arquivo não rastreável 16 | 17 | 1. Acesse a pasta do projeto que você criou no exercício 1 e crie um arquivo chamado `minhas_senhas_secretas.txt` 18 | 2. Abra o terminal e veja se o arquivo está aparecendo como não rastreado e que pode ser adicionado \([dica](../ciclo-de-vida-basico/comandos-mais-utilizados.md#git-status)\) 19 | 20 | ### Gerando o .gitignore 21 | 22 | 1. Crie o arquivo `.gitignore` e salve-o na raiz do projeto \(ele deverá aparecer no mesmo nível dos arquivos `index.html` e da pasta `imagens`\) 23 | 2. Abra o arquivo `.gitignore`, digite `minhas_senhas_secretas.txt` e salve-o 24 | 3. No terminal, digite novamente o comando para verificar o status dos arquivos e veja que o `minhas_senhas_secretas.txt` não aparece mais! 25 | 26 | ### Publicando seu .gitignore 27 | 28 | No seu terminal, rode os comandos: 29 | 30 | 1. `git add` para adicionar o arquivo 31 | 2. `git commit` para commitar o novo arquivo, sem esquecer de adicionar uma mensagem útil e informativa sobre o que será publicado 32 | 3. `git push` para enviar para o repositório no GitHub 33 | -------------------------------------------------------------------------------- /hands-on/exercicio-3.md: -------------------------------------------------------------------------------- 1 | # Exercício 3 2 | 3 | ## Proposta 4 | 5 | Praticar alguns comandos básicos no que diz respeito ao manejo do seu repositório. 6 | 7 | ## Passos para realização 8 | 9 | ### 1. Clonando seu repositório 10 | 11 | 1. No seu perfil do GitHub na aba `Repositories`, crie um novo repositório clicando no botão `New` 12 | 2. Se desejar selecione a opção `Add a README file` para criar um arquivo de apresentação 13 | 3. Na página do seu repositório copie o link HTTPS ou SSH (se já houver configurado) utilizando o botão code 14 | 4. Abra o seu terminal na pasta em que deseja clonar o repositório ou utilize o comando `cd` no terminal pra chegar até lá 15 | 5. Utilize o comando `git clone link-HTTPS/SSH` para clonar o seu repositório 16 | 17 | ### 2. Criando sua nova branch & commit de mudanças 18 | 19 | 1. No terminal escreva o comando `git checkout -b nome-da-sua-branch` para criar a branch e mudar para ela diretamente 20 | 2. Abra o seu editor favorito e faça suas modificações, não se esqueça de salvar! :blue_heart: 21 | 3. Voltando para o terminal e dentro da pasta do projeto, use o comando `git add .` para preparar todos os arquivos modificados para o commit 22 | 4. Agora use o comando `git commit -m "aqui sua mensagem de commit"` para fazer o commit das suas mudanças na branch 23 | 5. Para enviar seu commit para seu repositório remoto utilize o comando `git push origin nome-da-sua-branch` 24 | 25 | ### 3. Fazendo Pull Request (PR) & dando merge 26 | 27 | 1. No site do GitHub e na sua página do repositório na aba `Pull requests` clique no botão `New pull request` 28 | 2. Agora ajuste nas opções para qual branch você quer enviar as suas modificações (lado esquerdo) e a sua branch que estará enviando essas modificações (lado direito) 29 | 3. Observe se não há qualquer conflito, caso não haja confirme a PR! 30 | 4. Agora você só precisa fazer o merge, para isso na mesma aba do passo 1, clique na PR que deseja dar merge 31 | 5. Como não há nenhum conflito entre as branches (passo 3) é só clicar no botão `Merge pull request` 32 | 6. Parabéns, você conseguiu! :tada: 33 | -------------------------------------------------------------------------------- /hands-on/exercicio-4.md: -------------------------------------------------------------------------------- 1 | # Exercício 4 2 | 3 | ## Proposta 4 | 5 | Adicionar um repositório remoto ao seu projeto local. 6 | 7 | ## Passos para realização: 8 | 9 | ### Adicionando um repositório remoto ao seu projeto local. 10 | 11 | 1. [Crie um repositório](https://github.com/WoMakersCode/git-e-github/blob/master/git-e-github/setup.md) no seu GitHub. 12 | 2. Acesse o diretório do seu projeto. 13 | ``` 14 | $ cd /Users/WoMakersCode/projeto 15 | ``` 16 | 3. Inicie o Git dentro dessa pasta 17 | ``` 18 | $ git init 19 | ``` 20 | 4. Víncule o repositório local com o repositório o remoto. 21 | ``` 22 | $ git remote add origin https://github.com/WoMakersCode/git-e-github.git 23 | ``` 24 | 25 | Pronto! Está vinculado.
26 | Ops, sua conta não esta configurada? Lembre-se de autenticar o seu usuário. 27 | 28 | 5. Autentique o seu usuário. 29 | ```javascript 30 | // Seu nome e sobrenome 31 | $ git config user.name "Nome Sobrenome" 32 | 33 | // Email cadastrado no github 34 | $ git config user.email "nome.sobrenome@email.com.br" 35 | ``` 36 | 37 | ### Criando uma nova branch 38 | 39 | 1. Acesse o diretório do seu projeto. 40 | ``` 41 | $ cd /Users/WoMakersCode/projeto 42 | ``` 43 | 2. Crie sua nova branch. 44 | ``` 45 | $ git checkout -b nome-da-sua-branch 46 | ``` 47 | 2. Acesse o seu editor no diretório do projeto. 48 | - Caso seja o VS Code, utilize o comando `code .` 49 | 50 | 51 | Você também pode verificar em qual branch está no momento ou alterar entre as branchs já criadas. 52 | 3. Verificando sua branch e alterações. 53 | ``` 54 | $ git status 55 | ``` 56 | 4. Alterar a branch atual para uma já existente. 57 | ``` 58 | $ git checkout branch-existente 59 | ``` 60 | 61 | ### Adicionando arquivos, comitando e enviando para o seu repositório remoto 62 | 63 | 1. Adicione as alterações feitas. 64 | ```javascript 65 | // Adicionar todas as alterações 66 | $ git add . 67 | 68 | // Adicionar ou alterar arquivo especifico, utilize a pasta e a extensão dele. 69 | $ git add hands-on/exercicio-4.md 70 | ``` 71 | 2. Commite as alterações adicionadas. 72 | ``` 73 | $ git commit -m "Adicionando o exercicio 4" 74 | ``` 75 | 3. Envie para o repositório remoto 76 | ```javascript 77 | // Caso esteja confiante do seu código, pode subir direto na branch principal. 78 | $ git push origin master 79 | 80 | // Caso esteja fazendo alterações com outras pessoas, é preferivel utilizar apenas na sua branch. 81 | $ git push origin minha-branch 82 | ``` 83 | 84 | ### Fazendo uma pull request 85 | 86 | Acesse o seu repositório no GitHub 87 | ![](../.gitbook/assets/differents-commits.png) 88 | 1. Peça um pull request para suas alterações. 89 | 90 | Pedindo um pull request. 91 | ![](../.gitbook/assets/asking-pull-request.png) 92 | 1. Certifique-se do direcionamento do seu pull request, para onde vai e de onde vem o código. 93 | 2. Verifique as mudanças que estão vínculadas. 94 | 3. Crie o pull request. 95 | 96 | Criando o pull request. 97 | ![](../.gitbook/assets/create-pull-request.png) 98 | 1. Coloque um título simples mas objetivo 99 | 2. Crie uma descrição explicita do que foi alterado ou criado. 100 | 3. Vefique as mudanças novamente. 101 | 4. CRIE O PULL REQUEST. 102 | 103 | Parabéns, o seu código já está na lista para ser mergeado com o repositório principal! :heart: 104 | -------------------------------------------------------------------------------- /images/alternate-between-branches.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/alternate-between-branches.png -------------------------------------------------------------------------------- /images/create-branches-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/create-branches-1.png -------------------------------------------------------------------------------- /images/create-branches-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/create-branches-2.png -------------------------------------------------------------------------------- /images/git-remote-v.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/git-remote-v.png -------------------------------------------------------------------------------- /images/hands-on-fork-1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/hands-on-fork-1.PNG -------------------------------------------------------------------------------- /images/hands-on-fork-2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/hands-on-fork-2.PNG -------------------------------------------------------------------------------- /images/hands-on-fork-3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/hands-on-fork-3.PNG -------------------------------------------------------------------------------- /images/hands-on-fork.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/hands-on-fork.PNG -------------------------------------------------------------------------------- /images/hands-on-merge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/hands-on-merge.png -------------------------------------------------------------------------------- /images/p0001-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-0.png -------------------------------------------------------------------------------- /images/p0001-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-1.png -------------------------------------------------------------------------------- /images/p0001-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-10.png -------------------------------------------------------------------------------- /images/p0001-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-11.png -------------------------------------------------------------------------------- /images/p0001-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-12.png -------------------------------------------------------------------------------- /images/p0001-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-13.png -------------------------------------------------------------------------------- /images/p0001-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-14.png -------------------------------------------------------------------------------- /images/p0001-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-2.png -------------------------------------------------------------------------------- /images/p0001-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-3.png -------------------------------------------------------------------------------- /images/p0001-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-4.png -------------------------------------------------------------------------------- /images/p0001-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-5.png -------------------------------------------------------------------------------- /images/p0001-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-6.png -------------------------------------------------------------------------------- /images/p0001-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-7.png -------------------------------------------------------------------------------- /images/p0001-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-8.png -------------------------------------------------------------------------------- /images/p0001-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WoMakersCode/git-e-github/86d36cd381c9cf57b59cfdd94fe3c0040b7e8859/images/p0001-9.png -------------------------------------------------------------------------------- /o-que-onde-e-por-que.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: O que são as ferramentas de versionamento e por que utilizar em seus projetos. 3 | --- 4 | 5 | # O que é, o que é? 6 | 7 | ## Git 8 | 9 | O Git é um sistema de controle de versão distribuído, gratuito e de código aberto, projetado para lidar com tudo, desde projetos pequenos a muito grandes, com velocidade e eficiência. 10 | 11 | ## GitHub 12 | 13 | 14 | **GitHub** é uma plataforma de hospedagem de código-fonte com controle de versão usando o Git. Ele permite que programadoras e programadores, utilitários ou qualquer usuário cadastrado na plataforma contribuam em projetos privados e/ou Open Source de qualquer lugar do mundo. 15 | 16 | 17 | ## Por que utilizar em seus projetos? 18 | 19 | * Manter um histórico completo de alterações 20 | * Permite que vários programadores trabalhem na mesma base de código 21 | * É eficiente e leve \(altera o arquivo de registros, não o conteúdo do arquivo\) 22 | * Repositórios públicos no GitHub podem servir como um currículo de codificação. 23 | 24 | --------------------------------------------------------------------------------