【问题标题】:Moving commit history from few github repos to one bitbucket repo将提交历史从几个 github 存储库移到一个 bitbucket 存储库
【发布时间】:2014-11-29 12:03:58
【问题描述】:

说明: 我的教授给了我们一些任务。所以我在 github 上创建了两个公共 repos Task1Task2,通常我在截止日期前几天完成了这些任务。

然后他告诉我们,我们应该有一个私人仓库,在那里存储所有任务,另外还提供了一项任务。所以我在 Bitbucket 上创建了新的 repo FinalVersion 并在那里克隆了我以前的所有 repo,另外我完成了最新的任务并将我以前的所有任务和新的任务推送到了全新的 repo。然后我的教授告诉我们,他还会检查我们在将所有员工推送到 bitbucket 时丢失的提交。

目标:从Task1Task2这两个repos中取出所有提交历史并将其放在FinalVersion的开头

我在谷歌上搜索了它,但只找到了一个例子:sb clone repo 1:1 using -mirror 选项。我以为我可以将最终版本复制到某个地方,然后尝试在Task1Task2 上使用-mirror 选项,然后执行rebease FinalVersion 并将其放在最新的主节点上。

但我认为有一些更好的解决方案。你怎么看?

【问题讨论】:

  • 提示:与您的教授交谈并要求他停止更改要求。

标签: git github bitbucket


【解决方案1】:

在您的本地克隆 repo Taks1 中,您可以将远程添加到 Task2 并从中获取 fethc

cd Task1
git remote add task2 /path/to/local/clone/of/task2
git fetch task2

假设您在每个 repo 的一个分支 (master) 中完成工作,您可以从 Task1 中的 Task2 导入该分支

git checkout -b task2_master task2/master

然后,由于当前本地仓库具有 task1(master 分支) taks2(task2_master 分支)的完整历史记录,您可以将所有内容推送到 BitBucket 上的全新裸仓库.

git remote set-url origin /ur/bitbucket/repo
git push --all origin

【讨论】:

  • 问题是我不能创建新的repo,所有员工必须在同一个FinalVersion repo。因此,当我尝试放弃您的建议时,我得到 更新被拒绝,因为推送的分支提示落后于其远程对应项
  • 然后只需将本地分支 (stackoverflow.com/a/6591218/6309) 重命名为远程仓库中尚不存在的名称,然后推送它们。
猜你喜欢
  • 1970-01-01
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
  • 2022-09-26
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
相关资源
最近更新 更多