我是使用Git已有一段时间的一个小团队的负责人,但是我们都不是特别强大的专家,因此我们正在尝试找出最佳的工作方式。具体来说,当您已经将工作推送到服务器时,所有的书籍和站点都警告您不要重新定级。但是,我的阅读似乎表明,只有其他人根据您的推动完成了工作,这才是问题。
我们通常会暂时进行工作以保持安全,但是我们没有多个人在同一分支机构工作,至少因为分支机构改基地会受益。例如,我们创建了一个分支来修复错误,只有一个人在该分支上工作,直到需要集成到主分支为止。
在这种情况下,即使代码已被推送到中央存储库,还是可以安全地重新设置基准,还是仍然存在其他开发人员感到困惑和困扰的可能性?
推送到服务器似乎是备份进行中的工作的最佳方法(而不是只有几天或几周的时间,只有大量代码坐在笔记本电脑上),但是这种做法似乎与重新设置基准所获得的清洁度直接冲突。我不是在寻求关于最佳处理方式的意见,而是在寻找对如果我们重新构建被推入的分支的基础会出现的问题的描述,但是没有其他人使用过。
答案 0 :(得分:3)
常见建议“不要重新整理已经发布的内容” 当然有点夸张了。潜在的问题是,一旦提交提交已被发布然后又被其他人获取,那么在重写提交后,更新和修复该用户的存储库就会有些痛苦。因此,制定简单的规则来记住一个团队可以避免很多问题,这要容易得多。
它主要适用于使用单个集中式存储库作为事实来源的常见Git工作流程。多用户共享一个分支的地方。在那里,绝对不建议更改已推送的提交。因为即使您认为自己很安全,也仍然有可能有人已经拿走了它。
但是对于组织良好的团队来说,每个团队成员都使用私人分支机构,并且有一个良好的政策规定,这些私人分支机构不应被其他人碰触,或者只是对这些分支机构不应抱有期望,因此没有重新定位是错误的。
也有公共开源项目,其中单个团队成员在公共存储库中有不遵循该规则的个人分支。那很好。您只需要确保正确通信即可。
并且即使以拉取请求为例:在许多情况下,拉取请求是从同一存储库或其分支之一上的分支创建的。在审阅阶段,反复更改或重新设置更改并不罕见。为了使拉取请求正常工作,这是必需的。但从技术上讲,它仍然是已发布提交的基础。
tl; dr:只正确传达分支意图,切记不要在公共分支和共享分支上建立基础。并且不期望其他团队成员的个人分支机构具有连续性。答案 1 :(得分:2)
但是,我的阅读似乎表明,只有其他人根据您的推动完成工作了,这才是问题。
是的,没错。
如果您将约定分支倒带的约定放到位并在团队中广为人知,请继续进行设置。我通常使用约定,以用户名为前缀的分支是该团队成员的游乐场,并且其创建者可以按他们认为合适的方式倒带它们。只要您同意,在多人工作时,甚至可以倒带,而其他人都可以根据新版本进行倒带。
通常,一旦完成第一轮审阅,就不再进行倒带,并且审阅注释在单独的提交中解决,但是值得注意的是,在Linux和Git本身的开发过程中,提交通常会根据审阅注释进行重写,因此即使这是可能的(当您以后需要将其一分为二时,它会导致提交更干净的提交,但更难重新审阅)。