制作补丁#

您发现 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 开发者论坛 — 我们将热烈感谢您。

详细介绍#

  1. 告诉 git 您是谁,以便它可以标记您所做的提交

    git config --global user.email you@yourdomain.example.com
    git config --global user.name "Your Name Comes Here"
    
  2. 如果您还没有,请克隆 scikit-image 存储库的副本

    git clone https://github.com/scikit-image/scikit-image.git
    cd scikit-image
    
  3. 创建一个“功能分支”。这将是您进行错误修复的地方。它既安全又方便,让您能够访问主分支中代码的未修改副本

    git branch the-fix-im-thinking-of
    git checkout the-fix-im-thinking-of
    
  4. 进行一些编辑,并在您进行编辑时提交它们

    # 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 选项到 commitm 标志只是表示您将在命令行上键入消息。 a 标志 — 您只需相信它 — 或者参见 为什么使用 -a 标志?.

  5. 完成之后,检查您是否提交了所有更改

    git status
    
  6. 最后,将您的提交转换为补丁。您希望获得自您从 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

然后,您可以(如果您愿意)遵循 开发工作流程.