git - Git 和备份本地提交
问题描述
我一直在四处寻找其他人在这种情况下的做法,但我无法找到明确的答案。
我们当前的工作流程如下(顺便说一句,我们将 Azure DevOps 用于我们的 GIT 存储库):
- 我们有一个远程“开发”分支
- 开发人员从远程/开发创建一个新分支(例如远程/FeatureA)
- 创建 FeatureA 的本地副本
- 工作在本地完成并提交到本地/FeatureA 分支
- 作为旁注,如果更改合并到远程/开发...
- 我们将这些更改拉入本地/开发
- 执行本地/FeatureA 到本地/开发的变基
- 作为旁注,如果更改合并到远程/开发...
- 一旦本地/FeatureA 完成,它就会被推送到远程/FeatureA
- 提出拉取请求以将远程/FeatureA 合并到远程/开发中
但是,任何在本地完成的提交(例如本地/FeatureA)无论如何都不会备份,并且如果工作站因任何原因而死机,则可能会丢失这些更改。我在想有可能将这些提交推送到远程分支(远程/FeatureA),以便它们始终在云中备份(类似于此海报的要求...... Git 工作流程和变基与合并问题)。但是,如果其他开发人员对远程/开发进行任何更改,这样做似乎会导致重新定位的悲痛。
有没有人对此有很好的解决方案?也就是说,在准备好合并到远程/开发分支之前,我如何确保在继续处理功能的同时备份我的代码更改/提交?我想我可以看看硬件解决方案……例如,将便携式 HDD 连接到我的工作站并进行计划备份……但我认为可能会有更优雅的解决方案。
解决方案
您确实可以将您的功能分支备份到远程仓库,这样做是一个好习惯。
那么,如果remote/Development
更改了并且您必须重新设置功能分支,会发生什么?
您像往常一样对本地部分进行操作(拉取新更改,Development
然后在其上重新调整您的功能),是的,此时远程备份已被重新设置“过时”。但是由于您没有在此分支上干扰其他任何人的工作(或者我从您的描述中猜到了?),因此您可以重新push --force
定位本地功能分支的结果。
我想你有点误解了关于
“但如果其他开发人员对远程/开发进行任何更改,这样做似乎会导致重新定位的悲痛”
...这对于像您这里这样的共享稳定分支是正确的Development
,但对于非共享的(当然,直到它们最终通过 PR 合并)特性分支不是这样。
(有趣的是,在我目前所在的团队中,我们碰巧有一个非常相似的工作流程。)
推荐阅读
- sql - 如果语句包含 UNION、INTERSECT 或 EXCEPT 运算符(变体),则 ORDER BY 项必须出现在选择列表中
- asp.net-core - 使用参数调用控制器时 Stream 意外结束,并且仅在 IE11 上
- java - 无冲突计算整数数组哈希的最快方法
- arangodb - 如何使用_id将json文件导入/上传到arangoDB?
- r - R中矩阵上的函数
- mysql - MYSQL查询:获取按数据分组的最新日期
- php - 我在 foreach 里面的 foreach 中得到一个空表:php
- python - 以阻塞方式“什么都不做”的正确方法是什么?
- android - 如何使定期后台工作(15 分钟的定期间隔)在奥利奥及以后无限期地运行?
- r - 改变列值而不是列名