Git 并备份本地提交
Git and backup local commits
我一直在四处寻找其他人在这种情况下的做法,但我无法找到明确的答案。
我们当前的工作流程如下(顺便说一句,我们的 GIT 存储库使用 Azure DevOps):
- 我们有一个远程 'Development' 分支
- 开发人员从 remote/Development 创建了一个新分支(例如 remote/FeatureA)
- 已创建 FeatureA 的本地副本
- 工作在本地完成并提交给 local/FeatureA 分支
- 作为旁注,如果更改合并到 remote/Development ...
- 我们将这些更改拉入 local/Development
- 将 local/FeatureA 变基到 local/Development
- 一旦local/FeatureA完成,它被推送到remote/FeatureA
- 提出拉取请求以将 remote/FeatureA 合并到 remote/Development
但是,任何在本地完成的提交(例如 local/FeatureA)都不会以任何方式进行备份,并且如果工作站因任何原因死亡,则有可能丢失这些更改。我在想也许可以将这些提交推送到远程分支 (remote/FeatureA),以便它们始终备份在云中(类似于此海报的要求...Git workflow and rebase vs merge questions)。但是,如果其他开发人员对 remote/Development 进行了任何更改,这样做似乎会导致变基的悲痛。
有没有人对此有好的解决方案?也就是说,在准备好合并到 remote/Development 分支之前,如何确保在继续处理功能的同时备份我的代码 changes/commits?我想我可以看看硬件解决方案......例如将便携式硬盘连接到我的工作站并安排备份...但我认为可能有更优雅的解决方案。
您确实可以将您的功能分支备份到远程仓库,是这样做的好习惯。
那么,如果 remote/Development
发生变化并且您必须重新设置您的功能分支会怎样?
您像往常一样对本地部分进行操作(在 Development
上拉取新更改,然后在其上重新设置您的功能),是的,此时,远程备份是 "outdated"变基。但是,由于您没有在 this 分支上干扰其他人的工作(或者我从您的描述中猜到了?),您可以 push --force
重新设置本地功能分支的结果.
我认为您对
的部分有一点误解
"But it appears that doing this would cause grief in rebasing should any changes be made to remote/Development by another developer"
...这对于像您的 Development
这样的共享稳定分支是正确的,但对于未共享(当然,直到它们最终通过 PR 合并)功能分支不是这样。
(有趣的是,我们碰巧在我现在所在的团队中有非常相似的工作流程。)
我一直在四处寻找其他人在这种情况下的做法,但我无法找到明确的答案。
我们当前的工作流程如下(顺便说一句,我们的 GIT 存储库使用 Azure DevOps):
- 我们有一个远程 'Development' 分支
- 开发人员从 remote/Development 创建了一个新分支(例如 remote/FeatureA)
- 已创建 FeatureA 的本地副本
- 工作在本地完成并提交给 local/FeatureA 分支
- 作为旁注,如果更改合并到 remote/Development ...
- 我们将这些更改拉入 local/Development
- 将 local/FeatureA 变基到 local/Development
- 作为旁注,如果更改合并到 remote/Development ...
- 一旦local/FeatureA完成,它被推送到remote/FeatureA
- 提出拉取请求以将 remote/FeatureA 合并到 remote/Development
但是,任何在本地完成的提交(例如 local/FeatureA)都不会以任何方式进行备份,并且如果工作站因任何原因死亡,则有可能丢失这些更改。我在想也许可以将这些提交推送到远程分支 (remote/FeatureA),以便它们始终备份在云中(类似于此海报的要求...Git workflow and rebase vs merge questions)。但是,如果其他开发人员对 remote/Development 进行了任何更改,这样做似乎会导致变基的悲痛。
有没有人对此有好的解决方案?也就是说,在准备好合并到 remote/Development 分支之前,如何确保在继续处理功能的同时备份我的代码 changes/commits?我想我可以看看硬件解决方案......例如将便携式硬盘连接到我的工作站并安排备份...但我认为可能有更优雅的解决方案。
您确实可以将您的功能分支备份到远程仓库,是这样做的好习惯。
那么,如果 remote/Development
发生变化并且您必须重新设置您的功能分支会怎样?
您像往常一样对本地部分进行操作(在 Development
上拉取新更改,然后在其上重新设置您的功能),是的,此时,远程备份是 "outdated"变基。但是,由于您没有在 this 分支上干扰其他人的工作(或者我从您的描述中猜到了?),您可以 push --force
重新设置本地功能分支的结果.
我认为您对
的部分有一点误解"But it appears that doing this would cause grief in rebasing should any changes be made to remote/Development by another developer"
...这对于像您的 Development
这样的共享稳定分支是正确的,但对于未共享(当然,直到它们最终通过 PR 合并)功能分支不是这样。
(有趣的是,我们碰巧在我现在所在的团队中有非常相似的工作流程。)