Git 的工作流程

Posted

技术标签:

【中文标题】Git 的工作流程【英文标题】:Workflow for Git 【发布时间】:2017-06-09 18:12:56 【问题描述】:

我们目前正在从 TFVC 迁移到 Git 源代码控制(在 TFS 中),因此遇到了一些成长的烦恼。一方面,我习惯了搁置的概念。搁置集允许我在 TFS 服务器上进行快速备份,而不必担心在签入/合并到给定分支时显示在存储库中的历史记录/描述。因此,我使用搁置集作为备份机制,以确保每天在我离开之前将我当前工作代码的副本存储在服务器上(我们这里的硬件还不够坚固)。

我现在希望使用 Git 重现这种风格的工作流程。有人建议我使用个人“功能”分支提交/推送我正在进行的工作 (WIP) 更改,然后在拉取请求交互式 rebase 之前压缩提交的提交历史。这是解决这个问题的最好方法吗?我遇到的问题是我遇到了另一个间接相关的错误,在 WIP 中合并主更改导致了一堆重命名/删除冲突。

对于它的价值,我被告知了 stash,但我所看到的任何地方都表明 stash 只是本地的,所以我没有远程备份。如果有比我的 cmets 描述的更好的工作流程,我会全力以赴。

【问题讨论】:

嗨@Shawn,我多年前就知道git,所以我理解这种痛苦......当我找到处于这种情况的人时,我总是推荐这篇文章:themeteorchef.com/blog/defining-a-simple-git-workflow/#!跨度> 相关:Is it possible to push a git stash to a remote repository? 你的意思是你已经从TFVC迁移到TFS中的Git了? @Cece-MSFT 正确我已经编辑以反映这一点。 @Hackerman 好文章,谢谢。不幸的是,它并没有解决我在远程备份 WIP 的担忧。 【参考方案1】:

你是对的,当你不想提交一半完成的工作以便稍后回到这一点时,你可以使用git stash 命令。但您不会有远程备份。

由于您想要进行远程备份,因此创建新分支将是一个不错的选择。 Git 中的分支非常轻量级,因此从服务器创建、推送和删除非常简单和快速。如果你想让别人查看你的代码,你可以创建一个Pull Request,将代码合并到master分支后,删除这个分支。

【讨论】:

在最终提交完成功能或错误修复之前,这是否仍需要重新定位/压缩以将历史记录降低到一个描述而不是所有正在进行的工作描述?如果我理解你的建议,建议遵循我将分支视为搁置集的方法,你也可以继续添加,但问题是 rebase/squash 步骤。也许 git 没有办法解决这个问题。

以上是关于Git 的工作流程的主要内容,如果未能解决你的问题,请参考以下文章

Git工程开发实践——Git分布式工作流程

Git工作原理

Git 工作流程

[GIT] Git 工作流程(Git flow, Github flow flow, Git lab flow)

git-flow工作流程

Git之深入解析如何使用Git的分布式工作流程与如何管理多人开发贡献的项目