【发布时间】:2018-10-02 13:12:06
【问题描述】:
我有以下与this one不同的情况。
这是我的本地仓库:
$ git branch
branch1
...
branchk
master
* this-branch-where-fix-should-happen
我想要的是应用只存在于upstream:staging 分支中的提交。
我试图在某个分支中获取上游
$ git fetch upstream staging:staging
From github.com:<org>/<repo>
* [new branch] staging -> staging
branch 的新输出。
$ git branch
branch1
...
branchk
master
staging
* this-branch-where-fix-should-happen
现在正在尝试挑选fix-branch:
$ git cherry-pick -x <sha-1>
fatal: bad object <sha-1>
在这种情况下有正确的挑选樱桃的方法吗?还是我的做法完全错误?
解决方案:找到问题并解决它
按照蒂姆·比格莱森的指示
获取上游
$ git fetch upstream
这就是我的错误所在,我是通过 github 站点获取提交号的,但这实际上是用于合并的 <sha-1>。要获得正确的提交号:
$ git log --pretty=oneline --grep="<some-info-about-the-commit>" upstream/staging
我使用了--grep="#pull-request-number" 并获得了正确的提交 ID。
<correct-sha-1> PR description (#PR-number)
现在正在尝试挑选fix-branch:
$ git cherry-pick -x <correct-sha-1>
它有效!
【问题讨论】:
标签: git cherry-pick