从TFS迁移到GIT,共享项目到nuget

2024-05-07

我所在的软件团队由 4-5 名开发人员组成,他们从事一个 TFS 项目。我们正在考虑将整个代码库移至 GIT。该代码库由约 50 个 Visual Studio (2013) 解决方案组成,分为约 300 个项目。引用项目中另一个程序集的首选过程是将项目添加到解决方案中,依此类推。我想这被认为有点混乱,但它有它的好处:

1:由于源代码已更新到最新,因此项目构建时将始终更新为最新。

2:创建发布分支时,会存储源状态的完整图片,并且在需要时可以轻松地重现发布。

在考虑迁移到 GIT 时,最简单的方法是简单地移动所有解决方案和项目,就像移动到单个 GIT 存储库一样。这引出了我的第一个问题。

在单个 GIT 存储库中分为 300 个项目的 50 个左右解决方案的集合会很难使用吗?我担心无法了解每个开发人员每天所做的更改。

另一种方法(我认为这是正确的方法)是摆脱共享项目制度,并将代码库划分为具有自己的 GIT 存储库的逻辑上划分的部分。 (我猜这会给我们留下大约 10-20 个存储库)。为了解决这个问题所引用的项目,我们正在考虑使用本地 nuget-server。

这引出了我的第二个问题(也是最后一个)。 看看上面提到的福利。这些功能还能保持吗?我们是否可以“自动更新”工作分支中的 nuget 引用,但将它们冻结到发布分支上的特定版本?


我担心无法了解每个开发人员每天所做的更改。

