我们需要服务器来分叉Git存储库吗?

时间:2015-02-21 19:19:20

标签: git fork

在Github或Bitcket上分叉会在您自己的帐户下创建一个repo的副本。

这是否意味着分叉是服务器端操作?我无法在Git中找到“fork命令”。

如果它不是服务器端操作,那么使用完整历史记录和标记分叉本地Git存储库的步骤是什么?

4 个答案:

答案 0 :(得分:6)

分叉不是技术操作,而是在软件开发中发生的过程:

  当项目开发人员从一个软件包中获取源代码副本并开始对其进行独立开发时,会发生项目分支,从而创建一个独立且独立的软件。

来源:http://en.wikipedia.org/wiki/Fork_%28software_development%29

因此,严格来说,git中没有分叉的概念。也就是说,为了分叉一个Git存储库中的项目,你必须git-clone它。

答案 1 :(得分:2)

分叉只是复制整个回购。 git clone就是你在本地的做法。或者你可以简单地复制整个回购。

另见Are git forks actually git clones?

答案 2 :(得分:2)

Github中 Fork 的表示是一个git配置,其中包含 Pull Requests 功能的一些服务器端逻辑。

在git命令中模拟github fork的命令:

  

git clone externalrepo

     

git remote rename origin external

     

创建一个空的存储库(可以是任何服务器,但是当你使用 github fork 在你的帐户中创建时)

     

git remote add origin yourownrepo

     

git push origin

这是模拟fork的基本git命令,而是服务器中的fork是,因为只有本地的git是无用的。

github的额外功能是知道您的回购原始回购的一个分支,可以轻松自动提取请求。

额外信息

一次拉取请求只是通知原始存储库,以查看您的回购上的特定分支并进行整合:

您可以使用下一个git命令模拟拉取请求接受:

  

git add remote pr11111 yourownrepo

     

git checkout originalbranch //要整合

     

git pull pr11111 yourbranch //请求分支拉

     

git merge pr11111 yourbranch

答案 3 :(得分:0)

GitHub上有一个很好的摘要摘要,但基本上你是在创建一个他们的repo副本,这样你就可以自己做一些更改而不影响源代码库。

这意味着你可以在其他人所做的事情的基础上进行改进,但将其改为自己的目的。