[英]Push changes from git subtree to a branch for a pull request
如何創建對git subtree
本地更改,然后將這些更改推送到子樹的repo中的分支,以便我可以創建一個pull請求,將該分支的更改合並到子樹的master
?
假設我有兩個回購, project
和protocols
,這兩個都在我的控制之下。
步驟1:在project
倉庫中添加protocols
作為subtree
$ 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:在project
庫中對protocols
子樹中的文件進行一些更改
$ cd protocols
$ echo "foo" > some_file
$ git commit -a -m "added foo"
步驟3:在protocols
倉庫中創建一個分支,並將我的本地更改從project/protocols
子樹推送到該分支
??
我不確定如何最好地實現這一目標......
一旦我的subtree
更改成功推送到遠程protocols
倉庫中的分支,我就可以創建一個拉取請求,將這些更改合並回protocols
master
。
問題:
我有一份本地protocols
副本。 我是否應該更改到該存儲庫,創建一個分支,然后更改回project
並將subtree
更改推送到我的本地protocols
庫?
我可以將subtree
更改直接推送到我的本地 protocols
倉庫中的新分支 (尚未創建)嗎?
我可以將subtree
更改直接推送到 遠程 protocols
倉庫中的新分支 (尚未創建)嗎?
這是推薦的工作流程嗎?
在協議倉庫中創建一個分支,並將我的本地更改從項目/協議子樹推送到該分支
您可以使用單個命令, subtree push
,指定新的遠程分支來實現:
$ git subtree push --prefix=protocols protocols feature
這將在遠程存儲庫protocols
創建一個新的分支feature
您現在可以創建一個拉取請求,將feature
分支合並回協議的master
分支。
將分支合並回來后,您可以使用--squash
的pull
來更新子樹
$ git subtree pull --prefix=protocols protocols master --squash
這將創建另一個提交, protocols
repo中的所有更改壓縮為一個,然后合並提交合並到您的project
倉庫
注意這個方法有一個小小的怪癖,那就是你的project
倉庫中會有兩個提交,其中包含對protocols
倉庫的更改。
project
repo的protocols
子樹中進行的原始提交 --squash
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.