首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改其他团队成员未使用的公共分支的git历史

更改其他团队成员未使用的公共分支的git历史
EN

Stack Overflow用户
提问于 2018-08-16 13:54:43
回答 2查看 177关注 0票数 1

我创建了一个分支来创建一个新特性。经过几次迭代后,我对结果很满意,并希望将其重新定位到master (或者合并,这不是问题所在)。

一些补充资料:

(1)我已经出版了这个分支。例如,我跑

代码语言:javascript
运行
复制
git push --set-upstream origin my-branch

(2)我确信没有人在那个分支机构工作

(3)其他开发人员确实这样做了

代码语言:javascript
运行
复制
git pull -r

分支

在对master进行重基(然后将母版推到上游)之前,我想清理分支的git历史。例如,squashmerge和修改一些提交。

我知道,改变历史确实会给从事分支工作的其他开发人员带来痛苦。但是,考虑到上面的第2点和第3点,我是否存在更改提交并由其他开发人员将未使用的分支向上推到的问题?

EN

回答 2

Stack Overflow用户

发布于 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 )中分离分支,则可能执行三次合并。看起来就像。

代码语言:javascript
运行
复制
Master — — — — —    
XYZ             \ — — —    
featureA               \ — — —

如果将feature A合并到master中,则XYZ提交也可能包含在master中。

如果您想重新定位feature branch 看这儿。

最后,如果您认为您只在featureA分支工作。您可以对该分支机构的历史进行更改。

如果您想要更改master branch历史记录,您也需要与其他开发人员进行通信并进行相应的计划。由于这将是公共部门,其他人通常工作。

票数 1
EN

Stack Overflow用户

发布于 2018-08-16 14:12:26

别担心!没有人会有问题

你可以在你的树枝上做任何你想做的事,然后推它。Git会警告您,您必须使用:

代码语言:javascript
运行
复制
git push -f

当您强制推送时,重写分支时,其他开发人员将在下次发出git fetch/pull命令时看到更改。

Git将指示分支已被强制更新为

如果他们没有结帐,他们就不会注意到任何事情。如果他们签出了这个分支而没有改变,那么git就足够了,拉-r就足够了。否则,如果他们改变了它,就会成为朋友,但不会有问题。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51878801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档