题
因此,全新的新手git。一直在阅读指南,并认为我有基本知识,但是很难实现这一目标。
我为我的通用标记源代码创建了一个存储库。只是我每次突破都重复使用的东西。叫做 markupDNA.git
我想在我的Mac站点DIR中拥有不同的目录 ~/Sites/project-N
. 。我在通用物品上建立的位置,并对网站进行突破。我希望这些与我的主要git储物库相关,但是您不能分叉自己的仓库?
我希望我可以做这样的事情:
git clone <url> name
git add .
# make changes
git commit -m 'whatever'
git push
但是我不希望它将其推向原点。我希望它将其推到一个叉子上 markupDNA
仓库从那里克隆。但是似乎这只是将我的变化推到了原始大师中。这个想法是保持 markupDNA
干净,只为我的不同项目有很多叉子,每个项目都会在我的硬盘上有自己的克隆dir。
有任何想法吗?
解决方案
它可能会容易得多 分支, ,而不是使用单独的叉子。您仍然可以为每个分支提供单独的结帐;只需多次克隆您的存储库即可使用 git checkout
在每个人中,将其切换到适当的分支(或 git checkout -b
创建分支并立即检查一下)。创建分支后,您可以将它们推到GitHub git push origin <branchname>
.
其他提示
你在做正确的事。
cd ~/Sites/
git clone ~/Dev/markupDNA/ project-N
cd project-N
git remote rename origin markupDNA
- 导航到您存储项目的文件夹
- 克隆你的基地
markupDNA
带有自定义名称的回购 - 重命名遥控器,以便如果您稍后想成为“原点”,则可以
为了制作自己的存储库的真实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 remove
和 git remote add
.
你也可以使用 git remote rename
其次是 git remote add
如果您想保持上游起源。
本教程 给出一个简单明了的答案:
- 创建一个新的空github
forkedrepo
存储库 克隆到本地:
git clone https://github.com/YOURUSERNAME/forkedrepo.git
将原始的GitHub存储库添加为新的本地存储库的遥控器:
git remote add upstream https://github.com/YOURUSERNAME/originalrepo.git
将原始GitHub存储库的副本删除到您的新本地存储库:
git pull upstream master
将文件从新的本地存储库推到新的GitHub存储库:
git push origin master
Github不会将其视为原始存储库的叉子,但这是尽可能好。
确保您可以从克隆中克隆。在git中,没有主要回购的概念。人们经常指定主要的回购,但这不是按照惯例,不是因为技术原因。
因此,您可以按照自己的描述,甚至更多。
例如,将分支保留在分支机构中,并为您的通用物品进行添加或修改的想法。您可以将其拉到通用仓库,然后再次从那里分发。
您也可以使用 GitHub的导入工具.
(它是从SVN导入的等等。但是您也可以将其用于此)
- 在Github中创建新存储库。 重要的: :不要“用读数初始化”
- 在下一个屏幕上,单击“导入代码”
- 将URL粘贴到您要导入的GitHub回购。 ((截屏)
同样,这是在Github上创建一个新的存储库,而不是真正的叉子。但是您的所有分支机构,历史等都将在那里。