Git新手求教:如何将bitcoind的bug修复合并至本地v0.15.1代码库
如何将bitcoind的特定bug修复合并到本地v0.15.1代码
嘿,作为Git新手遇到这种情况很正常,我来一步步带你搞定这个问题,确保你能顺利把那个修复拉到本地代码里~
方法一:合并官方0.15分支的最新更新(包含目标修复)
因为这个修复会纳入即将发布的v0.15.2,说明官方的0.15分支已经包含了这个修复,直接合并这个分支的更新是最稳妥的方式:
打开终端,进入你的bitcoind本地代码目录:
cd /path/to/your/bitcoin/repository确保你已经添加了官方仓库作为上游远程(如果还没加的话):
git remote add upstream https://github.com/bitcoin/bitcoin.git然后拉取官方仓库的所有最新分支和更新:
git fetch upstream切换到你本地基于v0.15.1的工作分支(如果直接在v0.15.1分支上开发,就执行下面的命令):
git checkout v0.15.1合并官方
0.15分支的更新到本地分支:git merge upstream/0.15- 如果Git提示有冲突,别慌!打开冲突的文件,找到标记为
<<<<<<<、=======、>>>>>>>的部分,手动调整代码解决冲突,然后执行:git add <解决冲突后的文件名> git merge --continue
- 如果Git提示有冲突,别慌!打开冲突的文件,找到标记为
重新构建bitcoind验证修复:
make clean ./autogen.sh ./configure make
方法二:仅合并特定的修复Commit(更精准)
如果你不想合并0.15分支的其他更新,只想单独应用那个修复,可以用cherry-pick:
先去你提到的Issue #12009里找到关联的修复PR,复制那个PR里的Commit哈希值(看起来像一串随机字母数字,比如
a1b2c3d)。按照方法一的步骤1-3,确保你在正确的本地分支,并且已经拉取了官方的最新更新。
执行
cherry-pick应用这个修复:git cherry-pick <复制的Commit哈希值>- 如果遇到冲突,同样手动解决后执行:
git add <解决冲突后的文件名> git cherry-pick --continue
- 如果遇到冲突,同样手动解决后执行:
重新构建验证,步骤和方法一的第5步一致。
这样操作后,你的本地代码就会包含那个针对OS X High Sierra的构建修复啦~如果过程中遇到任何Git操作的疑问,随时问就好!
内容的提问来源于stack exchange,提问作者David Choi
相关产品推荐
相关产品推荐

