如果您正在使用源代码管理,您需要将本地工作区与服务器同步(“获取”最新代码),然后您的同事所做的任何更改将被复制到您的 PC。
如果您在进行更改之前没有“获取”最新代码,那么您可能必须将您的更改与其他人的更改合并,这可能是一个困难、耗时甚至危险的过程 - 特别是如果您使用默认的 Visual Studio 自动合并过程,这通常会做错事,导致代码基本上损坏(例如,就像您所描述的那样,看起来您删除了同事的作品)。
使用源代码控制的最佳方式是“很少且经常”的方法:
- 在开始任何新工作之前获取最新的源代码,以便您的 PC 尽可能保持最新。
- 经常“获取”最新代码通常是一种好习惯(例如,我每天早上第一件事就是这样做),以便尽早标记并处理任何合并冲突。在合并之前等待的时间越长,合并过程就越糟糕。(警告:在你得到它之前检查你的构建系统,确保服务器上的当前版本的代码正在运行——你不想把损坏的代码放到你的电脑上,因为它可能会阻止你工作)。
- 安排尽可能多的小增量步骤,以便在完成后安全地签入(而不是在数百个文件上工作 3 个月,然后将其作为一项重大更改转储到系统上)
- 当您准备好签入时,获取最新代码、重建并重新测试您的更改,以确保它们在与最新程序代码集成时仍然有效。仅在一切正常时才签入。
另请注意,当您尝试编辑文件时,源代码控制提供程序可能会自动为您“获取”该文件的最新版本(这可能导致 Visual Studio 告诉您它已重新加载文件,并可能解释您为什么说“更新”有时需要一段时间,因为直到您开始编辑最近被其他人更改的新文件时才会发生这种情况)。如果是这种情况,那么事实是您没有“更新”整套源代码,只有一个文件 - 在这种情况下,您确实需要获取源代码的所有最新更改(如果您不您可能会发现它是不可编译的,或者(更糟糕的是)编译但由于只有部分代码是最新的而表现出未定义的行为)
最后,签入代码时的一个非常好的做法是浏览您正在签入的文件列表,并将它们与最新的服务器代码逐一进行比较,以查看您所做的更改。这听起来可能很费力,但它有几个好处:
- 它会提醒您所做的事情,这有时有助于填写签入注释以清楚地描述您的所有更改并确保您不会错过重要说明。
- 您会很容易地发现在合并过程中被搞砸的任何东西 - 将会有一些您知道自己没有接触过的似乎被创建或删除的代码块。因此,您将能够在签入之前发现并解决这些问题,而不是通过“删除”他们的更改来惹恼您的同事。
- 我发现这对于查找我在签入之前忘记取出的临时调试代码非常有用。
- 有时您甚至可能对即将签入的一些代码进行双重检查,然后想“嗯?我为什么要这样做?”。然后你可能会决定重新检查甚至重写你认为好的代码。
最后提示:您在编辑中显示的选项仅与您 PC 上的另一个程序对您 PC 上的文件所做的更改有关。如果其他用户进行更改并将其签入源代码管理,这些选项将无效。只有当您的源代码控制系统将这些更改复制到您的 PC 硬盘驱动器时,您可能会看到 Visual Studio 对这些更改做出反应(取决于您的源代码控制系统与 VS 的集成程度)。