制作补丁#
您在 scikit-image 中发现了一个错误或您想更改的其他内容… — 太棒了!
您已经找到了修复它的方法 — 更棒了!
您想告诉我们 — 最棒的!
最简单的方法是制作一个补丁或一组补丁。在这里我们解释如何操作。制作补丁是最简单、最快捷的方式,但如果您要做的事情比简单的快速修复要多,请考虑遵循 用于开发的 Git 模型。
制作补丁#
概述#
# tell git who you are
git config --global user.email you@yourdomain.example.com
git config --global user.name "Your Name Comes Here"
# get the repository if you don't have it
git clone https://github.com/scikit-image/scikit-image.git
# make a branch for your patching
cd scikit-image
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
然后,将生成的补丁文件发送到 scikit-image 开发者论坛 — 我们将在此对您表示热烈的感谢。
详细信息#
告诉 git 您的身份,以便它可以标记您所做的提交
git config --global user.email you@yourdomain.example.com git config --global user.name "Your Name Comes Here"
如果您还没有,请克隆一份 scikit-image 存储库
git clone https://github.com/scikit-image/scikit-image.git cd scikit-image
创建一个“特性分支”。这将是您处理错误修复的地方。它很安全,并且让您可以访问主分支中未修改的代码副本
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'
注意
commit
的-am
选项。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
将这些文件发送到 scikit-image 开发者论坛。
完成后,要切换回代码的主副本,只需返回到 main
分支
git checkout main
从打补丁转向开发#
如果您发现您做了一些补丁,并且您有一个或多个特性分支,您可能需要切换到开发模式。您可以使用您拥有的存储库执行此操作。
在 github 上 fork scikit-image 存储库 — 制作你自己的 scikit-image 副本(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 git@github.com:your-user-name/scikit-image.git
# push up any branches you've made and want to keep
git push origin the-fix-im-thinking-of
然后,如果您愿意,可以遵循 开发工作流程。