【问题标题】:Git: is there a functionality like the TFS shelveset?Git:有没有像 TFS 搁置集这样的功能?
【发布时间】:2013-04-09 13:17:28
【问题描述】:

我尝试保存“统一差异”,但找不到应用它的方法。

补丁适用于提交的更改,我不希望提交没有适当的代码审查。

想法赞赏!

【问题讨论】:

标签: git version-control


【解决方案1】:

搁置集只是临时分支。所以 - 只是建立新的分支。 Git 中的分支非常轻量级,因此从服务器创建、推送和删除非常简单和快速。您可以将其命名为 wip-blabla 以通知它尚未准备好。

【讨论】:

    【解决方案2】:

    git stash 是我见过的最接近搁置集的东西。这是一个本地预提交副本,一旦您再次开始工作,您就可以将其提取到您的分支中。

    git stash
    git checkout somebranch
    git checkout branchwithstashedstuff
    git stash pop
    

    git stash pop 结合了 git stash apply 和 git stash drop 对最新的 stash。

    如果您有多个存储,您可以执行 git stash list 和 git stash apply stash@{n} 来获取第 n 个存储。

    【讨论】:

    • 在 Visual Studio 2019 中,隐藏包含在 GUI 中,并带有一些选项。这是一篇很好的文章:thomasclaudiushuber.com/2019/04/10/…
    • 注意:如果它是本地副本,则无助于将您的代码备份到另一台服务器/机器,我认为 Shelveset 可以。
    【解决方案3】:

    Git 没有任何东西像 TFS Shelvesets 一样干净、优雅且与个人空间相关。

    在服务器上创建一个搁置集,位于您自己的个人存储桶下。与树枝不同,它永远不会出现在源树中,也不会混淆任何普通的水。它以与已提交代码相同的备份保证来存储您的工作,而不会将其与已提交代码的空格混合。

    我们在提交之前 使用搁置集进行代码审查,因此我们永远不会在任何地方真正提交糟糕的代码。我们将它用作备份,以便我可以将工作保存在安全的地方,以防我的工作站融化。 Git 没有完成这些事情,因为任何“分支”或“镜像”的使用都是一个额外的步骤,有人可能会搞砸,有人可能会忘记清理。

    然而,Git 所做的是为您提供一个可以进行审核的确切位置……拉取请求。如果你擅长使用 Git,那么你必须擅长将糟糕的代码提交到本地仓库,因为这就是事情的发展方式,不会让人们的生活变得复杂。在 Pulls 之前不要担心评论,请在 Pulls 进行评论。

    【讨论】:

      【解决方案4】:

      提交只是将更改保存到您的“本地”存储库,这是一种非常个人的行为。 那么在 Commit 之后 Push 之前 CR 有什么问题呢?

      对我来说,patch 非常适合与 shelve-set 类似的功能。

      【讨论】:

        【解决方案5】:

        我认为你可能想要做的镜像搁置集是创建另一个远程存储库。 git remote add "changesetname" "changeseturl" (Git 允许你拥有任意数量) 在审查过程中 - 您可以将变更集的更改合并到您的原点 - 然后您可以在完成后删除变更集。

        【讨论】:

          【解决方案6】:

          在 Visual Studio 中,如果您将源代码控制插件从 git 切换到 Visual Studio Team Foundation Server(工具 -> 选项 -> 源代码控制 -> 插件选择)。你可以像 TFS 一样做。

          【讨论】:

            猜你喜欢
            • 2013-10-02
            • 1970-01-01
            • 1970-01-01
            • 2018-01-08
            • 1970-01-01
            • 1970-01-01
            • 2016-02-26
            • 2016-12-10
            • 1970-01-01
            相关资源
            最近更新 更多