├── README.md └── doc ├── Imagens ├── 3_next.png ├── 4_next.png ├── 5_next.png ├── Commit.png ├── Criadores do GitHub.webp ├── DEV + RELEASE + MASTER (1).png ├── Feat + DEvelop (1).png ├── Fork.png ├── Git-e-GitHub.png ├── GuidoVanRossum.jpg ├── Linus-Torvalds.webp ├── Master + Hotfix + Develop (1).png ├── Pull Request.png ├── Pull.png ├── Push.png ├── arvore git flow (1).png ├── basico_git.png ├── como_documentar_1.png ├── criando_repo_1.png ├── criando_repo_10.png ├── criando_repo_11.png ├── criando_repo_12.png ├── criando_repo_13.png ├── criando_repo_14.png ├── criando_repo_15.png ├── criando_repo_16.png ├── criando_repo_2.png ├── criando_repo_3.png ├── criando_repo_4.png ├── criando_repo_5.png ├── criando_repo_6.png ├── criando_repo_7.png ├── criando_repo_8.png ├── criando_repo_9.png ├── develop + master (1).png ├── hotfix gitflow.png ├── install.png ├── next_novamente.png ├── outra_vez_next.png ├── pr_creating_branch.png.png ├── pr_files_changed.png ├── pr_kanban_example.png ├── pr_list.png ├── pr_new.png ├── pr_new2.png ├── pr_new_list.png ├── pr_sample1.png ├── pr_sample2.png ├── pr_sample3.png ├── release gitflow1.png ├── tela_inicial.png ├── trabalhando_com_branchs_1.png ├── trabalhando_com_branchs_2.png ├── trabalhando_com_versionamento_1.png ├── trabalhando_com_versionamento_2.png ├── trabalhando_com_versionamento_3.png └── trabalhando_com_versionamento_4.png ├── aprendendo_a_documentar_projetos.md ├── aprendendo_comandos_gitflow.md ├── baixando_o_git.md ├── basico_git.md ├── comandos_basicos_linux.md ├── comandos_do_git.md ├── criando_seu_primeiro_repo.md ├── dicionario_git.md ├── o_que_git_e_github.md ├── pull_request.md ├── trabalhando_com_branchs.md └── trabalhando_com_versionamento.md /README.md: -------------------------------------------------------------------------------- 1 | # Apostila de Git e GitHub 2 | 3 | ## Súmario 4 | 5 | 6 | 7 | - [O que é Git e GitHub?](./doc/o_que_git_e_github.md) 8 | - [Criando o seu primeiro Repósitorio](./doc/criando_seu_primeiro_repo.md) 9 | - [Dicionario Git](./doc/dicionario_git.md) 10 | - [Resumo sobre PR](./doc/pull_request.md) 11 | - [Comandos básicos do Linux](./doc/comandos_basicos_linux.md) 12 | - [Comandos do Git](./doc/comandos_do_git.md) 13 | - [Aprendendo a documentar projetos](./doc/aprendendo_a_documentar_projetos.md) 14 | - [Issues](./doc/issues.md) 15 | - [Squash](./doc/squash.md) 16 | 17 | > [Slides do curso](https://www.canva.com/design/DAFwaE2itBo/Un1MLNPkGpc_IC-TIySjAw/edit?utm_content=DAFwaE2itBo&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton) 18 | 19 | Feito por Paulo Ricardo Mesquita Rosa Santos 20 | 21 | Colaboração 22 | - Marcos Paulo de Meireles Alves da Silva 23 | - Victor José Glicério 24 | - Paulo Victor 25 | 26 | --- 27 | 28 | ## Referencias 29 | 30 | - [o que é Git](https://www.atlassian.com/br/git/tutorials/what-is-git#:~:text=O%20Git%20%C3%A9%20um%20projeto,kernel%20do%20sistema%20operacional%20Linux.) 31 | 32 | - [Aprenda Git em menos de 10 minutos](https://www.freecodecamp.org/portuguese/news/aprenda-o-basico-de-git-em-menos-de-10-minutos/) 33 | 34 | - [Git e GitGub: Formação Básica](https://www.linkedin.com/feed/update/urn:li:lyndaCourse:3204076/) 35 | -------------------------------------------------------------------------------- /doc/Imagens/3_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/3_next.png -------------------------------------------------------------------------------- /doc/Imagens/4_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/4_next.png -------------------------------------------------------------------------------- /doc/Imagens/5_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/5_next.png -------------------------------------------------------------------------------- /doc/Imagens/Commit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/Commit.png -------------------------------------------------------------------------------- /doc/Imagens/Criadores do GitHub.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/Criadores do GitHub.webp -------------------------------------------------------------------------------- /doc/Imagens/DEV + RELEASE + MASTER (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/DEV + RELEASE + MASTER (1).png -------------------------------------------------------------------------------- /doc/Imagens/Feat + DEvelop (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/Feat + DEvelop (1).png -------------------------------------------------------------------------------- /doc/Imagens/Fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/Fork.png -------------------------------------------------------------------------------- /doc/Imagens/Git-e-GitHub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/Git-e-GitHub.png -------------------------------------------------------------------------------- /doc/Imagens/GuidoVanRossum.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/GuidoVanRossum.jpg -------------------------------------------------------------------------------- /doc/Imagens/Linus-Torvalds.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/Linus-Torvalds.webp -------------------------------------------------------------------------------- /doc/Imagens/Master + Hotfix + Develop (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/Master + Hotfix + Develop (1).png -------------------------------------------------------------------------------- /doc/Imagens/Pull Request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/Pull Request.png -------------------------------------------------------------------------------- /doc/Imagens/Pull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/Pull.png -------------------------------------------------------------------------------- /doc/Imagens/Push.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/Push.png -------------------------------------------------------------------------------- /doc/Imagens/arvore git flow (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/arvore git flow (1).png -------------------------------------------------------------------------------- /doc/Imagens/basico_git.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/basico_git.png -------------------------------------------------------------------------------- /doc/Imagens/como_documentar_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/como_documentar_1.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_1.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_10.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_11.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_12.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_13.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_14.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_15.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_16.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_2.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_3.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_4.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_5.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_6.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_7.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_8.png -------------------------------------------------------------------------------- /doc/Imagens/criando_repo_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/criando_repo_9.png -------------------------------------------------------------------------------- /doc/Imagens/develop + master (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/develop + master (1).png -------------------------------------------------------------------------------- /doc/Imagens/hotfix gitflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/hotfix gitflow.png -------------------------------------------------------------------------------- /doc/Imagens/install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/install.png -------------------------------------------------------------------------------- /doc/Imagens/next_novamente.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/next_novamente.png -------------------------------------------------------------------------------- /doc/Imagens/outra_vez_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/outra_vez_next.png -------------------------------------------------------------------------------- /doc/Imagens/pr_creating_branch.png.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/pr_creating_branch.png.png -------------------------------------------------------------------------------- /doc/Imagens/pr_files_changed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/pr_files_changed.png -------------------------------------------------------------------------------- /doc/Imagens/pr_kanban_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/pr_kanban_example.png -------------------------------------------------------------------------------- /doc/Imagens/pr_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/pr_list.png -------------------------------------------------------------------------------- /doc/Imagens/pr_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/pr_new.png -------------------------------------------------------------------------------- /doc/Imagens/pr_new2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/pr_new2.png -------------------------------------------------------------------------------- /doc/Imagens/pr_new_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/pr_new_list.png -------------------------------------------------------------------------------- /doc/Imagens/pr_sample1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/pr_sample1.png -------------------------------------------------------------------------------- /doc/Imagens/pr_sample2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/pr_sample2.png -------------------------------------------------------------------------------- /doc/Imagens/pr_sample3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/pr_sample3.png -------------------------------------------------------------------------------- /doc/Imagens/release gitflow1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/release gitflow1.png -------------------------------------------------------------------------------- /doc/Imagens/tela_inicial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/tela_inicial.png -------------------------------------------------------------------------------- /doc/Imagens/trabalhando_com_branchs_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/trabalhando_com_branchs_1.png -------------------------------------------------------------------------------- /doc/Imagens/trabalhando_com_branchs_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/trabalhando_com_branchs_2.png -------------------------------------------------------------------------------- /doc/Imagens/trabalhando_com_versionamento_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/trabalhando_com_versionamento_1.png -------------------------------------------------------------------------------- /doc/Imagens/trabalhando_com_versionamento_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/trabalhando_com_versionamento_2.png -------------------------------------------------------------------------------- /doc/Imagens/trabalhando_com_versionamento_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/trabalhando_com_versionamento_3.png -------------------------------------------------------------------------------- /doc/Imagens/trabalhando_com_versionamento_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PaPaPaulitos/lab-git-e-github/adac1d96c144b465e67eb6f1a0015b59ce1c10e2/doc/Imagens/trabalhando_com_versionamento_4.png -------------------------------------------------------------------------------- /doc/aprendendo_a_documentar_projetos.md: -------------------------------------------------------------------------------- 1 | # Aprendendo a documentar projetos 2 | 3 | ## Para que serve a documentação? 4 | 5 | Proavavelmente você já teve um código que escreveu e não lembra mais como funciona ou a sua estrutura, caso ainda não tenha, saiba que algum dia vai ter. 6 | A documentação serve justamente para resolver esse problema, você conseguir lembrar de pontos importantes e criticos do seu projeto, sem ter que recorrer a comentários no código, a final documentar é para a documentação. 7 | 8 | > [Aprenda conceitos básicos de *Clean Code*](https://www.youtube.com/watch?v=9w3o9NHXqu0) 9 | 10 | ## Até onde vale a pena documentar? 11 | 12 | Então antes da documentação tinhamos o que chamavam de *arte de codar*, onde os desenvolvedores faziam códigos do seu jeito, sendo cada código a sua arte, mas esse processo era inviavel para manutenção de códigos, então logo foi adquirido o [**RUP -** ***Ration Unified Process***](https://www.treinaweb.com.br/blog/o-que-e-rup-rational-unified-process#:~:text=A%20metodologia%20RUP%20utiliza%20uma,caracter%C3%ADsticas%20ser%20incremental%20e%20iterativo.), que era um processo muito burocrático de documentação. 13 | 14 | Então no começo dos anos 2000 os desenvolvedores irritados com o tempo que era perdido documentando os seus projetos, criaram o [*Manifesto Ágil*](https://agilemanifesto.org/iso/ptbr/manifesto.html), onde foi decido que só seria documentado o que desenvolvedor considerasse importante, perdendo assim mesmo tempo com documentação e mais com código. 15 | 16 | ## Aonde documentar? 17 | 18 | Existem diversas ferramentas para documentar e a documentação deve ser feita a partir da escolha da equipe, segue algumas ferramentas de documentação. 19 | 20 | - [Notion](https://www.notion.so/pt-br/product?fredir=1) 21 | - [Obsidian](https://obsidian.md) 22 | - [Confluence](https://www.atlassian.com/software/confluence) 23 | - [BookStack](https://www.bookstackapp.com) 24 | - [GitBook](https://www.gitbook.com/?utm_source=content&utm_medium=trademark&utm_campaign=tLcRoAdw9BYwwpba4ZAD) 25 | 26 | ## Como documentar 27 | 28 | A padronização da documentação é escrita em [**MarkDown**](https://www.markdownguide.org/) que converte o seu texto para *HTML* válido de maneira simples. 29 | 30 | > Podemos escrever em HTML direto no MarkDown caso queiramos 31 | 32 | 33 | ### Titúlos 34 | 35 | Assim como no HTML nós temos hierarquias de Titulos em páginas usando o **MarkDown**, mas aqui só podemos usar do H1 até o H3. 36 | 37 | > Para isso usamos `#`, sendo uma `#` o H1, `##` e `###` o H3. 38 | 39 | ![Como documentar](./Imagens/como_documentar_1.png) 40 | 41 | ### Listando elementos em MarkDown 42 | 43 | Para listar elementos como abaixo: 44 | 45 | - Um elemento 46 | - Dois elementos 47 | - Três elementos 48 | 49 | Nós usamos `-` para antes de ligar cada elemento como `- Um elemento`. 50 | 51 | ### *Itálico* ou **Negrito** 52 | 53 | Para deixar elementos em *Itálico* ou **Negrito** nós colocamos as palavras entre `*`, sendo `*palavra*` o *Itálico* e `**palavra**` o **Negrito**. 54 | 55 | ### Observação 56 | 57 | Para a gente escrever observações como essa: 58 | 59 | > Isso é uma observação!!! 60 | 61 | Nós usamos `>` antes de uma frase como `> Isso é uma observação!!!` . 62 | 63 | ### Trecho de código 64 | 65 | Para escrever um trecho de código como esse 66 | 67 | ```python 68 | print("Hello Git!") 69 | ``` 70 | 71 | Nós precisamos usar código entre ` ``` ` e colocar a linguagem logo após as 3 crases assim como: 72 | 73 | ```python 74 | print("Hello Git!") 75 | ``` 76 | 77 | ### Notação simples 78 | 79 | Para escrever uma notação simples assim como: 80 | 81 | `Isso daqui oh!` 82 | 83 | É só colocar seguir esse padrão 84 | 85 | `Isso daqui oh!` 86 | 87 | ### Imagens e links 88 | 89 | Para colocar um link nós usamos: 90 | 91 | [TEXTO](LINK AQUI) 92 | 93 | Para ser dizer que o *Link* é uma imagem é só colocar **!** na frente 94 | 95 | ![TEXTO](LINK AQUI) 96 | -------------------------------------------------------------------------------- /doc/aprendendo_comandos_gitflow.md: -------------------------------------------------------------------------------- 1 | # Aprendendendo Comandos GitFlow 2 | 3 | ## Para Iniciar o GitFlow no seu Repositório 4 | Para iniciarmos o gitflow em nosso repositório utilizamos o seguinte comando 5 | - git flow init 6 | > Após isso, será iniciado as duas branches padrões do Git Flow 7 | 8 | - master - Ambiente de produção 9 | - develop - Ambiente de Desenvolvimento 10 | 11 | 12 | 13 | `Após isso já estamos prontos para utulizar os comandos git flow em nosso repositório`. 14 | 15 | ## Como Iniciar uma Feature ? 16 | 17 | Para iniciar uma Feature usaremos o seguintes comando 18 | 19 | ### `git flow feature start 'nome da feature'` 20 | 21 | Após executar esse comando, será criando uma branch `LOCAL` baseada na develop para que você realize as alterações necessária, como na imagem Abaixo: 22 | 23 | ![Feature](./Imagens//Feat%20+%20DEvelop%20(1).png) 24 | 25 | Depois de ralizarmos todas as alterações, devemos finalizar a `feature`, para finaliza-la usaremos os seguintes comandos: 26 | 27 | - `git add .` - como vimos anteriormente nos comandos básicos de git. 28 | 29 | - `git commit -m ""` - que também vimos anteriormente. 30 | 31 | ## Como Finalizar uma Feature ? 32 | 33 | Para finalizarmos, utilizaremos o seguinte comando 34 | 35 | ### `git flow feature finsh 'nome da feature'` 36 | 37 | Após executar este comando, a branch `LOCAL` criada será deletada e será feito o `MERGE` na branch `DEVELOP` e você será redirecionado automáticamente 38 | para a branch `DEVELOP` 39 | 40 | ## E como geramos uma versão do nosso código ? 41 | 42 | Para gerarmos uma versão de produção do nosso código, utilizaremos o seguinto comando 43 | 44 | ### `git flow release start 'nome da release'` 45 | 46 | Ao executar essa esse comando será iniciando uma branch, como demostrado abaixo: 47 | 48 | ![Release](./Imagens/DEV%20+%20RELEASE%20+%20MASTER%20(1).png) 49 | 50 | Até aqui tudo certo?!! 51 | 52 | Agora precisamos publicar essa versão, Para isso, utilizamos o seguinte comando: 53 | 54 | 55 | ### `git flow release public 'nome da release'` 56 | 57 | Após executado, ele publica a release no repositório remoto, tornando-a uma candidata e consequentemente realizar `DEPLOY` em `PRÉ-PROD` 58 | 59 | > AGORA PRECISAMOS FINALIZAR UMA VERSÃO 60 | 61 | Para isso utilizamos o seguinte comando 62 | 63 | ### `git flow releaser finish 'versao'` 64 | 65 | 66 | No momento que finalizar, o git abre em sequência três editores de texto: 67 | 68 | - O primeiro é relacionado ao merge da branch release v1.0.0 com a Master, que você pode detalhar o que contempla esta release. 69 | - O segundo é relacionado tag, para facilitar a mudança e identificação, incluir a tag da versão que estão indo para produção v1.0.0 70 | - Por ultimo o merge da release com com a Develop. 71 | 72 | ![Release-2](./Imagens/release%20gitflow1.png) 73 | 74 | ## Subimos código com erro em produção E AGORA COMO CORRIGIR ? 75 | 76 | Sabemos que é muito normal subirmos códigos com erro em produção, pensando nisso foi desenvolvido uma ferramente própria pra isso. 77 | 78 | > E para isso, usamos o seguinte comando. 79 | 80 | ### `git flow hotfix start 'nome do hotfix'` 81 | 82 | Após o comando ser executado, é aberto uma branch `HOTFIX`, como vemos na imagem abaixo: 83 | 84 | ![HotFix](./Imagens/Master%20+%20Hotfix%20+%20Develop%20(1).png) 85 | 86 | Nessa branch você corrigirá todos os erros encontrados em produção e após isso você irá fecha-lá, mas ates exxecutará os seguintes comandos: 87 | 88 | - `git add .` - como vimos anteriormente nos comandos básicos de git. 89 | 90 | - `git commit -m ""` - que também vimos anteriormente. 91 | 92 | > AGORA SIM PODEMOS FINALIZAR NOSSO `HOTFIX` 93 | 94 | E para finaliza-lô, executaremos o seguinte comando: 95 | 96 | ### `git flow hotfix finish -n 'nome do hotfix'` 97 | 98 | Após executar o comando, automáticamente a branch será fechada e `MERGEADA` nas suas branches em uso `MASTER` e `DEVELOP`. 99 | 100 | # ARVORE DO GIT FLOW 101 | 102 | ![ÁRVORE-GIT-FLOW](./Imagens/arvore%20git%20flow%20(1).png) 103 | -------------------------------------------------------------------------------- /doc/baixando_o_git.md: -------------------------------------------------------------------------------- 1 | # Baixando o Git 2 | 3 | - Baixe o [Git](https://git-scm.com/downloads) de acordo com o seu sitema operacional(Essa apostila vai mostrar a instalação no Windows). 4 | 5 | - Ao Executar o *Instalador do Git* clique em **Next** quando aparecer essa tela. 6 | 7 | ![Tela inicial](./Imagens/tela_inicial.png) 8 | 9 | - **Next** novamente 10 | 11 | ![Next Novamente](./Imagens/next_novamente.png) 12 | 13 | - **Next** novamente 14 | 15 | ![Outra vez next](./Imagens/outra_vez_next.png) 16 | 17 | - **Next** novamente 18 | 19 | ![Outra vez next](./Imagens/3_next.png) 20 | 21 | - **Next** novamente 22 | 23 | ![Outra vez next](./Imagens/4_next.png) 24 | 25 | - **Next** novamente 26 | 27 | ![Outra vez next](./Imagens/5_next.png) 28 | 29 | - **Install** 30 | 31 | ![Install](./Imagens/install.png) -------------------------------------------------------------------------------- /doc/basico_git.md: -------------------------------------------------------------------------------- 1 | # Comandos básicos 2 | 3 | Já vimos esses comandos em [Criando seu primeiro repositório](./criando_seu_primeiro_repo.md), mas eles também vão estar aqui. 4 | 5 | ![Básico de Git](./Imagens/basico_git.png) 6 | 7 | --- 8 | 9 | ## Para iniciar o *Repositório local* digite o seguinte comando: 10 | 11 | ```bash 12 | git init 13 | ``` 14 | 15 | --- 16 | 17 | ## Ligando um *Repositório local* a um remoto 18 | 19 | > Faça o login do GitHub caso necessário 20 | 21 | ```bash 22 | git remote add origin [LINK DO SEU REPOSITORIO] 23 | ``` 24 | 25 | --- 26 | 27 | ## Verificando o status do *Repositório Remoto* 28 | 29 | ```bash 30 | git remote -v 31 | ``` 32 | 33 | --- 34 | 35 | ## Atualizando um *Repositório local* 36 | 37 | ```bash 38 | git add [CAMINHO DO QUE QUER JOGAR NO REPOSITÓRIO LOCAL OU . PARA ADICIONAR TODOS ARQUIVOS QUE FORAM ALTERADOS ] 39 | ``` 40 | 41 | --- 42 | 43 | ## Realizando um *commit* local. 44 | 45 | > Um commit é a realização permanente de um conjunto de tentativas de alteração, marcando o fim de uma transação e fornecendo durabilidade às transações ACID. 46 | 47 | ```bash 48 | git commit -m "DIGITE AQUI A SUA MENSAGEM" 49 | ``` 50 | 51 | --- 52 | 53 | ## Enviando o *commit* também para o GitHub pela primeira vez 54 | 55 | Vamos criar uma Branch chamadada master no GitHub 56 | 57 | ```bash 58 | git push --set-upstream origin master 59 | ``` 60 | 61 | ### Observação apartir do momento que você da o comando acima você só precisa digitar 62 | 63 | ```bash 64 | git push 65 | ``` 66 | 67 | ### Enviando a atualização para uma Branch específica 68 | 69 | ```bash 70 | git push [NOME DA BRANCH] 71 | ``` 72 | 73 | --- 74 | 75 | ## Atualizando o seu *Repositório Local* e *Diretório de arquivos* trazendo as modificações do *Repositório Remoto* 76 | 77 | ```bash 78 | git pull 79 | ``` 80 | 81 | ### Atualizando o seu *Repositório Local* trazendo as modificações do *Repositório Remoto* 82 | 83 | ```bash 84 | git fetch 85 | ``` 86 | 87 | > Para fazer o restante da atualização é só dar um `git merge` para jogar do *Repositório Local* para o *Diretório de arquivos* 88 | 89 | 90 | ### Atualizando o seu *Repositório Local* trazendo as modificações do *Repositório Remoto* com base em uma Branch 91 | 92 | ```bash 93 | git pull [NOME DA BRANCH] 94 | ``` 95 | 96 | --- 97 | 98 | ## Baixando um *Repositório Remoto* da internet 99 | 100 | ```bash 101 | git clone [LINK DO REPOSITORIO] 102 | ``` 103 | 104 | 105 | --- -------------------------------------------------------------------------------- /doc/comandos_basicos_linux.md: -------------------------------------------------------------------------------- 1 | # Comandos básicos do Linux 2 | 3 | ## Entendendo diferença entre terminais. 4 | 5 | - **CMD**: É o terminal padrão do Windows, mais conhecido como prompt de comando, os seus comandos vem diretamente das variáveis de ambiente do seu sistema. 6 | 7 | - **PowerShell**: É um terminal unificado entre todos os sistemas operacionais e tem comandos de navegabilidade básicos como `ls`. 8 | 9 | - **Bash**: É um tipo de terminal usado no Linux (Já foi um padrão, mas hoje em dia existem distros que não utilizam) e do MacOS, esse terminal além de comandos básicos de navegabilidade e de gerenciamento de arquivos como `cat` e `touch`. 10 | 11 | ## Terminal do Git 12 | 13 | No caso o terminal do Git mesmo no Windows ele é o Bash, então podemos fazer uso de comandos de gerenciamento, como aqui o foco não são comandos do Linux aqui será abordado os mais básicos possiveis. 14 | 15 | > Aqui vamos chamar as pastas de **diretórios** 16 | 17 | ## Comandos 18 | 19 | ### Comandos de navegabilidade 20 | 21 | - `cd [Caminho da pasta]`: *Change Directory* é um comando utilizado para trocar de pastas no terminal. 22 | 23 | > Notação importante: 24 | > `.` é para referenciar o diretório atual 25 | > `..` é para referenciar o diretório anterior 26 | > `/` é para separar os caminhos entre os diretórios 27 | > Exemplo: 28 | > `./doc/Imagens` eu estaria acessando apartir do diretório atual o diretório *doc* e depois *Imagens*. 29 | 30 | - `ls`: *List directory contents* é um comando para mostrar todos diretórios de uma pasta. 31 | 32 | - `mkdir`: *Make Directory* é um comando para fazer um novo diretório. 33 | 34 | - `touch [Arquivo que quer criar]`: É um comando para criar um arquivo de uma extensão ou sem. 35 | 36 | - `cat`: É um dos comandos mais poderosos do Linux, [Clique aqui para ver todas possibilidades](https://www.hostgator.com.br/blog/cat-linux-aplicacoes-e-utilizacao/) 37 | -------------------------------------------------------------------------------- /doc/comandos_do_git.md: -------------------------------------------------------------------------------- 1 | # Comandos do Git 2 | 3 | ## Sumário 4 | 5 | - [Comandos básicos](./basico_git.md) 6 | - [Trabalhando com Branchs](./trabalhando_com_branchs.md) 7 | - [Trabalhando com Versionamento](./trabalhando_com_versionamento.md) 8 | 9 | --- 10 | 11 | 12 | -------------------------------------------------------------------------------- /doc/criando_seu_primeiro_repo.md: -------------------------------------------------------------------------------- 1 | # Criando o seu primeiro repositório 2 | 3 | ## Pré-requisitos 4 | 5 | - Baixar o [Git](./baixando_o_git.md) 6 | 7 | - Ter uma conta no [GitHub](https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F&source=header-home) 8 | 9 | ## Criando o Repositório no GitHub 10 | 11 | - Clique no botão de **+** no canto superior direto no GitHub. 12 | 13 | ![Criando Repo](./Imagens/criando_repo_1.png) 14 | 15 | - Clique em **New repository** 16 | 17 | ![Criando Repo](./Imagens/criando_repo_2.png) 18 | 19 | ## Explicando os campos 20 | 21 | ### *Repository template* 22 | 23 | Serve caso você queira reutilizar o template de outro repósitorio, como exemplo um repósitorio configurado com o Google Colab para ciência de dados, normalmente não utilizar esse campo, então deixamos o **Default** que é **No template**. 24 | 25 | ![Repository template](./Imagens/criando_repo_3.png) 26 | 27 | Mostrando as opções desse campo 28 | 29 | ![Owner_options](./Imagens/criando_repo_6.png) 30 | 31 | ### *Owner* 32 | 33 | Esse campo é para decidir se o Repositório vai ser seu ou de alguma organização que você faz parte. 34 | 35 | ![Owner](./Imagens/criando_repo_4.png) 36 | 37 | Mostrando as opções desse campo 38 | 39 | ![Owner_options](./Imagens/criando_repo_5.png) 40 | 41 | ### *Repository name e Description* 42 | 43 | São os campos que vão dar o nome e a descrição do repositório no seu GitHub ou da organização, sendo descrição *opcional*, pois nossa documentação vai ser feita usando *MarkDown* 44 | 45 | ![Repository name e Description](./Imagens/criando_repo_7.png) 46 | 47 | Mostrando aonde aparece esses campos em um Repósitorio. 48 | 49 | ![Repository name e Description](./Imagens/criando_repo_8.png) 50 | 51 | ### *Visibilidade* 52 | 53 | Sendo os campos mais importantes eles funcionam da seguinte forma: 54 | 55 | - *Public*: Ao marcar esse campo o seu repositório vai estar visivel para todos usuários do GitHub. 56 | 57 | - *Private*: Ao marcar esse campo o seu repositório vai estar visivel para você e todos a quem você conceder acesso. 58 | 59 | > É interessante começar todos repositórios como privado e depois mudar a sua visibilidade para público. 60 | 61 | ![Visibilidade](./Imagens/criando_repo_9.png) 62 | 63 | ### *add a README file* 64 | 65 | É interessante deixar essa opção marcada, pois é mais fácil de documentar escrevendo um **MarkDown**, temos uma sessão só sobre esse assunto nessa apostila. 66 | 67 | > Inclusive essa apostila que você está lendo foi escrita em **MarkDown** 68 | 69 | ![README](./Imagens/criando_repo_10.png) 70 | 71 | ### *Add .gitignore* 72 | 73 | O arquito *.gitignore* faz com que a nós possamos reduzir o tempo e espaço na hora de subir um repositório, só deixando arquivos essenciais para executar um código, ignorando arquivos binários como *.exe*, *node_modules* em JavaScript, *venv* e *pycache* em Python e assim por diante. 74 | 75 | > É interessante você já escolher um template de .gitignore se souber a linguagem que vai trabalhar 76 | 77 | ![README](./Imagens/criando_repo_11.png) 78 | 79 | ### *Choose a license* 80 | 81 | Essa opção é mais caso você queira dar uma licença já existente pro seu software, a mais utilizada é a do [*MIT* para programas *Open Source*](https://www.diegobrocanelli.com.br/open-source/a-licenca-mit/). 82 | 83 | ### Iniciando o Repositório 84 | 85 | Agora com os dados cadastrados conforme a necessidade podemos clicar no botão **Create repository** 86 | 87 | ![Criando Repositorio](./Imagens/criando_repo_12.png) 88 | 89 | --- 90 | 91 | ## Criando Repositório local e conectando ele ao GitHub 92 | 93 | - Crie uma pasta no seu computador com o nome do projeto 94 | 95 | - Entre na pasta, clique com o botão direito e clique em *Git Bash Here*. 96 | 97 | ![Git Bash here](./Imagens/criando_repo_13.png) 98 | 99 | - Ela vai abrir essa tela. 100 | 101 | ![Git Bash](./Imagens/criando_repo_14.png) 102 | 103 | - Para iniciar o *Repositório local* digite o seguinte comando: 104 | 105 | ```bash 106 | git init 107 | ``` 108 | 109 | - Agora para conectar ele ao GitHub use o seguinte comando: 110 | 111 | > Faça o login do GitHub caso necessário 112 | 113 | ```bash 114 | git remote add origin [LINK DO SEU REPOSITORIO] 115 | ``` 116 | 117 | - Adicione ao Repositorio para testa-lo 118 | 119 | ![Git Bash](./Imagens/criando_repo_15.png) 120 | 121 | - Digite o seguinte comando para jogar as mudanças no *Repositório local* 122 | 123 | ```bash 124 | git add . 125 | ``` 126 | 127 | - Digite uma mensagem para o *commit* 128 | 129 | > Um commit é a realização permanente de um conjunto de tentativas de alteração, marcando o fim de uma transação e fornecendo durabilidade às transações ACID. 130 | 131 | ```bash 132 | git commit -m "DIGITE AQUI A SUA MENSAGEM" 133 | ``` 134 | 135 | - Envie o *commit* também para o GitHub 136 | 137 | ```bash 138 | git push --set-upstream origin master 139 | ``` 140 | 141 | > Observação apartir do momento que você da o comando acima você só precisa digitar 142 | 143 | ```bash 144 | git push 145 | ``` 146 | 147 | - Verifique o GitHub 148 | 149 | ![Git Bash](./Imagens/criando_repo_16.png) 150 | -------------------------------------------------------------------------------- /doc/dicionario_git.md: -------------------------------------------------------------------------------- 1 | # Dicionário Git 2 | 3 | ### Commit 4 | 5 | O "commit" no Git é um comando usado para salvar as mudanças feitas em um repositório. Cada commit representa um ponto na linha do tempo do projeto e inclui um conjunto de alterações que podem ser acompanhadas e referenciadas posteriormente. 6 | 7 | ![Commit](./Imagens/Commit.png) 8 | 9 | ### Fork 10 | 11 | Um "fork" no Git é a ação de criar uma cópia independente de um repositório Git existente. Essa cópia, chamada de "fork", é geralmente feita por um colaborador externo que deseja contribuir para o projeto original, mas não tem permissões diretas para modificar o repositório principal. Portanto, o fork permite que essa pessoa crie sua própria cópia do repositório, na qual ela tem controle total, e pode fazer alterações sem afetar diretamente o projeto original. 12 | 13 | ![Fork](./Imagens/Fork.png) 14 | 15 | ### Branch 16 | 17 | Um "branch" em Git é uma ramificação independente da linha principal do desenvolvimento. Ele permite que você trabalhe em novas funcionalidades ou correções de bugs sem afetar o código principal. Os ramos podem ser criados, mesclados e excluídos para gerenciar o fluxo de desenvolvimento. 18 | 19 | ![Criando uma Branch](./Imagens/trabalhando_com_branchs_1.png) 20 | 21 | ### Merge 22 | 23 | "Merge" é o processo de combinar as alterações de um branch em outro. Isso é comumente usado para incorporar o trabalho feito em um branch de desenvolvimento de volta ao branch principal. O Git tenta automaticamente fundir as alterações, mas conflitos podem ocorrer, exigindo intervenção manual. 24 | 25 | ![Fazendo um Merge](./Imagens/trabalhando_com_branchs_2.png) 26 | 27 | ### Push 28 | 29 | "Push" é um comando usado para enviar as alterações locais de um repositório Git para um repositório remoto. Isso sincroniza o repositório remoto com as alterações locais, tornando-as acessíveis a outros colaboradores do projeto. 30 | 31 | ![Commit](./Imagens/Push.png) 32 | 33 | ### Pull 34 | 35 | "Pull" é um comando que combina dois passos: "fetch" e "merge". Ele é usado para atualizar seu repositório local com as alterações do repositório remoto. Primeiro, ele busca as alterações do repositório remoto (fetch), e em seguida, combina essas alterações com seu branch local (merge), mantendo seu código atualizado com o trabalho de outros colaboradores. 36 | 37 | Esses são termos essenciais para entender o funcionamento básico do Git, uma poderosa ferramenta de controle de versão amplamente utilizada no desenvolvimento de software. 38 | 39 | ![Commit](./Imagens/Pull.png) 40 | 41 | ## Pull Request 42 | 43 | Um "Pull Request" (ou PR) é uma solicitação feita por um colaborador para que suas alterações em um branch sejam incorporadas ao branch principal do repositório. É uma ferramenta essencial para o trabalho colaborativo no Git, pois permite que os colaboradores revisem, discutam e, eventualmente, aceitem ou rejeitem as alterações propostas antes de serem mescladas no branch principal. O Pull Request ajuda a manter um controle rigoroso sobre as contribuições e a qualidade do código. 44 | 45 | Este termo é crucial para entender como as contribuições são gerenciadas em projetos Git de código aberto e privados. 46 | 47 | > - [Clique aqui para ver mais detalhamente tudo sobre o funcionamento do Pull Request e suas regras](./pull_request.md) 48 | > - **Créditos ao Paulo Victor** 49 | 50 | ![Pull Request](./Imagens/Pull%20Request.png) 51 | 52 | ![Gudio Van Rossum](./Imagens/GuidoVanRossum.jpg) 53 | 54 | > Criador da linguagem de programação *Python*, considerado um ditador benevolente da linguagem, toma as decisões que decidem o rumo da sua criação, uma das ferramentas para isso é o *Pull Request*. 55 | > Guido deixou o seu cargo em Julho de 2018 -------------------------------------------------------------------------------- /doc/o_que_git_e_github.md: -------------------------------------------------------------------------------- 1 | # O que é Git e GitHub 2 | 3 | ## O que é uma ferramenta de versionamento? 4 | 5 | Ferramentas de versionamento são ferramentas utilizadas pelo desenvolvedor para guardar versões do seu código caso algo dê errado, por exemplo quem nunca fez uma *Lista Encadeada* em **C** e no meio do código mudou algo que fez a lista para de funcionar? 6 | A melhor maneira de resolver esse problema é com uma ferramenta de versionamento que permite você restaurar um *commit* algo parecido com um check-point de um jogo. 7 | 8 | 9 | ## O que é Git? 10 | 11 | Git é um controlador de versão de código mais utilizado no mundo atual, o que Git é responsável por fazer versionamento de código local, criado em 2005 pelo **Linus Torvalds**,criador do Kernel do Linux, caso você não conheça ele e sua história assista o [documentário Revolution OS](https://www.youtube.com/watch?v=Z3f-M43DiD4). 12 | 13 | 14 | 15 | 16 | > Linus Torvalds criador do *Kernel do Linux* e do *Git*. 17 | 18 | 19 | ## Qual é a diferença do Git? 20 | 21 | Durante muito tempo o versionamento de código era feito usando uma ferramenta chamada [Bitkeeper](https://www.bitkeeper.org/), mas a empresa que mantém o Bitkeeper decidiu fechar o seu sistema. 22 | 23 | Então **Linus Torvalds** decidiu recriar a ferramenta aplicando os seguintes conceitos. 24 | 25 | - Open Source 26 | - Desempenho 27 | - Segurança 28 | - Flexibilidade 29 | 30 | Graças a implementação desses conceitos o *Git* se tornou um padrão de mercado no versionamento de códigos 31 | 32 | --- 33 | 34 | # O que é GitHub? 35 | 36 | GitHub é um controlador de versão de código remoto *Open Source*, desenvolvido por Chris Wanstrath, J. Hyett, Tom Preston-Werner e Scott Chacon usando o Ruby on Rails, [caso queira conhecer mais sobre Ruby on Rails e sua importância para o mundo de desenvolvimento de software atual clique aqui](https://www.youtube.com/watch?v=oEorhw5r2Do), atualmente o GitHub ele não serve apenas para versionamento e compartilhamento de código, mas sendo uma rede social, hospedagem de sites, CI/CD e entre outras possibilidades. 37 | 38 | > Algo muito importante para os estudantes universitários é se cadastrar no [GitHub Student](https://education.github.com/pack) 39 | 40 | 41 | 42 | 43 | > Chris Wanstrath, J. Hyett, Tom Preston-Werner e Scott Chacon os criadores do GitHub. -------------------------------------------------------------------------------- /doc/pull_request.md: -------------------------------------------------------------------------------- 1 | # Introdução 2 | 3 | Por questões de boas práticas no uso do versionamento de código, sempre que precisamos 4 | alterar o código vigente, devemos criar uma **branch** a partir deste 5 | código vigente, geralmente com algo que identifique o tipo de tarefa que faremos, um 6 | código único, geralmente de um processo Ágil como o Kanban e um resumo. 7 | 8 | Segundo o site [www.conventionalcommits.org](http://www.conventionalcommits.org), usando 9 | a padronização do commit para criação de **branches**, devemos usar 10 | a palavra **feature** para a criação de um novo recurso ao nosso código. 11 | 12 | Resumidamente podemos usar: 13 | 14 | - **feat**: (new feature for the user, not a new feature for build 15 | script) 16 | 17 | - **fix** (bug fix for the user, not a fix to a build script) 18 | 19 | - **docs**: (changes to the documentation) 20 | 21 | - **styles**: (formatting, missing semi colons, etc; no production code 22 | change) 23 | 24 | - **refactor**: (refactoring production code, eg. renaming a variable) 25 | 26 | - **test**: (adding missing tests, refactoring tests; no production code 27 | change) 28 | 29 | - **chore**: (updating grunt tasks etc; no production code change) 30 | 31 | Sendo assim, com uma tarefa no Kanban Force conforme foto abaixo, um bom 32 | nome para uma nova **branch** seria: **feat/imp2078/integration_test** 33 | 34 | Feat: É a criação, ou seja, o projeto não tinha este recurso. 35 | 36 | Imp2078: Identificação única dessa tarefa dentro do Kanban Force da 37 | empresa. 38 | 39 | Integration_test: Resumo da tarefa. 40 | 41 | ![Exemplo de tarefa no Kanban Force](./Imagens/pr_kanban_example.png) 42 | 43 | Criando uma nova branch. 44 | ![Criando nova branch](./Imagens/pr_creating_branch.png.png) 45 | 46 | Uma vez que a branch foi criada, podemos iniciar o desenvolvimento 47 | normalmente, como se estivéssemos na branch original, neste caso a main. 48 | Nada diferente do uso normal, porém, quando chegar a hora de enviar as 49 | alterações, ou seja, o desenvolvimento feito, será necessário criar um 50 | PR (*PULL REQUEST*). 51 | 52 | 53 | # Pull Request 54 | 55 | O pull request, ou PR, é uma solicitação para enviar o que você 56 | desenvolveu para o código original. A princípio parece que apenas 57 | burocratizamos o processo de enviar o que desenvolvemos, o que poderia 58 | ter sido feito através de commits direto na branch main, mas nem de 59 | longe é realmente isso que acontece. 60 | Um PR traz algumas vantagens de enorme valor, como: 61 | 62 | - **Identificação do Criador:** Exibe o autor do Pull Request (PR), oferecendo transparência sobre sua origem. 63 | 64 | - **Branch de Destino:** Indica a branch na qual o PR será mesclado, mostrando claramente para qual ramificação as alterações estão direcionadas. 65 | 66 | - **Branch de Desenvolvimento:** Revela o nome da branch onde o novo código foi desenvolvido. Isso permite que outros programadores baixem e testem o código em suas próprias máquinas, sem comprometer a estabilidade do código original. 67 | 68 | - **Descrição Detalhada:** Inclui um campo para a descrição da tarefa realizada, permitindo recursos avançados como links, fotos e vídeos para demonstrar seu funcionamento ou qualquer outro aspecto relevante para a tarefa em questão. 69 | 70 | - **Registro Cronológico de Alterações:** Apresenta, de forma cronológica, os commits e modificações no PR, incluindo alterações na descrição, conteúdo e outros elementos. Isso evita a possibilidade de ações maliciosas, como a troca do responsável pelo PR ou manipulação indevida de trechos de código. 71 | 72 | - **Visão Clara das Alterações:** Detalha as modificações propostas pelo PR no código original, facilitando a compreensão para todos os programadores envolvidos. Isso proporciona uma compreensão fácil e rápida do que será alterado. 73 | 74 | - **Participações e Melhorias Colaborativas:** Permite que outros programadores façam questionamentos e sugiram melhorias. O responsável pelo PR pode implementar essas melhorias, e os demais programadores podem revisar novamente, gerando novos comentários. Esse processo iterativo continua até que o PR seja aprovado por todos os envolvidos e esteja pronto para ser mesclado no código principal. 75 | 76 | E muitas outras vantagens. Muitas mesmo! 77 | 78 | Abaixo temos a foto de PR: 79 | ![Foto de um PR](./Imagens/pr_sample1.png) 80 | 81 | Podemos ver que ele esta apontado para a branch main e foi criado com a 82 | **branch pv-baseURL**. 83 | Abaixo destas informações temos um campo para descrição com algumas informações sobre o PR, 84 | seu funcionamento e etc. 85 | A direita, em verde e vermelho podemos ver que este PR está apagando 3 86 | linhas de código e adicionando 2. 87 | 88 | Abaixo temos a continuação do PR: 89 | ![Foto de um PR](./Imagens/pr_sample2.png) 90 | 91 | Descendo um pouco mais, temos uma foto na descrição, provando que o PR 92 | está funcionando e 2 informações em ordem cronológica. 93 | 94 | Abaixo temos a parte final deste PR: 95 | ![Foto de um PR](./Imagens/pr_sample3.png) 96 | 97 | No final do PR, temos um campo para que outros programadores para 98 | comentar algo sobre o PR. 99 | 100 | A foto abaixo mostra o que será alterado no código vigente caso este PR seja aprovado: 101 | ![Foto de um PR](./Imagens/pr_files_changed.png) 102 | 103 | O que esta em verde é a parte de código que será adicionada e o que está em vermelho, o que será removido do código vigente. 104 | 105 | Agora, como um projeto mostra a lista de PR: 106 | ![Foto de um PR](./Imagens/pr_list.png) 107 | 108 | 109 | # Criando um Pull Request 110 | Criar um PR é muito simples, bastando criar uma branch nova antes do início do desenvolvimento, conforme dito no início deste documento, enviar para o GitHub normalmente (Git push) e depois acessar o GitHub do projeto com seu navegador de internet. Veja as fotos abaixo: 111 | 112 | Clique em "Compare e pull request" 113 | ![Foto de um PR](./Imagens/pr_new.png) 114 | 115 | Agora basta selecionar a branch de destino, neste caso a 'main' e a branch onde está o código deste PR, neste caso `pv-pull-request`. 116 | obs.: Por se tratar de um projeto simples, não foi utilizado nenhum tipo de convenção no nome desta branch. 117 | E no final, clicar em `create pull request`. 118 | ![Foto de um PR](./Imagens/pr_new2.png) 119 | 120 | Pronto! Agora o PR foi criado e já esta na lista, aguardando revisão dos outros programadores. 121 | ![Foto de um PR](./Imagens/pr_new_list.png) 122 | -------------------------------------------------------------------------------- /doc/trabalhando_com_branchs.md: -------------------------------------------------------------------------------- 1 | # Trabalhando com Branchs 2 | 3 | 4 | Criar uma *Branch* é criar uma ramificação de um código, ou seja a partir de um commit, você cria uma versão *paralela* desse código. 5 | 6 | ![Criando uma Branch](./Imagens/trabalhando_com_branchs_1.png) 7 | 8 | Isso serve justamente para que os programadores possam produzir em paralelo e depois juntar esses códigos fazendo o que chamamos de *merge*. 9 | 10 | ![Fazendo um Merge](./Imagens/trabalhando_com_branchs_2.png) 11 | 12 | ## Criando uma nova Branch 13 | 14 | ```bash 15 | git branch [NOME DA BRANCH] 16 | ``` 17 | 18 | --- 19 | 20 | ## Mudar nome da Branch atual 21 | 22 | ```bash 23 | git branch -m [NOME DA BRANCH] 24 | ``` 25 | 26 | --- 27 | 28 | ## Listar todas as Branchs 29 | 30 | ```bash 31 | git branch 32 | ``` 33 | 34 | --- 35 | 36 | ## Alterando o nome branch atual 37 | 38 | ```bash 39 | git branch -M [NOME QUE QUER DAR PARA A BRANCH] 40 | ``` 41 | 42 | --- 43 | 44 | ## Jogando o conteúdo da sua Branch atual para outra 45 | 46 | ```bash 47 | git merge [NOME DA BRANCH] 48 | ``` 49 | 50 | --- 51 | 52 | ## Cria uma branch e já te manda para ela 53 | 54 | ```bash 55 | git checkout -b [NOME DA BRANCH] 56 | ``` 57 | 58 | --- 59 | 60 | ## Te redireciona para uma Branch 61 | 62 | ```bash 63 | git checkout [NOME DA BRANCH] 64 | ``` 65 | 66 | --- 67 | 68 | ## Realiza um merge de um arquivo especifico na branch atual 69 | 70 | ```bash 71 | git checkout [NOME DA BRANCH QUE VOCÊ QUER O ARQUIVO] [CAMINHO DO ARQUIVO] 72 | ``` 73 | 74 | --- -------------------------------------------------------------------------------- /doc/trabalhando_com_versionamento.md: -------------------------------------------------------------------------------- 1 | # Trabalhando com versionamento 2 | 3 | 4 | ## Vendo a lista de modificações em um *Repositório Local* 5 | 6 | ```bash 7 | git status 8 | ``` 9 | 10 | ![Lista de modificações](./Imagens/trabalhando_com_versionamento_1.png) 11 | 12 | --- 13 | 14 | ## Removendo todas alterações de um *Repositório Local* 15 | 16 | ```bash 17 | git reset 18 | ``` 19 | 20 | ## Verificando o ID dos *commits* 21 | 22 | ```bash 23 | git log 24 | ``` 25 | 26 | ![Lista de Logs](./Imagens/trabalhando_com_versionamento_2.png) 27 | 28 | > O que está sublinhado em vermelho são os *ids* dos commits 29 | 30 | ## Voltando um commit temporariamente 31 | 32 | ```bash 33 | git checkout [id] 34 | ``` 35 | 36 | ![Voltando um commit temporariamente](./Imagens/trabalhando_com_versionamento_3.png) 37 | 38 | > Como podemos ver na imagem quando usamos esse comando, nós voltamos um commit, mas não removemos os commits depois dele. 39 | 40 | 41 | ## Deletando todos commits a partir de uma data 42 | 43 | ```bash 44 | git reset --hard [id] 45 | ``` 46 | ```bash 47 | git add . 48 | ``` 49 | ```bash 50 | git commit -m "MENSAGEM DIZENDO QUE VOLTOU O COMMIT" 51 | ``` 52 | 53 | Agora vamos forçar o repositório remoto voltar também. 54 | 55 | ```bash 56 | git push --force origin main 57 | ``` 58 | 59 | ![Voltando permanentemente um commit](./Imagens/trabalhando_com_versionamento_4.png) 60 | 61 | > Nesse caso vamos voltar o repositório para o commit que selecionamos, assim deletando os commits que foram feitos posteriormente a esse. 62 | --------------------------------------------------------------------------------