【问题标题】:Not understanding working with Git branches (integrated from Azure DevOps) in Visual Studio 2019不了解在 Visual Studio 2019 中使用 Git 分支(从 Azure DevOps 集成)
【发布时间】:2020-10-14 18:49:14
【问题描述】:

在使用 Azure Devops 和 Visual Studio 2019 中的 Git 方面相对较新,涉及多个分支(也从未在任何上下文中使用过 Git,所以一直在学习 Git,我认为我做得相当好取得进展)。但是,对我在这里概述的行为感到非常沮丧 - 我一定不明白如何让看起来应该发生的事情发生。

这是场景(应该是相当基本的 - 重点应该是):在 Azure Devops 中,我有一个组织。在该组织下是一个带有存储库的项目。在该存储库中,有一个 Visual Studio 2019 解决方案的 master 分支及其 .sln.csproj 以及代码文件等。

我进入 Visual Studio 2019 并连接到 Azure Devops,然后克隆该存储库。我在 VS 2019 中启动了解决方案。到目前为止一切顺利。

现在我必须修复错误。所以在 Visual Studio 中,我做了一个 create-a-new-branch 操作来创建一个名为“MyBugFix”的分支。我向下看 Visual Studio 窗口的右下角,并确保我选择了要工作的 MyBugFix 分支,而不是 master 分支。到目前为止一切顺利。

我对几个.cs 文件进行了一些代码更改。到目前为止,我一直很好。在之前的工作中,为了纠正另一个错误,此时我进行了同步以将错误修复添加到该错误修复分支中,然后再将这些代码更改合并到主分支中。都很好。

但是,在这个最新的练习中,在这一点上让我感到困惑的是,在代码更改方面,要区分 master 分支和从 master 分支创建的新的单独分支。

返回 2 段,我选择了 MyBugFix 分支来工作。正如我所说,在 VS2019 窗口的右下方(小通知铃图标的左侧),它说(我认为)我在 MyBugFix 分支工作。并且我对一些 .cs 文件进行了代码更改。

但是现在,如果你愿意的话,我需要访问主分支,以便构建主分支代码库并将 dll 发送给某人,比如说购买了该应用程序的新客户。

所以在我看来,为了实现这一点,我可以直接到 VS2019 窗口的右下角并选择“master”,这样现在它就会在左侧显示“master”通知铃图标而不是“MyBugFix”。

所以我这样做了,我的期望是,当我在解决方案资源管理器中查看代码时,特别是我已对其进行代码更改的 .cs 文件时,我不应该在这些文件中看到这些代码更改.cs 文件。对吧?

只有我能看到修改后的 .cs 文件。这些 .cs 文件仍然显示为已签出并进行了更改,并且我在其中看到了修改后的代码,这是我之前在 VS2019 窗口右下方选择“MyBugFix”分支时所做的修改。即使我以为我已经“切换”回了 master 分支。

我希望我能很好地解释这一点,让大家了解正在发生的事情以及我错过了什么,并且没有看到如何处理 VS2019 中的多个 git 分支。如果没有,请让我知道是否需要详细说明该场景。 30,000 英尺的总结是,我要做的就是从使用非主分支切换回主分支并构建主分支。 没有我为非主分支制作的代码模块。希望这是有道理的。

我会附上我一直提到的VS2019右下角的截图。 TIA :)

【问题讨论】:

  • 当您切换分支时,任何未提交的更改都会随之而来。因此,您要么需要提交这些更改,撤消这些更改,要么需要stash 它们。顺便说一句,我强烈建议从命令行学习使用 Git。 Visual Studio 将太多的 Git 抽象出来,您将无法了解幕后发生的事情。在 Powershell 中使用 Git CMD 或 Git(可能使用 Posh Git)。
  • 谢谢梅森。听起来像我的具体情况我需要做一个藏匿。我会检查一下。谢谢!
  • 藏匿处可能会变得凌乱。一般来说,我会提交并在提交中注明这是一项正在进行的工作(我什至使用简写“WIP”)。经常提交!这样你损失的工作更少。
  • 让我看看我是否明白...将我所做的代码更改提交到 MyBugFix 分支,对吗?(不是主分支)。
  • ... 然后我可以切换回主分支并进行构建,以便将主分支代码库的 dll 发送给客户 IOW。

标签: git visual-studio azure-devops


【解决方案1】:

当您切换分支时,任何未提交的更改都会随之而来。因此,即使您在 master 分支上,您仍然会看到您在 MyBugFix 分支上开始的那些未提交的更改。

所以你要么需要commit those changesundo those changes,要么需要stash

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 2019-10-24
    • 2020-05-09
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    相关资源
    最近更新 更多