制作补丁#

你发现了一个bug或者你想在 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'
    

    注意 commit-am 选项。m 标志只是表示你将在命令行上输入一条消息。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 仓库 — 制作你自己的副本(fork)的 scikit-image。然后:

# 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

然后,如果你想,可以遵循 开发工作流程