30

所以,Git 的新手。一直在阅读指南,并认为我具备基础知识,但在实现这一目标时遇到了困难。

我为我的通用标记源代码创建了一个存储库。只是我在每次突破时重复使用的东西。它被称为markupDNA.git

我想在我的 mac 站点目录中有不同的目录~/Sites/project-N。我建立在通用的东西上并做一个网站的突破。我希望这些作为分叉与我的主要 git 存储库相关联,但是您不能分叉自己的存储库吗?

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

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

但我不希望它推到原点。我希望它推送到markupDNA它被克隆的 repo 的一个分支。但似乎它只是将我的更改直接推送到原始主机。我们的想法是保持markupDNA清洁,并为我的不同项目提供很多分支,每个项目在我的硬盘驱动器上都有自己的克隆目录。

有任何想法吗?

4

7 回答 7

24

你在做正确的事。

cd ~/Sites/
git clone ~/Dev/markupDNA/ project-N
cd project-N
git remote rename origin markupDNA
  • 导航到您存储项目的文件夹
  • markupDNA使用自定义名称克隆您的基础仓库
  • 重命名遥控器,以便以后如果您想“原点”,您可以
于 2010-09-22T19:16:34.313 回答
20

使用分支可能会容易得多,而不是使用单独的分叉。您仍然可以为每个分支单独结帐;只需多次克隆您的存储库,并git checkout在每个存储库中使用将其切换到适当的分支(或git checkout -b创建分支并一次全部检查)。创建分支后,您可以使用git push origin <branchname>.

于 2010-09-22T19:08:14.007 回答
11

本教程给出了一个简单直接的答案:

  1. 创建一个新的空 githubforkedrepo存储库
  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 识别为原始存储库的分支,但这已经足够了。

于 2015-01-11T10:17:46.707 回答
10

令人惊讶的是,还没有人引用这个人的博客文章

以下是相关步骤:

$ 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

于 2014-06-22T04:13:44.307 回答
9

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

  1. 创建组织
  2. 分叉到组织
  3. 重命名分叉项目
  4. 移回您的帐户
于 2012-01-26T07:01:01.000 回答
1

当然,您可以从克隆中克隆。在 git 中没有主仓库的概念。人们经常指定一个主仓库,但这是按照惯例,而不是因为技术原因。

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

例如,在您的突破站点中保留一个分支是有意义的,其中包含对您的通用内容进行添加或修改的想法。您可以将它们拉到您的通用回购并从那里再次分发。

于 2010-09-22T19:20:13.123 回答
1

也可以使用Github 的导入工具

(它用于从 SVN 等导入,但您也可以使用它)

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

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

于 2015-06-26T20:57:43.690 回答