Thank you for wanting to contribute to GitFichas | GitStudyCards. Here you'll find most of the information you'll need for contributing.
🚀 Quick Setup: Before you begin, run the setup script to install all required dependencies:
bash scripts/setup.shThis script will automatically configure your development environment with all necessary tools including Node.js dependencies, Python packages, and Mermaid diagram generation capabilities.
If you have any questions create an issue.
GitFichas is a welcoming and inclusive space for everyone. All contributors are expected to follow our Code of Conduct. Please take a moment to read it and help us maintain a positive environment for all.
Read the full Code of Conduct.
There are two types of cards:
- Command: explain a command such as "git add -p" or "git commit --allow-empty";
- Concept: explain git and versioning related concepts such as "pull requests" and "conflicts";
Here's a list of all fields you could find in both types:
| Front-Matter Key | Concept Card | Command Card | Description |
|---|---|---|---|
layout |
mandatory |
mandatory |
always post |
pretitle |
optional |
optional |
Text before the main part of the card title |
title |
mandatory |
mandatory |
Main part of the card title |
subtitle |
optional |
optional |
Text after the main part of the card title |
command |
- | mandatory |
Spelled out content e.g.: git init |
descriptors |
mandatory |
mandatory |
Section with the descriptions for each part of the command |
descriptors.command |
- | optional |
Description of the command |
descriptors.part{} |
- | optional |
Decription for the extra bits of a command (e.g.: flags). Each extra part will called "part" followed by the index |
concept |
mandatory |
- | Always true |
parts |
mandatory |
- | Section with the descriptions for the concept |
parts.part{} |
mandatory |
- | Descriptions for the concept that can be broken down in blocks each called part followed by the index |
info |
optional |
optional |
Extra information for a card. |
author |
mandatory |
mandatory |
GitHub username of person who created the card e.g.: @jtemporal |
number |
mandatory |
mandatory |
Number of the card e.g.: "001". Quotes are necessary for the leading zero |
mermaid |
mandatory |
mandatory |
Always true |
use_static_image |
mandatory* |
mandatory* |
Always true when SVG image is generated. *Only required if an SVG file is created for the card |
permalink |
mandatory |
mandatory |
Follows /projects/{number} for pt cards, /en/{number} for en cards, and /es/{number} for es cards |
lang |
mandatory |
mandatory |
Either "pt", "en", or "es". These are the currently supported languages |
translations |
optional |
optional |
Array of translation links e.g.: - lang: en url: /en/{number} - lang: es url: /es/{number} |
pv |
mandatory |
mandatory |
information about the previous card for arrow linking |
pv.url |
mandatory |
mandatory |
Path to previous card e.g.: /projects/{number} |
pv.title |
mandatory |
mandatory |
Command to previous card e.g.: #001 git init |
nt |
mandatory |
mandatory |
information about the next card for arrow linking |
nt.url |
mandatory |
mandatory |
Path to next card e.g.: /projects/{number} |
nt.title |
mandatory |
mandatory |
Command to next card e.g.: #001 git init |
IMPORTANT: All post files must follow the Jekyll naming convention: YYYY-MM-DD-XXX.md
- Format:
YYYY-MM-DD-XXX.mdwhere XXX is the card number with leading zeros - Use the current date when creating a new card
- Example:
2024-10-26-054.mdfor card #054
- Must use the SAME date as the original post
- Portuguese (original):
2024-10-26-054.md→ English:2024-10-26-054.md→ Spanish:2024-10-26-054.md - Check the original post's filename to get the correct date
- Never use a different date for translations
- Portuguese cards:
_posts/YYYY-MM-DD-XXX.md - English cards:
en/_posts/YYYY-MM-DD-XXX.md - Spanish cards:
es/_posts/YYYY-MM-DD-XXX.md
Command cards have this structure:
---
layout: post
pretitle:
title: Renaming
subtitle: a file
command: git mv source target
descriptors:
- command: command to\nmove files
- part1: current file name
- part2: new file name
info: this command can be used to move files between folders
author: "@jtemporal"
number: "052"
mermaid: true
use_static_image: true
translations:
- lang: pt
url: /projects/052
permalink: "/en/052"
lang: "en"
pv:
url: "/en/051"
title: "#051 git commit --allow-empty"
nt:
url: "https://gitfichas.com/en"
title: "GitStudyCards | GitFichas"
---
{% include mermaid-graphs.html %}Command cards have this front-matter structure:
---
layout: post
pretitle: What is a
title: conflict
subtitle:
concept: true
parts:
- part1: it happens when two or more changes are made to the\n same chunk of a file and git doesn't know\nhow to apply the most recent change
- part2: conflicts are indicated by the markers >>> === <<<
number: "030"
author: "@jtemporal"
mermaid: true
use_static_image: true
permalink: "/en/030"
translations:
- lang: pt
url: /projects/030
lang: "en"
pv:
url: "/en/029"
title: "#029 git restore --staged nome"
nt:
url: "/en/031"
title: "#031 git commit --amend"
---
{% include mermaid-graphs.html %}The website runs on Jekyll but it is prepared to run on docker as well (although it has been a while since I used it for development).
The fastest way to get started is using the provided devcontainer configuration:
- Open in GitHub Codespace or VS Code with Dev Containers extension
- Automatic Setup: Dependencies are installed automatically via
.devcontainer/devcontainer.json - Jekyll + Mermaid Ready: Both Jekyll and Mermaid SVG generation are pre-configured
The devcontainer includes:
- Ruby and Jekyll dependencies
- Node.js and Mermaid CLI
- Python scripts for SVG generation
- All system dependencies for headless Chrome
Install Bundler follow the steps below.
bundle installbundle exec jekyll sdocker build -t gitfichas .docker run --rm --volume="$PWD:/srv/jekyll" -p 4001:4000 -it gitfichas jekyll serve --livereloadGitFichas uses Mermaid diagrams for visualizing Git concepts and commands. The project includes scripts to generate static SVG images from these diagrams.
📖 For detailed technical information about the Mermaid conversion system, see the Mermaid Converter README.
The project includes Python scripts in the scripts/ folder:
scripts/generate_images_only.py: Main script for generating SVG images from Mermaid diagramsscripts/generate_embedded_fonts.py: Utility script for embedding fonts into CSS (run when fonts need updating)scripts/setup.sh: Automated setup script for new codespaces (installs dependencies and configures the environment)
💡 New to the project? Run
scripts/setup.shto automatically set up all dependencies and test the environment.
When working on cards with Mermaid diagrams:
- Add/edit your Mermaid diagram in the post's front matter
- Generate SVG images for your changes:
# Generate images for all posts python3 scripts/generate_images_only.py # Generate images for specific post (faster for testing) python3 scripts/generate_images_only.py "053.md" # Force regeneration of existing images python3 scripts/generate_images_only.py --force
- Test locally using Jekyll serve to see both interactive and static versions
- Commit both the post changes and generated SVG files
The project uses embedded Google Fonts (Chilanka and Borel) for consistent rendering. If you need to update fonts:
- Generate new embedded fonts:
python3 scripts/generate_embedded_fonts.py
- Regenerate all SVG images to use the new fonts:
python3 scripts/generate_images_only.py --force
The project uses a separated CSS architecture:
assets/css/mermaid.css: Web-specific styles for interactive diagramsassets/css/embedded-svg.css: SVG-specific styles with embedded fontsassets/css/embedded-fonts.css: Base64-embedded font definitions (auto-generated)
Mermaid theme settings are stored in gitfichas-mermaid-theme.json for consistent SVG generation.
GitFichas is migrating from image-based cards to dynamic Mermaid diagrams. This guide helps you use GitHub Copilot for efficient migration.
Before (Image-based):
---
layout: post
title: '#002 git add file.txt'
image: "https://res.cloudinary.com/.../thumbnail.jpg"
---
##### Adding files to a commit
<img src="...">
| Command | Description |
| `add` | Command to add files |After (Mermaid):
---
layout: post
title: Adding
subtitle: files to a commit
command: git add file.txt
descriptors:
- command: command to add files<br>to staging
- part1: name of the file
author: "@jtemporal"
number: "002"
mermaid: true
use_static_image: true
---
{% include mermaid-graphs.html %}Setup Prompt:
Migrate this GitFichas card from image to Mermaid format:
[paste old card]
Requirements:
- Extract title → pretitle/title/subtitle
- Convert table → descriptors array
- Add: author, number, mermaid: true
- Keep navigation links intact
- Remove image URLs and HTML
- Follow proper file naming: YYYY-MM-DD-XXX.md (use same date as original for translations)
For Command Cards: Add command: git xxx and descriptors with command + part1, part2, etc.
For Concept Cards: Use concept: true and parts array instead of descriptors. Add use_static_image: true only after SVG is generated.
- Migrate with Copilot using prompts above
- Ensure proper file naming: Use
YYYY-MM-DD-XXX.mdformat with same date as original post for translations - Generate SVG:
python3 scripts/generate_images_only.py "filename.md" - Add
use_static_image: trueto front matter only after successful SVG generation - Test locally:
bundle exec jekyll serve - Commit both files:
git add post.md svg-file.svg
- Line breaks: Use
<br>in command descriptors,\nin concept parts - Long descriptions: Break at ~30 characters without splitting words
- Title extraction:
"#042 git rebase -i HEAD~3"→pretitle: "Interactive",title: "Rebase",subtitle: "for last 3 commits"
- Content matches original card
- SVG generates successfully
- Navigation links preserved
- No trailing whitespaces
All contributions are welcome.
I wrote this blog post that has a detailed step-by-step on how to make pull requests for this project.
There are a bunch of issues already open, you can either work on one of them or you can add to the project based on your experience and usage.
Ideally you can discuss the topic via a issue before you start working.
Shout out to Serenata de Amor for having a great contributing guide that inspired this one.
2. Clone your fork of the repository
git clone http://github.com/<YOUR-GITHUB-USERNAME>/gitfichas.git3. Create a feature branch
git switch -c <YOUR-GITHUB-USERNAME>-<description-or-issue-number>Please, note that we prefix branch names with GitHub usernames, this helps us in keeping track of changes and who is working on them.
4. Do what you do best
Now it's your time to shine and write meaningful code to raise the bar of the project!
5. Commit your changes
git commit -m '<Add the description of your changes>'Aim to have small changes per commit that way is easier to understand what you are making when reviewing your pull request.
6. Push to the branch to your fork
git push -u origin <YOUR-GITHUB-USERNAME>-<description-or-issue-number>
7. Create a new Pull Request
From your fork at GitHub usually there is a button to open pull requests.
Remember to link your issue in your pull request.
To keep things running smoothly and fair for everyone:
- Only core maintainers assign issues: If you'd like to work on something, just drop a comment saying you're picking it up and go ahead with your PR. No assignment needed!
- No assignments for potential contributors: This helps us welcome all contributions and keeps the contribution process open.
- 2-day window: If there's no PR within 2 days of a comment expressing interest, the issue is open for anyone to jump in.
- Inactive PR policy: Pull requests with no response from the contributor for 7 days may be closed to keep the project moving. Don't worry though - you can always reopen your PR or create a new one when you're ready to continue!
This way, we keep a friendly, low-barrier process and ensure issues don't get blocked. Thanks for being part of the community!
Obrigada por querer contribuir com o GitFichas. Aqui você encontrará a maioria das informações que precisará para contribuir.
🚀 Configuração Rápida: Antes de começar, execute o script de configuração para instalar todas as dependências necessárias:
bash scripts/setup.shEste script configurará automaticamente seu ambiente de desenvolvimento com todas as ferramentas necessárias, incluindo dependências Node.js, pacotes Python e capacidades de geração de diagramas Mermaid.
Se tiver alguma dúvida, crie uma issue.
O GitFichas é um espaço acolhedor e inclusivo para todas pessoas. Isso quer dizer que devemos seguir nosso Código de Conduta. Por favor, leia-o com atenção antes de contribuir.
Leia o Código de Conduta completo.
Existem dois tipos de fichas:
- Comando: explica um comando como "git add -p" ou "git commit --allow-empty";
- Conceito: explica conceitos relacionados ao git e versionamento, como "pull requests" e "conflitos";
Aqui está uma lista de todos os campos que você pode encontrar em ambos os tipos:
| Chave Front-Matter | Ficha de Conceito | Ficha de Comando | Descrição |
|---|---|---|---|
layout |
obrigatório |
obrigatório |
Sempre presente post |
pretitle |
opcional |
opcional |
Texto antes da parte principal do título da ficha |
title |
obrigatório |
obrigatório |
Parte principal do título da ficha |
subtitle |
opcional |
opcional |
Texto após a parte principal do título da ficha |
command |
- | obrigatório |
Comando escrito por extenso, por exemplo: git init |
descriptors |
obrigatório |
obrigatório |
Seção com as descrições para cada parte do comando |
descriptors.command |
- | opcional |
Descrição do comando |
descriptors.part{} |
- | opcional |
Descrição das partes extras de um comando (por exemplo: opções). Cada parte extra será chamada de "part" seguida pelo índice |
concept |
obrigatório |
- | Sempre presente true |
parts |
obrigatório |
- | Seção com as descrições para o conceito |
parts.part{} |
obrigatório |
- | Descrições para o conceito que podem ser divididas em blocos, cada um chamado de part seguido pelo índice |
info |
opcional |
opcional |
Informação extra para uma ficha. |
author |
obrigatório |
obrigatório |
Nome de usuário do GitHub da pessoa que criou a ficha, por exemplo: @jtemporal |
number |
obrigatório |
obrigatório |
Número da ficha, por exemplo: "001". As aspas são necessárias para o zero à esquerda |
mermaid |
obrigatório |
obrigatório |
Sempre presente true |
use_static_image |
obrigatório* |
obrigatório* |
Sempre true quando imagem SVG é gerada. *Obrigatório apenas se um arquivo SVG for criado para a ficha |
permalink |
obrigatório |
obrigatório |
Segue /projects/{number} para fichas em pt, /en/{number} para fichas em en, e /es/{number} para fichas em es |
lang |
obrigatório |
obrigatório |
"pt", "en", ou "es". Estes são os idiomas atualmente suportados |
translations |
opcional |
opcional |
Array de links de tradução, por exemplo: - lang: en url: /en/{number} - lang: es url: /es/{number} |
pv |
obrigatório |
obrigatório |
Informação sobre a ficha anterior para linkagem com setas |
pv.url |
obrigatório |
obrigatório |
Caminho para a ficha anterior, por exemplo: /projects/{number} |
pv.title |
obrigatório |
obrigatório |
Comando da ficha anterior, por exemplo: #001 git init |
nt |
obrigatório |
obrigatório |
Informação sobre a próxima ficha para linkagem com setas |
nt.url |
obrigatório |
obrigatório |
Caminho para a próxima ficha, por exemplo: /projects/{number} |
nt.title |
obrigatório |
obrigatório |
Comando da próxima ficha, por exemplo: #001 git init |
Fichas de comando têm esta estrutura:
---
layout: post
pretitle:
title: Renomeando
subtitle: um arquivo
command: git mv origem destino
descriptors:
- command: comando para \nmover arquivos
- part1: nome atual \ndo arquivo
- part2: novo nome \ndo arquivo
info: esse comando pode ser usado \npara mover arquivos entre pastas
number: "052"
author: "@jtemporal"
mermaid: true
use_static_image: true
permalink: "/projects/052"
lang: "pt"
translations:
- lang: en
url: /en/052
pv:
url: "/projects/051"
title: "#051 git commit --allow-empty"
nt:
url: "/projects/053"
title: "#053 git log --all --grep='palavra'"
---
{% include mermaid-graphs.html %}Fichas de comando têm esta estrutura de front-matter:
---
layout: post
pretitle: O que é um
title: conflito
subtitle:
concept: true
parts:
- part1: acontece quando duas ou mais alterações são realizadas\nno mesmo pedaço de um arquivo e o git\nnão sabe como aplicar a alteração mais recente
- part2: conflitos são indicados pelos marcadores \n >>> === e <<<
number: "030"
author: "@jtemporal"
mermaid: true
use_static_image: true
permalink: "/projects/030"
translations:
- lang: en
url: /en/030
lang: "pt"
pv:
url: "/projects/029"
title: "#029 git restore --staged nome"
nt:
url: "/projects/031"
title: "#031 git commit --amend"
---
{% include mermaid-graphs.html %}IMPORTANTE: Todos os arquivos de posts devem seguir a convenção de nomenclatura do Jekyll: YYYY-MM-DD-XXX.md
- Formato:
YYYY-MM-DD-XXX.mdonde XXX é o número da ficha com zeros à esquerda - Use a data atual ao criar uma nova ficha
- Exemplo:
2024-10-26-054.mdpara a ficha #054
- Deve usar a MESMA data do post original
- Português (original):
2024-10-26-054.md→ Inglês:2024-10-26-054.md→ Espanhol:2024-10-26-054.md - Verifique o nome do arquivo do post original para obter a data correta
- Nunca use uma data diferente para traduções
- Fichas em português:
_posts/YYYY-MM-DD-XXX.md - Fichas em inglês:
en/_posts/YYYY-MM-DD-XXX.md - Fichas em espanhol:
es/_posts/YYYY-MM-DD-XXX.md
O site é executado no Jekyll, mas também está preparado para rodar no Docker (embora já faz um tempo desde que eu usei o Dockerfile para desenvolvimento).
A maneira mais rápida de começar é usando a configuração de devcontainer fornecida:
- Abra no GitHub Codespace ou VS Code com extensão Dev Containers
- Configuração Automática: Dependências são instaladas automaticamente via
.devcontainer/devcontainer.json - Jekyll + Mermaid Prontos: Tanto Jekyll quanto geração de SVG Mermaid estão pré-configurados
O devcontainer inclui:
- Ruby e dependências do Jekyll
- Node.js e Mermaid CLI
- Scripts Python para geração de SVG
- Todas as dependências do sistema para Chrome headless
Instale o Bundler e siga os passos abaixo.
bundle installbundle exec jekyll sdocker build -t gitfichas .docker run --rm --volume="$PWD:/srv/jekyll" -p 4001:4000 -it gitfichas jekyll serve --livereloadGitFichas usa diagramas Mermaid para visualizar conceitos e comandos Git. O projeto inclui scripts para gerar imagens SVG estáticas desses diagramas.
📖 Para informações técnicas detalhadas sobre o sistema de conversão Mermaid, veja o Mermaid Converter README.
O projeto inclui scripts Python na pasta scripts/:
scripts/generate_images_only.py: Script principal para gerar imagens SVG dos diagramas Mermaidscripts/generate_embedded_fonts.py: Script utilitário para incorporar fontes no CSS (execute quando as fontes precisarem ser atualizadas)scripts/setup.sh: Script automatizado de configuração para novos codespaces (instala dependências e configura o ambiente)
💡 Novo no projeto? Execute
scripts/setup.shpara configurar automaticamente todas as dependências e testar o ambiente.
Ao trabalhar em fichas com diagramas Mermaid:
- Adicione/edite seu diagrama Mermaid no front matter do post
- Gere imagens SVG para suas mudanças:
# Gerar imagens para todos os posts python3 scripts/generate_images_only.py # Gerar imagens para post específico (mais rápido para testes) python3 scripts/generate_images_only.py "053.md" # Forçar regeneração de imagens existentes python3 scripts/generate_images_only.py --force
- Teste localmente usando Jekyll serve para ver as versões interativas e estáticas
- Comite tanto as mudanças do post quanto os arquivos SVG gerados
O projeto usa Google Fonts incorporadas (Chilanka e Borel) para renderização consistente. Se você precisar atualizar as fontes:
- Gere novas fontes incorporadas:
python3 scripts/generate_embedded_fonts.py
- Regenere todas as imagens SVG para usar as novas fontes:
python3 scripts/generate_images_only.py --force
O projeto usa uma arquitetura CSS separada:
assets/css/mermaid.css: Estilos específicos para web para diagramas interativosassets/css/embedded-svg.css: Estilos específicos para SVG com fontes incorporadasassets/css/embedded-fonts.css: Definições de fontes em base64 incorporadas (gerado automaticamente)
As configurações do tema Mermaid estão armazenadas em gitfichas-mermaid-theme.json para geração consistente de SVG.
O GitFichas está migrando de fichas baseadas em imagens para diagramas Mermaid dinâmicos. O GitHub Copilot pode ajudar a agilizar esse processo de migração com os prompts e fluxo de trabalho corretos.
A migração envolve converter fichas antigas baseadas em imagens para o novo formato Mermaid, preservando a precisão do conteúdo e links de navegação.
---
layout: post
title: '#002 git add arquivo.txt'
image: "https://res.cloudinary.com/.../thumbnail.jpg"
permalink: "/projects/002"
lang: "pt"
---
##### Adicionando arquivos para commit
<img alt="..." src="https://res.cloudinary.com/.../full.jpg">
| Comando | Descrição |
|---------|-------------|
| `add` | Comando para adicionar arquivos em staging |
| `arquivo.txt` | Nome do arquivo |---
layout: post
pretitle:
title: Adicionando
subtitle: arquivos para commit
command: git add arquivo.txt
descriptors:
- command: comando para adicionar arquivos<br>em staging
- part1: nome do arquivo
author: "@jtemporal"
number: "002"
mermaid: true
use_static_image: true
permalink: "/projects/002"
lang: "pt"
---
{% include mermaid-graphs.html %}Use este prompt para preparar o Copilot para migração:
Estou migrando fichas do GitFichas do formato baseado em imagens para diagramas Mermaid.
Ajude-me a converter fichas existentes seguindo estes requisitos:
- Extrair componentes do título em pretitle/title/subtitle
- Converter tabelas de comandos em array descriptors
- Adicionar campos obrigatórios: author, number, mermaid: true
- Preservar todos os links de navegação e traduções
- Remover URLs de imagens e conteúdo HTML
- Seguir convenção de nomes: YYYY-MM-DD-XXX.md (usar mesma data do original para traduções)
Para Fichas de Comando:
Converta esta ficha de comando GitFichas para formato Mermaid:
[cole o conteúdo da ficha antiga]
Siga esta estrutura:
- Extrair comando do título
- Dividir descriptors em command + part1, part2, etc.
- Usar <br> para quebras de linha em descriptors maiores que 30 caracteres
- Adicionar campos de metadados faltantes
- Manter toda navegação intacta
Para Fichas de Conceito:
Converta esta ficha de conceito GitFichas para formato Mermaid:
[cole o conteúdo da ficha antiga]
Siga esta estrutura:
- Usar concept: true em vez de command
- Converter descrições em array parts (part1, part2, etc.)
- Usar \n para quebras de linha em partes de conceito
- Adicionar `use_static_image: true` apenas se um SVG for gerado com sucesso
- Manter toda navegação intacta
Validação de Estrutura:
Revise esta ficha GitFichas migrada para precisão:
[cole a ficha migrada]
Verificar:
- Todos os campos obrigatórios presentes
- Estrutura adequada de descriptor/parts
- Links de navegação preservados
- Idioma e permalink corretos
- Quebras de linha formatadas adequadamente
# Verificar estrutura atual da ficha
git status
# Criar uma branch de feature
git switch -c migrate-cards-[numeros-das-fichas]- Abrir o arquivo da ficha antiga
- Usar os prompts de migração acima com Copilot
- Revisar e refinar o conteúdo gerado
- Garantir que todos os campos estejam formatados corretamente
- Garantir formato
YYYY-MM-DD-XXX.md - Para traduções, usar a MESMA data do post original
- Verificar se o arquivo está no diretório correto
# Gerar SVG para ficha específica
python3 scripts/generate_images_only.py "nome-arquivo-ficha.md"
# Verificar se a geração foi bem-sucedida
ls -la assets/img/mermaid/ | grep "numero-ficha"- Adicionar
use_static_image: trueao front matter APENAS após geração bem-sucedida do SVG
# Iniciar servidor local
bundle exec jekyll serve
# Visitar a URL da ficha migrada
# Comparar com a versão original da imagem
# Verificar precisão do conteúdo e consistência visual# Adicionar ao stage tanto arquivos markdown quanto SVG
git add _posts/nome-arquivo-ficha.md assets/img/mermaid/numero-ficha.svg
# Commit com mensagem descritiva
git commit -m "Migrar ficha XXX de imagem para formato Mermaid
- Converter [título original] para nova estrutura
- Preservar toda navegação e traduções
- Gerar SVG estático para fallback"Antes de fazer commit de uma ficha migrada, verificar:
- Conteúdo reflete com precisão a ficha original
- Links de navegação preservados e funcionando
- SVG gera com sucesso
- Sem espaços em branco finais nos arquivos
Todas as contribuições são bem-vindas.
Eu escrevi esse blog post que tem o passo a passo detalhado de como fazer pull requests para esse projeto.
Existem várias issues já abertas, você pode trabalhar em uma delas ou adicionar ao projeto com base na sua experiência e uso.
Idealmente, você pode discutir o tópico através de uma issue antes de começar a trabalhar.
Agradecimento ao Serenata de Amor por ter um ótimo guia de contribuição que inspirou este.
1. Faça um Fork desse repositório
2. Clone o seu fork do repositório
git clone http://github.com/<YOUR-GITHUB-USERNAME>/gitfichas.git3. Crie uma branch nova
git switch -c <NOME-DE-USUÁRIO-NO-GITHUB>-<descrição-ou-número-da-issue>Note que os nomes das branches começam com o nome de usuário do GitHub, isso nos ajuda a acompanhar as mudanças e quem está trabalhando nelas.
4. Faça o que você faz de melhor
Agora é a sua hora de brilhar e escrever um código significativo para elevar o nível do projeto!
5. Comite suas mudanças
git commit -m '<Adicione a descrição das suas mudanças>'Tente fazer pequenas mudanças por commit, assim é mais fácil entender o que você está fazendo ao revisar seu pull request.
6. Envie as mudanças para o seu fork
git push -u origin <NOME-DE-USUÁRIO-NO-GITHUB>-<descrição-ou-número-da-issue>7. Crie um Pull Request
Do seu fork no GitHub, geralmente há um botão para abrir pull requests.
Lembre-se de linkar a sua issue no seu pull request.
Para manter o fluxo de trabalho organizado:
- Somente mantenedores principais terão atribuição de issues: Se você quiser trabalhar em algo, basta comentar dizendo que vai pegar a tarefa e abrir seu PR. Não é necessário atribuição formal.
- Sem atribuição para eventuais contribuições: Isso ajuda a manter o processo aberto e acolhedor para todos.
- Janela de 2 dias: Se não houver PR em até 2 dias após alguém demonstrar interesse, a issue fica aberta para qualquer pessoa trabalhar.
- Política de PRs inativos: Pull requests sem resposta do contribuidor por 7 dias podem ser fechados para manter o projeto em movimento. Não se preocupe - você sempre pode reabrir seu PR ou criar um novo quando estiver pronto para continuar!
Assim, mantemos o processo amigável, com baixa barreira de entrada e evitamos que issues fiquem paradas. Obrigado por fazer parte da comunidade!