下面的简短内容是:我想将提交消息推送到子树,但仅限于适用于该树的消息。我该怎么做呢?
我有两个项目,Master
and Slave
. Slave
被检出为子树Master
签出到lib/slave
via git subtree merge --prefix=lib/slave --squash projects/slave
where projects/slave
是一个分支Slave
签出到:
分支机构:
掌握
项目/从站 → 从站
现在我正在努力我的master
分支,提交属于两个项目的文件,一切都很顺利。现在我想将更改推回到Slave
:
- git checkout 从属
- git合并???掌握
如果我进行正常的合并,我会得到每次提交到 master 的提交,无论其中是否有任何文件lib/slave
被修改。或者我可以做一个--squash
并且只得到一次提交,但我丢失了日志消息。
那么如何获取适当的日志消息呢?例如如果我的master
日志历史记录是:
- 添加图像到母版
- 仅在从站中修改文件
- 更多更改仅限于 master
- 修改master和slave中的文件
我希望将其添加到Slave
:
- 仅在从站中修改文件
- 修改master和slave中的文件
对于你想要的行为,我认为你必须推动Master
,我不知道如何从中提取子树更改Slave
.
推送更改:
(in Master)
$ git subtree split --prefix=lib/slave -b split-branch
$ git push <bare Slave repo> split-branch:master
$ git branch -d split-branch
$ cd /path/to/Slave/working/copy
$ git pull # (now in Slave)
第一个命令根据目录创建一个新的子树,然后将其推送到另一个项目。
理论上,您应该能够直接推送到工作副本,但实际上这对我不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)