繁体   English   中英

如何分叉我自己的GitHub存储库?

[英]How can I fork my own GitHub repository?

所以,Git的新手总数。 一直在阅读指南,并认为我有基本但我很难实现这一目标。

我为我的通用标记源代码创建了一个repo。 只是我为每次突破重用的东西。 它叫做markupDNA.git

我想在我的mac站点dir ~/Sites/project-N有不同的目录。 我建立在通用的东西上并在网站上突破的地方。 我希望这些与我的主要git repo绑在一起,但是你不能分叉你自己的回购?

我希望我能做到这样的事情:

git clone <url> name
git add .
# make changes
git commit -m 'whatever'
git push

但我不希望它推向原点。 我想让它推到克隆的markupDNA repo的一个分支。 但它似乎只是将我的更改推送到原始主人。 我的想法是保持markupDNA干净,并为我的不同项目提供大量的分支,每个项目都将在我的硬盘上有自己的克隆目录。

有任何想法吗?

你正在做正确的事。

cd ~/Sites/
git clone ~/Dev/markupDNA/ project-N
cd project-N
git remote rename origin markupDNA
  • 导航到存储项目的文件夹
  • 使用自定义名称克隆您的基本markupDNA repo
  • 重命名遥控器,以便在以后想要“原点”时,可以

使用分支可能要容易得多,而不是使用单独的分支。 您仍然可以为每个分支机构单独签出; 只需多次克隆你的repo,并在每一个中使用git checkout将它切换到适当的分支(或者git checkout -b来创建分支并立即检查它)。 创建分支后,可以使用git push origin <branchname>将它们推送到GitHub。

惊讶没有人引用这个人的博客帖子

以下是相关步骤:

$ git clone git@github.com:YOURNAME/foo.git bar
$ cd bar
$ vim .git/config
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:YOURNAME/bar.git #replace foo with bar
$ git remote add upstream git@github.com:YOURNAME/foo.git
$ git push -u origin master

我通常使用git remote removegit remote add的组合而不是编辑配置。

如果你想保持上游起源,你也可以使用git remote rename然后使用git remote add

本教程提供了一个简单明了的答案:

  1. 创建一个新的空github forkedrepo存储库
  2. 在本地克隆:

     git clone https://github.com/YOURUSERNAME/forkedrepo.git 
  3. 将原始github存储库添加为新本地存储库的远程:

     git remote add upstream https://github.com/YOURUSERNAME/originalrepo.git 
  4. 将原始github存储库的副本下载到新的本地存储库:

     git pull upstream master 
  5. 将文件从新的本地存储库推送到新的github存储库:

     git push origin master 

当然,这不会被github识别为原始存储库的一个分支,但这样做会很好。

要创建自己的存储库的真正GitHub fork,您可以使用以下步骤:

  1. 创建一个组织
  2. 分到组织
  3. 重命名分叉项目
  4. 回到您的帐户

当然你可以从克隆克隆。 在git中没有主要回购的概念。 人们经常指定一个主要的回购,但这是按照惯例,而不是出于技术原因。

因此,您可以完全按照您的描述完成所有操作,甚至更多。

例如,在您的突破网站中保留一个分支是有意义的,可以添加或修改您的通用内容。 您可以将它们提升到您的通用仓库并从那里再次分发。

您也可以使用Github的导入工具

(它是从SVN等导入的,但你也可以用它)

  • 在Github中创建新的存储库。 重要提示 :不要“使用自述文件进行初始化”
  • 在下一个屏幕上单击“导入代码”
  • 将URL粘贴到要导入的Github存储库。 截图

同样,这是在Github上创建一个新的存储库而不是真正的fork。 但你所有的分支,历史等都将存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM