Getting started with Git development¶
这一节和下面详细描述如何设置git使用NumPy源代码。如果您已设置git,请跳至Development workflow。
Basic Git setup¶
介绍自己Git:
git config --global user.email you@yourdomain.example.com git config --global user.name "Your Name Comes Here"
Making your own copy (fork) of NumPy¶
你只需要这样做一次。这里的说明与http://help.github.com/forking/上的说明非常相似 - 请参阅该页面了解详情。我们在这里重复一些,只是给出NumPy项目的细节,并建议一些默认名称。
Set up and configure a github account¶
如果您没有github帐户,请转到github页面,然后创建一个。
您需要配置您的帐户以允许写访问 - 有关帮助中的生成 SSH 键 github help
。
Set up your fork¶
首先,按照Making your own copy (fork) of NumPy的自己的副本(fork)的说明。
Overview¶
git clone https://github.com/your-user-name/numpy.git
cd numpy
git remote add upstream git://github.com/numpy/numpy.git
In detail¶
Clone your fork¶
使用
git 克隆 克隆您的分叉到本地计算机https://github.com/your-user-name/numpy.git t3 >
调查。将目录更改为您的新仓库:
cd numpy
。然后git 分支 -a
你会得到像:* master remotes/origin/master
这告诉你你目前在
master
分支,并且你还有一个remote
连接到origin/master
。什么远程存储库是remote/origin
?尝试git remote -v
可查看远程的URL。他们会指向您的github分支。现在你想连接到上游NumPy github存储库,所以你可以合并中转的变化。
Linking your repository to the upstream repo¶
cd numpy
git remote add upstream git://github.com/numpy/numpy.git
upstream
这里只是我们用来指代NumPy github上的主要NumPy资源库的任意名称。
请注意,我们使用git://
作为网址,而不是使用https://
。git://
网址是唯读的。这意味着我们不能意外(或故意)写入上游repo,我们只会使用它来合并到我们自己的代码。
为了你自己的满意,告诉自己你现在有一个新的“远程”,git 远程 -v 显示
,给你像:
upstream git://github.com/numpy/numpy.git (fetch)
upstream git://github.com/numpy/numpy.git (push)
origin https://github.com/your-user-name/numpy.git (fetch)
origin https://github.com/your-user-name/numpy.git (push)
为了与NumPy中的更改保持同步,您需要设置存储库,使其默认从upstream
拉出。这可以通过:
git config branch.master.remote upstream
git config branch.master.merge refs/heads/master
你也可能想要容易地访问发送到NumPy仓库的所有pull请求:
git config --add remote.upstream.fetch '+refs/pull//head:refs/remotes/upstream/pr/'
您的配置文件现在应该像(从$ cat .git / config
):
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = https://github.com/your-user-name/numpy.git
fetch = +refs/heads/*:refs/remotes/origin/*
[remote "upstream"]
url = git://github.com/numpy/numpy.git
fetch = +refs/heads/*:refs/remotes/upstream/*
fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*
[branch "master"]
remote = upstream
merge = refs/heads/master