假设我有两个存储库,project和protocols,两者都在我的控制之下。
步骤1:将protocols作为子树添加到project存储库中。
$ git remote add protocols git@bitbucket.org:corp/protocols.git
$ git remote
origin
protocols
$ git subtree add --prefix=protocols protocols master --squash
...
From bitbucket.org:corp/protocols
* branch master -> FETCH_HEAD
* [new branch] master -> protocols/master
Added dir 'protocols'
步骤2:在项目
库中对位于协议
子树中的文件进行一些更改
$ cd protocols
$ echo "foo" > some_file
$ git commit -a -m "added foo"
步骤 3:在 protocols
子仓库中创建一个分支,并将本地的 project/protocols
更改推送到该分支
我不确定如何最好地实现这一步...
一旦我的 subtree
更改成功推送到远程 protocols
仓库中的一个分支,我就可以创建一个 pull 请求,将这些更改合并回 protocols
的 master
分支。
问题:
我有一个本地副本的
protocols
。 我应该切换到该仓库,创建一个分支,然后切换回project
并将subtree
更改推送到本地protocols
仓库吗?我是否可以直接将
subtree
更改推送到我本地 protocols 仓库中一个尚未创建的新分支中?我是否可以直接将
subtree
更改推送到远程 protocols 仓库中一个尚未创建的新分支中?这是一个推荐的工作流吗?
git subtree split
命令,然后使用git push
将子树推送到其原始仓库。这个方法“基本上”可行,但是会导致一个无法合并到主分支的孤立分支,因此我无法像你建议的那样“创建拉取请求”。你有什么想法吗?谢谢! - yoyo