我将Perfoce的Repo克隆到Git本地及其所有历史记录,称之为SubProj
,然后我将其推送到远程仓库,并使用该远程仓库将SubProj
合并到{ {1}}。
无法将部分历史记录从Perforce导入Git,@all
或SuperProj
。无论如何,它很好,我删除了本地仓库及其遥控器。
现在,Perforce软件仓库none
发生了变化,因此我再次使用所有历史记录克隆SubProj
,我想推送然后与SubProj
合并,但我不希望整个历史(只有新的变化)。
说SuperProj
有这段历史,它是本地的:
A - 乙 - C - d - 电子 - F - G ^ - ħ
我知道我们可以从最早的提交开始,直到specific commit。例如:
SubProj
将git push SubProjRemote <commit C on master>:master
推送到遥控器。
可是:
我可以只将A--B--C
推送到远程仓库吗?
我可以全部推送,但只能合并E--F--G--H
吗?
答案 0 :(得分:1)
如果要将分支的特定部分合并到另一个分支,可以使用rebase的into功能。一旦你在你想要的提交+分支提交的分支上,你就可以运行:
git rebase --onto&lt; branch_to_rebase_off_of&gt; &LT; commit_to_stop_before&gt; &LT; first_commit_to_include&gt;
对于您提交E到H但不是A-D的提交示例,您可以运行以下命令,将提交哈希替换为D和H:
git rebase --onto other_branch D H
分支现在应该具有other_branch的基础,但是它应该也应用了提交E到H.然后你可以在任何需要的地方推送这个分支。