不,您不会失去这种概览,并且可以轻松衡量一位协作者的贡献(例如,在这个答案中 https://stackoverflow.com/a/4593065/6309)

这些功能还能保持吗?

是的:这 10-20 个项目将在一个父存储库中重新组合,因为子模块 http://git-scm.com/book/ch6-6.html.
并且您可以轻松地配置子模块以遵循分支 https://stackoverflow.com/a/20016830/6309,喜欢它的master branch.
有关该配置的更多信息,请参见“Git 子模块:指定分支/标签 https://stackoverflow.com/a/18799234/6309", and git submodule http://git-scm.com/docs/git-submodule.

  • 自动更新:

    git submodule update --remote --init --recursive
    
  • freeze:

    cd /parent/repo
    git add .
    git commit -m "Freeze all submodules SHA1"
    

正如所提到的杰西豪温 https://stackoverflow.com/users/736079/jessehouwing在评论中,Visual Studio 2013 及其原生 Git 支持 http://msdn.microsoft.com/en-us/library/hh850437.aspx尚不包括子模块。这是虽然要求很高 http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3606383-add-submodule-support-in-visual-studio-git-extensi.
Git 命令行仍然可用于使用子模块的更新/冻结步骤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从TFS迁移到GIT,共享项目到nuget 的相关文章

  • 包括来自raw.github.com的js

    我有一个 github com 演示页面 链接到https raw github com master file js https raw github com master file js这样我就不需要总是复制 js文件转移到gh pag
  • 为什么我使用某些 git 命令后终端变得无响应?

    我经常 真的每次 使用该命令后git log我的终端对进一步的输入没有响应 这是在 OSX 上 是否有一个我不知道的命令将使终端再次激活 而不是仅仅退出终端并重新开始 您正在使用一个无需滚动即可显示日志的程序 很可能less 可以通过按q
  • Git 合并删除文件

    这是第二次发生这种情况 当我进行合并时 我后来意识到正在合并的分支中的一些文件不再位于正在合并的分支中 最新的例子是我们有一个功能分支 我一直在合并主开发分支中的更改 合并后我们丢失了很多文件 并且它们现在不存在于功能分支中 为什么会出现这
  • 在“dotnet”中添加带有本地包文件的包

    使用dotnet命令行工具 如何添加对现有本地包的引用not用 NuGet 下载的 我尝试过将本地包添加到项目中bar with dotnet dotnet add package Users sakra foo bin Debug foo
  • git apply 不对文件进行任何更改

    我必须对我的存储库应用补丁并正在运行 git apply directory PWD xxxxx patch 由于我不会详细讨论的原因 我无法使用git am在这种情况下 我需要使用目录标志 吉特告诉我 gt git apply direc
  • egit:设置gitignore忽略所有eclipse项目文件

    我在 github 上有一个项目 我想从中删除所有与 eclipse 相关的文件 并允许克隆它的人使用他们想要的任何 ide 这是该项目 https github com vedi0boy Archipelo https github co
  • 如何在 Visual Studio 中将“nuget add”作为构建后事件运行?

    我已将命令添加到项目的 AfterBuild 部分 csproj如果它是发布配置 则会自动创建 NuGet 包的文件 正如下面的代码片段中所指定的 这部分运行良好
  • 使用 Git 部署时压缩 JS/CSS 文件

    我对 git 有点陌生 另外 这是我第一个自动化部署过程的项目 到目前为止 能够做到这一点真是太幸福了git push dev并上传文件 复制配置文件等 现在 当我推送到我的开发服务器时 我想缩小 JS CSS 文件 我正在考虑在服务器上安
  • 无法从 Git 扩展向 GitHub 进行身份验证?

    我只是在 Visual Studio 2010 中设置 Git 扩展 但无法真正使其工作 我无法进行身份验证 在 Git Extensions 中 如果我选择 Plugins gt GitHub 我可以添加用户 密码 API 令牌并选择 S
  • Git Push 远程:致命:包超出允许的最大大小

    我接到了一个大项目 客户想将其添加到github 我是一点一点添加的 然后发生的事情是我太贪心了 一次添加了太多文件 现在 无论我尝试什么 我都会不断收到此错误 我怎样才能解决这个问题 我试图回滚 但也许我做错了 git push Ente
  • 使用 Git 处理 subversion:忽略对跟踪文件的修改

    我目前正在使用 subversion 存储库 但我正在使用 git 在我的计算机上本地工作 它使工作变得更加容易 但也使 subversion 存储库中发生的一些不良行为变得非常明显 这给我带来了问题 拉取代码后 有一个有点复杂的本地构建过
  • 如何使用 PyGithub 创建新存储库

    如何使用 PyGithub 在 Github 上创建新的存储库 我特别想知道如何使用create repo http jacquev6 net PyGithub v1 github objects AuthenticatedUser htm
  • 永久删除 git 提交历史记录

    我需要永久且完全删除 git 存储库的提交历史记录并继续使用文件的当前版本 旧版本 提交不得以任何方式访问 我尝试创建一个新的主分支 删除所有其他分支 但是当我在 git bash 中尝试 git show xxxx 时 旧的提交继续显示
  • Azure Devops Pipeline YAML 中的 Git 标记名称

    Summary 如何获取 Azure Devops Pipeline YAML 文件中当前 git 标签的名称 我想做什么 我正在 Azure Devops 中设置构建管道 创建新的 git 标签时会触发管道 然后我想构建 docker 镜
  • 如何从 nuget 包中排除子目录和内容

    所以我有一个网站正在尝试打包用于 Octopus Deploy 我有以下文件夹结构 Web Views WantThis Dontwantthis WantThis1 WantThis2 lots more Scripts 我试图排除 Do
  • 仅将单个文件放入 git 子模块/存储库中

    我在 git 源代码存储库中有一个特定文件 其中包含生产设置 密码 我想限制此文件 以便只有制作团队的成员才能看到它 但是 我想控制它的变化 我考虑过在 git 中使用子模块 然后限制对新存储库的访问 然而 git 似乎需要子模块的整个子目
  • 如何设置“阅读文档”以使 Sphinx autodoc 选项发挥作用?

    我的项目不是使用 autodoc 构建的 我遇到了关于我的项目未在 autodoc 中构建的常见问题 https read the docs readthedocs org en latest faq html my project isn
  • 返回到 Github Desktop 中的上一个提交

    我正在尝试使用 GitHub Desktop 即 GUI 应用程序 而不是命令行 返回到先前的提交 在同一分支上 我认为这是一个核心功能 因为它是首先使用源代码控制的主要原因 我可以看到可以恢复提交 但这并不是我真正想要的 因为它创建了一个
  • WPF XAML 定义的 MenuItem 重用开始工作,然后消失

    以下简单代码尝试在两个单独的菜单上重用 Window Resources 中定义的 MenuItem
  • git filter-repo:它可以在特定分支上使用吗?

    我正在读什么git filter repo可以做 因为我想用它做一个小实验 我有这个存储库 我只想从中获取一个目录的历史记录 比如说 master 但我不想为主人工作 我想创建一个新分支 例如filter repo test然后让git f

随机推荐