制作补丁#
您在Matplotlib中发现了一个错误或其他您想要更改的内容.. — 太棒了!
您已经找到了修复它的方法——甚至更好!
你想告诉我们——最重要的是!
最简单的方法是制作一个补丁或一组补丁。在这里我们解释一下如何。制作补丁是最简单和最快的,但如果您要做的不仅仅是简单快速的事情,请考虑遵循 Git 开发模型。
制作补丁#
概述#
# 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
然后,将生成的补丁文件发送到Matplotlib 邮件列表——我们将在此衷心感谢您。
详细#
告诉 git 你是谁,这样它就可以标记你所做的提交:
git config --global user.email [email protected] git config --global user.name "Your Name Comes Here"
如果您还没有,请克隆 Matplotlib存储库的副本:
git clone https://github.com/matplotlib/matplotlib.git 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'
注意 的
-am
选项commit
。该m
标志只是表示您将在命令行上键入一条消息。旗帜a
——你可以相信——或者看看为什么是 -a 旗帜?.完成后,检查您是否已提交所有更改:
git status
最后,将你的提交变成补丁。自从您从
main
分支分支以来,您想要所有提交:git format-patch -M -C main
您现在将有几个以提交命名的文件:
0001-BF-added-tests-for-Funny-bug.patch 0002-BF-added-fix-for-Funny-bug.patch
将这些文件发送到Matplotlib 邮件列表。
完成后,要切换回代码的主副本,只需返回main
分支:
git checkout main
从打补丁到开发#
如果你发现你已经做了一些补丁,并且你有一个或多个特性分支,你可能想要切换到开发模式。您可以使用您拥有的存储库来执行此操作。
在 github 上fork Matplotlib存储库 —制作您自己的 Matplotlib 副本(fork)。然后:
# 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
然后,如果需要,您可以遵循 开发工作流程。