Fazendo um patch #
Você descobriu um bug ou algo mais que deseja alterar no Matplotlib .. — excelente!
Você descobriu uma maneira de corrigi-lo - ainda melhor!
Você quer nos contar sobre isso - o melhor de tudo!
A maneira mais fácil é fazer um patch ou um conjunto de patches. Aqui explicamos como. Fazer um patch é o mais simples e rápido, mas se você for fazer algo mais do que coisas simples e rápidas, considere seguir o modelo de desenvolvimento do Git .
Fazendo correções #
Visão geral #
# tell git who you are
git config --global user.email [email protected]
git config --global user.name "Your Name Comes Here"
# get the repository if you don't have it
git clone https://github.com/matplotlib/matplotlib.git
# make a branch for your patching
cd matplotlib
git branch the-fix-im-thinking-of
git checkout the-fix-im-thinking-of
# hack, hack, hack
# Tell git about any new files you've made
git add somewhere/tests/test_my_bug.py
# commit work in progress as you go
git commit -am 'BF - added tests for Funny bug'
# hack hack, hack
git commit -am 'BF - added fix for Funny bug'
# make the patch files
git format-patch -M -C main
Em seguida, envie os arquivos de patch gerados para a lista de discussão do Matplotlib - onde agradeceremos calorosamente.
Em detalhe #
Diga ao git quem você é para que ele possa rotular os commits que você fez:
git config --global user.email [email protected] git config --global user.name "Your Name Comes Here"
Se você ainda não tiver um, clone uma cópia do repositório Matplotlib :
git clone https://github.com/matplotlib/matplotlib.git cd matplotlib
Faça uma 'ramificação de recursos'. Este será o local onde você trabalhará na correção do bug. É bom e seguro e deixa você com acesso a uma cópia não modificada do código no ramo principal:
git branch the-fix-im-thinking-of git checkout the-fix-im-thinking-of
Faça algumas edições e confirme-as à medida que avança:
# hack, hack, hack # Tell git about any new files you've made git add somewhere/tests/test_my_bug.py # commit work in progress as you go git commit -am 'BF - added tests for Funny bug' # hack hack, hack git commit -am 'BF - added fix for Funny bug'
Observe as
-am
opções paracommit
. Om
sinalizador apenas sinaliza que você digitará uma mensagem na linha de comando. Aa
bandeira - você pode simplesmente acreditar - ou ver por que a bandeira -a? .Quando terminar, verifique se você confirmou todas as suas alterações:
git status
Por fim, transforme seus commits em patches. Você quer todos os commits desde que ramificou a partir do
main
branch:git format-patch -M -C main
Agora você terá vários arquivos nomeados para os commits:
0001-BF-added-tests-for-Funny-bug.patch 0002-BF-added-fix-for-Funny-bug.patch
Envie esses arquivos para a lista de discussão do Matplotlib .
Quando terminar, para voltar à cópia principal do código, basta retornar à main
ramificação:
git checkout main
Passando do patch para o desenvolvimento #
Se você achar que fez alguns patches e possui um ou mais branches de recursos, provavelmente desejará alternar para o modo de desenvolvimento. Você pode fazer isso com o repositório que você tem.
Bifurque o repositório Matplotlib no github — Fazendo sua própria cópia (bifurcação) do Matplotlib . Então:
# checkout and refresh main branch from main repo
git checkout main
git pull origin main
# rename pointer to main repository to 'upstream'
git remote rename origin upstream
# point your repo to default read / write to your fork on github
git remote add origin [email protected]:your-user-name/matplotlib.git
# push up any branches you've made and want to keep
git push origin the-fix-im-thinking-of
Então você pode, se quiser, seguir o workflow de Desenvolvimento .