我创建了一个分支来创建一个新特性。经过几次迭代后,我对结果很满意,并希望将其重新定位到master (或者合并,这不是问题所在)。
一些补充资料:
(1)我已经出版了这个分支。例如,我跑
git push --set-upstream origin my-branch
(2)我确信没有人在那个分支机构工作
(3)其他开发人员确实这样做了
git pull -r
到主分支
在对master
进行重基(然后将母版推到上游)之前,我想清理分支的git历史。例如,squash
、merge
和修改一些提交。
我知道,改变历史确实会给从事分支工作的其他开发人员带来痛苦。但是,考虑到上面的第2点和第3点,我是否存在更改提交并由其他开发人员将未使用的分支向上推到的问题?
发布于 2018-08-16 19:12:05
(2)我相信没有人在那个分支机构工作。
如果没有其他开发人员在处理您的特性分支,您可以将提交历史记录更改为您的分支。这不会引起冲突除非他们做了,
git fetch
,它从原点将新分支更新为本地分支。
然后是git checkout feautureA
,它将创建一个featureA
本地分支。
如果他们在featureA
分支上做了上述a没有任何更改,您可以对您的分支进行历史更改。但是其他开发人员只需要使用git reset
重置该特性分支。
(3)其他开发人员确实做了
git pull -r
如果他们在git pull -r
上使用master
分支,则git只更新master
分支。它不检查您的featureA
分支。
重定主从
我的建议是,除非你知道你在表演什么,否则永远不要把主人重新定位。
Merge
的特性分支进入母版,合并不删除任何内容。如果您是从其他分支(如XYZ
)中分离分支,则可能执行三次合并。看起来就像。
Master — — — — —
XYZ \ — — —
featureA \ — — —
如果将feature A
合并到master
中,则XYZ
提交也可能包含在master
中。
如果您想重新定位feature branch
看这儿。
最后,如果您认为您只在featureA
分支工作。您可以对该分支机构的历史进行更改。
如果您想要更改master branch
历史记录,您也需要与其他开发人员进行通信并进行相应的计划。由于这将是公共部门,其他人通常工作。
发布于 2018-08-16 14:12:26
别担心!没有人会有问题
你可以在你的树枝上做任何你想做的事,然后推它。Git会警告您,您必须使用:
git push -f
当您强制推送时,重写分支时,其他开发人员将在下次发出git fetch/pull命令时看到更改。
Git将指示分支已被强制更新为。
如果他们没有结帐,他们就不会注意到任何事情。如果他们签出了这个分支而没有改变,那么git就足够了,拉-r就足够了。否则,如果他们改变了它,就会成为朋友,但不会有问题。
https://stackoverflow.com/questions/51878801
复制相似问题