8.8 KiB
Siga estas orientações para contribuir para o código. Isso é altamente recomendado se você quer contribuir regularmente.
Ignorar essas etapas pode causar problemas à sua cópia, o que dificulta os processos daqueles que contribuem, mantêm e revisam.
Contribuindo para a base de código
Agora, você pode fazer alterações nos arquivos e fazer o commit das alterações no seu fork, que você pode preparar lendo Como configurar o freeCodeCamp.
Siga estes passos:
-
Certifique-se que está no branch
main
:git status
Você deve ver um resultado como este:
Na branch main Sua branch está atualizada com 'origin/main'. nada para enviar no commit, diretório de trabalho limpo
Se você receber uma mensagem diferente, você não está em main ou seu diretório de trabalho não está limpo. Resolva quaisquer arquivos/commits pendentes e saia de
main
:git checkout main
-
Sincronize as últimas mudanças da branch
main
upstream do freeCodeCamp para sua branchmain
do fork:[!WARNING] Se você possui qualquer pull request feito a partir da branch
main
, você os perderá ao fim desta etapa.Certifique-se de que foi feito um merge no seu pull request por um moderador antes de executar este passo. Para evitar essa situação, você sempre deve trabalhar em uma brach que não seja a
main
.Este passo irá sincronizar as últimas alterações do repositório principal do freeCodeCamp.
Atualize sua cópia do repositório upstream do freeCodeCamp:
git fetch upstream
Faça um hard reset na sua branch main com a main do freeCodeCamp:
git reset --hard upstream/main
Faça um push da sua branch main para a origin para obter um histórico claro em seu fork do GitHub:
git push origin main --force
Você pode validar se sua main atual combina com upstream/main fazendo um diff:
git diff upstream/main
O resultado deve mostrar vazio. O processo é importante, pois você fará um rebase em sua branch usando
upstream/main
frequentemente para evitar conflitos depois. -
Crie uma branch novinha em folha:
Trabalhar em uma branch separada para cada issue ajuda a manter sua cópia de trabalho limpa. Você nunca deve trabalhar na
main
. Isso vai sujar sua cópia do freeCodeCamp e você pode ter que começar de novo com um clone ou fork.Veja se você está na
main
como explicado antes e crie uma branch a partir dela:git checkout -b fix/update-guide-for-xyz
Seu nome de branch deve começar com
fix/
,feat/
,docs/
, etc. Evite usar números de issues em branches. Mantenha-os curtos, significativos e únicos.Alguns exemplos de bons nomes para branches são:
fix/update-challenges-for-react fix/update-guide-for-html-css fix/platform-bug-sign-in-issues feat/add-guide-article-for-javascript translate/add-spanish-basic-html
-
Edite páginas e trabalhe no código em seu editor de texto favorito.
-
Quando estiver satisfeito com as alterações, você deve opcionalmente executar o freeCodeCamp para visualizar as alterações.
-
Certifique-se de corrigir quaisquer erros e verificar a formatação de suas alterações.
-
Verifique e confirme os arquivos que você está atualizando:
git status
Isso deve mostrar uma lista dos arquivos
unstaged
que você editou.Na branch feat/documentation Sua branch está atualizada com 'upstream/feat/documentation'. As mudanças não estão organizadas para commit: (use "git add/rm <file>..." para atualizar o que será enviado) (use "git checkout -- <file>..." para descartar as mudanças do diretório) modificado: CONTRIBUTING.md modificado: docs/README.md modificado: docs/how-to-setup-freecodecamp-locally.md modificado: docs/how-to-work-on-guide-articles.md ...
-
Organize as alterações e faça um commit:
Nesta etapa, você só deve marcar arquivos que você editou ou adicionou. Você pode executar um reset e resolver arquivos que você não pretendeu mudar se necessário.
git add caminho/para/meu/arquivo/alterado.ext
Ou você pode adicionar todos os arquivos
unstaged
para a área de preparação:git add .
Apenas os arquivos que foram movidos para a área de staging serão adicionados quando você fizer um commit.
git status
Resultado:
Na branch feat/documentation Sua branch está atualizada com 'upstream/feat/documentation'. Mudanças para as quais devemos fazer um commit: (use "git reset HEAD <file>..." para descartar as mudanças do diretório) modificado: CONTRIBUTING.md modificado: docs/README.md modificado: docs/how-to-setup-freecodecamp-locally.md modificado: docs/how-to-work-on-guide-articles.md
Agora, você pode fazer o commit das alterações com uma pequena mensagem assim:
git commit -m "fix: my short commit message"
Alguns exemplos:
fix: adicionado teste para JavaScript - passo do laço for feat: adicionado link para o artigo de habilidades em alexa
Faça uma mensagem de commit convencional. Essa é uma boa prática. Como desenvolvedor, você estará seguindo as práticas padrão.
Alguns exemplos de mensagens convencionais de commit são:
fix: melhorar o passo do HTML fix: consertar scripts de build para o Travis-CI feat: adicionar link do artigo sobre hoisting em JavaScript docs: atuaizar as diretrizes de colaboração
Escreva pouco, não mais do que 50 caracteres. Você sempre pode adicionar informações extras na descrição da mensagem de commit.
Isso não leva mais tempo do que uma mensagem não convencional como 'atualizar arquivo' ou 'adicionar index.md'
Você pode aprender mais sobre o motivo de usar commits convencionais aqui.
-
Se você se deu conta que precisa editar um arquivo ou atualizar a mensagem de commit você pode fazer isso assim:
git commit --amend
Isso abrirá um editor de texto padrão, como
nano
ouvi
onde você pode editar o título da mensagem de commit e adicionar/editar a descrição. -
Em seguida, você pode fazer push das suas alterações no seu fork:
git push origin branch/nome-aqui
Propondo um Pull Request (PR)
Após ter feito as alterações, veja como abrir um Pull Request.
Referência de comandos rápidos
Uma rápida referência aos comandos que você precisará ao trabalhar.
comando | descrição |
---|---|
npm test |
Executa todos os testes JS no sistema, incluindo cliente, servidor, lint e testes dos desafios. |
npm run test-client |
Executa o conjunto de testes do cliente. |
npm run test:curriculum |
Executa o conjunto de teste de currículo. |
npm run test:curriculum --block='Basic HTML and HTML5' |
Testa um bloco específico. |
npm run test:curriculum --superblock='responsive-web-design' |
Testa um super bloco específico. |
npm run test-curriculum-full-output |
Executa o ocnjunto de teste de currículo, sem parar após o primeiro erro |
npm run test-server |
Executa o conjunto de testes de servidor. |
npm run e2e |
Executa os testes de ponta a ponta do Cypress. |
npm run clean |
Desinstala todas as dependências e limpa os caches. |
npm run storybook |
Inicia o Storybook para o desenvolvimento da biblioteca de componentes. |