如何根据另一个repo提交

时间:2015-10-13 10:51:03

标签: git git-rebase

我有两个git存储库。一个包含基本开发,另一个包含实际项目,应基于此基础。

所以我创建了两个遥控器:原点 base

首先,我克隆了空的原始存储库。然后我拉出了基本遥控器(base / master)的主分支并将其推送到origin remote(origin / develop)的develop分支。我先在本地做了这个,然后把它推到远程仓库。

到目前为止,这么好。这有效。当使用rebase在base / master中出现新提交时,还更新origin / develop分支。然后,新提交也会出现在我的项目存储库中。太好了!

现在我的问题是,在原始仓库中存在的其他分支会发生什么?我的意思是发展是我的主要分支。所有更新都将在那里进行,这样可行。

但是,当其他人创建了例如基于develop的功能分支,该分支不会自动获得更新。所以我需要使用develop来修改这个功能分支,我猜。

这是使用develop:

重新定义功能分支后的历史记录

after rebasing feature branch with develop

看起来非常完美。功能分支的提交仍然是独立的,并且基于下面的两个提交,这些提交已经从origin / master重新定位。

当我尝试按此时,遥控器将拒绝推送。执行拉动后,我得到了这个结果:

after pull

这些是提交ID(前4次提交):

fbcc9cb (feature/proto)  [TASK] Update iw_base
e3b03c9 (feature/proto)  [TASK] Exclude README.md from direct access
d0e006f (develop)        [TASK] Update iw_base
02bdedd (develop)        [TASK] Exclude README.md from direct access

提交现在在功能分支中重复。当我稍后将pull请求与develop分支合并时,这些提交将显示重复。我的最后一个问题是:我怎样才能避免这种情况?

我可以执行强制推送功能分支...但我听说这不是推荐的方式,因为当其他分支基于它们时,它可能会导致冲突。

谢谢!

0 个答案:

没有答案