如何从第二个 github 存储库中提取提交? (为了分离提交历史)

发布于 2024-11-03 15:26:08 字数 185 浏览 0 评论 0原文

我需要雇用一些自由职业者,但不允许他们看到以前的提交,而只能看到当前的状态。因此,我想在我的 github 上克隆一个私有存储库,删除 .git 提交历史记录,将克隆存储库作为公开添加到 github 帐户,让自由职业者分叉该存储库并发送带有更改的拉取请求。然后将更改连同我的整个提交历史记录拉回我的原始私人存储库。

最好的方法是什么?谢谢

I need to hire some freelancers but not allow them to see previous commits, just the current state. So Id like to clone a private repo on github of mine, remove the .git commit history, add the clone repo to the github account as public, have freelancers fork that repo and send pull requests with their changes. Then pull the changes back to my original private repo with my entire commit history.

Whats the best way to do this? Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寄人书 2024-11-10 15:26:08

我不认为您能够将更改一直拉回具有完整历史记录的私人存储库,因为您希望公开- repo 和 private-repo 有效地具有不同的根提交。

我认为您最好的选择可能是:

  • 使用 git archive 拍摄存储库的快照。
  • 将其用作新公共存储库上的初始提交(从而压缩历史记录)。
  • 允许开发人员按照讨论的方式分叉、工作和发送拉取请求。
  • 使用以下方法之一将提交从公共存储库复制到私有存储库:
    • 公共存储库中的git format-patch,私有存储库中的git am
    • 添加两个遥控器,并gitcherry-pick单独提交
    • 添加两个遥控器,并将您的公共分支git rebase添加到您的私有分支上;在尝试此操作之前,您可能应该非常了解 Rebase 的工作原理。

I don't think you'll be able to pull the changes all the way back to your private-repo-with-full-history, because you want the public-repo and the private-repo to effectively have different root commits.

I think your best bet might be:

  • Take a snapshot of your repository with git archive.
  • Use that as the initial commit on your new public-repository (thus squashing the history).
  • Allow developers to fork, work and send pull-requests as discussed.
  • Copy the commits from the public-repository to the private-one using one of the following:
    • git format-patch in the public-repo, git am in the private-repo
    • Add both remotes, and git cherry-pick individual commits
    • Add both remotes, and git rebase your public branch(es) onto your private one(s); you should probably have a Very Good Understanding Of How Rebase Works before trying this.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文