缺少以下内容:我想将提交消息推送到子树,但只推送适用于该树的消息。我该怎么做?
我有两个项目Master
和Slave
。 Slave
已Master
通过lib/slave
签出git subtree merge --prefix=lib/slave --squash projects/slave
的子树,其中projects/slave
是Slave
签出的master
分支:
分支机构:
主 projects / slave→slave
现在我正在我的Slave
分支上工作,提交属于两个项目的文件,一切顺利。现在我想将更改推回到lib/slave
:
如果我进行正常合并,那么无论是否修改--squash
中的任何文件,我都会为每次提交提交提交。或者我可以执行master
并且只获得一次提交,但是我丢失了日志消息。
那么如何获取相应的日志消息?例如如果我的Slave
日志历史记录是:
我希望将其添加到{{1}}:
答案 0 :(得分:7)
对于您想要的行为,我认为您必须从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)
第一个命令根据目录创建一个新的子树,然后将其推送到另一个项目。
理论上,你应该能够直接推送到工作副本,但在实践中这对我不起作用。