2011-08-14 60 views
1

我对Git有点困惑!如果我推一个克隆回购,它会拥有克隆回购有的一切吗?

  • 我在GitHub 上复制回购到本地驱动器
  • 我做了一些修改,并承诺我的本地回购
  • 在这一点上,我无法弄清楚如何克隆我的本地回购到一个新的GitHub库,所以我去GitHub.com并创建一个新的回购协议与他们的网络界面
  • 我那么做了git-push MyNewRepoOnGitHub master

是否MyNewRepoOnGitHub有我最初克隆的一切吗?我可以向我最初克隆的项目的贡献者发送拉取请求吗?或者......我完全沉重,需要重读我以前对Git的了解?!

回答

3

您在github上的新存储库仅包含所有可从master(您只推送给主)的提交。要推送所有裁判(包括标签),请使用git push MyNewRepoOnGitHub --all

我自己并没有使用github,但应该可以使用pull请求。提交在克隆或推送时不会改变(但可能github要求您首先“分离”项目)。从你的两个克隆仓库中提取和合并肯定会起作用(用普通的git)

+0

实际上,如果你想要一个完整的镜像,你需要按照这里的指示:http://help.github.com/move-a-repo/用'--all'推动只推送你的本地引用。 – Tekkub

+0

@Tekkub:是的,你可以使用'--mirror',但是这将在远程创建完全相同的ref结构,这是很少需要的(当推送一个带有相关工作树并配置远程的本地克隆时) – knittl

+0

当然,但他确实要求“我最初克隆的所有东西”......对我来说听起来像他希望在他提交承诺之前将原始回购的镜子作为基础。 – Tekkub

2

我认为你必须明确地“分叉”原始仓库来提出一个请求。 Github目前不知道您的MyNewRepoOnGitHub与您从中克隆的原始回购有关。分叉建立了这种关系,并允许提出请求分享提交。

您可以:

  1. 叉从中克隆
  2. 设置分叉回购作为一个额外的远程存储库(用于现有的克隆回购你的机器上)原来的回购

    git remote add MyForkedRepo <url-to-your-forked-repo> 
    
  3. 将您的更改推送到分叉回购

    git push MyForkedRepo master 
    
  4. 在Github上

提高pull请求没有分叉有两种方式,虽然很古老的期待相比,拉入请求的方法,

  1. 原来的回购commiter /所有者将不得不增加您的MyNewRepoOnGithub作为他的远程并拉动你的变化,并合并他们,并推动他们原来的回购
  2. 您通过电子邮件给原始回购所有者一个补丁,他申请并承诺回购您的名义