1

我正忙于一个使用一些库的项目

git clone http://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git

我已经下载了上面的代码并将其放入我的代码中,现在想在 github 上发布我的代码。

我还想确保始终使用来自 adafruit 的最新代码,所以有没有办法可以在我的代码中添加指向 adafruit 的链接,以便它始终拉取最新版本。

我在 git 上做了一些阅读,我认为这可能被称为 fork?在放置我的代码时,我是否将 adafruit 代码放在我的存储库中,或者是否有人可以将链接放入原始代码?

4

3 回答 3

1

除非您已经是该项目的贡献者,否则您将无法直接推送到他们的存储库。

在这种情况下,一般用例是分叉项目(即以您的名义创建一个副本)并进行处理。然后,您可以创建拉取请求以要求他们从您的存储库中提取特定更改。

这篇 GitHub 文章解释了这个过程,还告诉你如何让你的 fork 保持最新(如果你不做任何特别的事情,它基本上只是一个快照)。

于 2013-08-26T10:41:47.600 回答
1

由于您已经在本地克隆了存储库并进行了修改,因此您应该采取一些步骤来创建一个 fork(用于对原始存储库的可追溯性)并设置适当的远程同步。


1) 访问http://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code并点击“Fork”按钮

2) 复制Fork的 Git 存储库 URL

3)在终端上,在您的项目目录中,添加一个远程:

git remote add fork <repo-fork-url>

4) 确保你的 fork 相对于原始项目是最新的

git checkout master

git pull -rebase origin master

5) 移除master的现有上游;设置上游以将您的提交发布到您的 Fork

git branch --unset-upstream master

git push -u fork master


从这里开始,您可以编辑和提交到本地存储库,git pushgit pull与 GitHub 上的 Fork 同步,并git pull origin master从原始存储库中检索最新提交。

于 2013-08-30T16:13:06.917 回答
0

是的,通过分叉,您可以使用拉取请求将您的代码发送给他们以供审查,如果他们愿意,他们会将这些代码合并到他们的项目中。要从他们的存储库中提取最新更改,另请参阅:

git fetch upstream
git merge upstream/master

如果没有冲突,它会自动合并,但有时会有冲突,那么您将不得不手动进行。

于 2013-08-26T11:19:37.253 回答