【问题标题】:Applying a raw Bitbucket commit file to your local git repo?将原始 Bitbucket 提交文件应用到本地 git 存储库?
【发布时间】:2022-01-06 01:06:45
【问题描述】:

是否可以从 Bitbucket 中获取原始提交文件,例如 https://bitbucket.org/myorg/myproject/commits/5fa326bef012df0a689c7ccaefed6ad61841e2ba/raw

并使用它将所有这些更改合并到本地 git 存储库中?

我管理的一个 Bitbucket 存储库发生了一些奇怪的事情,在从上游分支拉取之后,一堆提交从我的本地分支中消失了,在 git log 中甚至没有任何痕迹。但是,Bitbucket 仍然显示原始提交和拉取请求,但它们没有以任何方式链接到分支。

我不想手动复制所有代码更改,而是重新应用原始提交文件。

【问题讨论】:

    标签: git bitbucket


    【解决方案1】:

    该端点提供的是 Git 样式的提交补丁。您可以使用 git am 应用补丁,但由于补丁缺少提交者信息和时间戳以及任何签名,因此对象 ID 会更改,因为 Git 会合成新的提交者信息。

    补丁也不适用于合并,这可能会给您带来问题。至少,应用一个不会导致合并提交。

    如果服务器仍然在分支中列出它们,您可以执行git fetch origin(假设origin 是您的远程),然后假设分支是branch,使用git log origin/branch 检查远程跟踪分支.如果其中包含您想要的提交,您可以使用 git branch local origin/branch 将其转换为本地分支(例如,local)。

    如果它们只是作为 PR 而不是作为分支提供,您可以尝试 git fetch origin refs/pull-requests/<ID>/from:refs/heads/local,它将从给定的 PR(替换适当的 ID)创建一个分支 local。然后您将拥有它们,而不必重新创建它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 2011-12-30
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多