我在bitbucket上有一个opensrc项目- https://bitbucket.org/ijabz/jaudiotagger/src/master/README.md
我有一些贡献者的拉请求要审查。
在过去,我只是检查代码,然后使用Merge按钮将代码合并到Bitbucket上的远程主分支中。但是这些拉取请求太复杂了,我需要在我的计算机上与我的本地主分支合并,构建和测试它,然后只有在可以的情况下将它合并到远程主分支。
但是我不知道怎么做?
你想要合并的分支还不是存储库的的一部分;它只存在于贡献者存储库中。您需要先创建一个新的远程。
git remote add mvmn ... # You'll need the contributor's fork's URL
git remote update mvmn
git checkout -b pr69 --track mvmn/generics_refactoring
git merge master
在您完成测试之后,您可以删除generics_refactoring
分支(当然是在签出另一个分支之后)
git branch -D pr69
例如,无论是谁发出了拉取请求,都在一个分支feature
中进行了更改。如果您可以做git fetch <your remote>
,那么分支feature
将为您提供。现在,您应该运行git checkout <your master branch>
,以防您不在那里,然后运行git merge feature
。
完成后,您应该能够在合并远程主机中的特性分支之前在本地运行测试
我采取了另一种方法。我克隆他们的本地存储库,然后checkedout远程分支
git clone https://ijabz@bitbucket.org/mvmn/jaudiotagger.git
git checkout origin/generics_refactoring
然后我可以测试他们的新代码,并在我的IDE中查看
如果可以的话,我可以批准BitBucket上的请求,这将处理任何合并冲突问题(尽管在这种情况下没有任何冲突),我可以删除克隆的存储库,因为我不再需要它。
这似乎不是最优雅的解决方案,但至少我能理解它。