awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

版本控制系统

排名更新于 2026年6月30日

For a version control system for software development, the strongest matches are asdf-vm/asdf (asdf-vm is a unified CLI version manager that supports), volta-cli/volta (Volta is a dedicated version manager for the JavaScript) and rbenv/rbenv (rbenv is a dedicated Ruby version manager that uses). yyuu/pyenv and pyenv-win/pyenv-win round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.

探索最优秀的版本控制系统。通过功能、活跃度和社区支持对比热门工具,找到最适合你项目的方案。

版本控制系统

用 AI 发现最棒的仓库。我们将通过 AI 为您搜索最匹配的仓库。
  • asdf-vm/asdfasdf-vm 的头像

    asdf-vm/asdf

    25,086在 GitHub 上查看↗

    This project is a command-line tool designed to manage multiple versions of programming language runtimes and development tools on a single machine. It provides a unified interface for installing and switching between different versions of software, ensuring that specific tool versions are consistently applied across various development environments. The system distinguishes itself through a modular, plugin-driven architecture that allows for the integration of new languages and tools via external scripts. It utilizes a shim-based execution mechanism that intercepts command calls, automatical

    asdf-vm is a unified CLI version manager that supports multiple languages via a plugin system, uses shims for seamless version switching, and automatically detects per-project versions through .tool-versions files, making it an ideal fit for managing development tool versions.

    GoVersion Manager Compatibility LayersVersion SwitchersVersion Pinning Systems
    在 GitHub 上查看↗25,086
  • volta-cli/voltavolta-cli 的头像

    volta-cli/volta

    13,009在 GitHub 上查看↗

    Volta is a cross-platform toolchain orchestrator and JavaScript toolchain manager. It functions as a version manager for Node.js and related package managers, allowing for the installation and coordination of multiple runtimes across a system. The project operates as a project-based version switcher, automatically detecting and switching to the required tool versions based on the current directory. This ensures environment consistency across different developer machines by resolving versions through project configuration.

    Volta is a dedicated version manager for the JavaScript toolchain (Node.js, npm, Yarn) that automatically switches versions per project via command shims, fitting the version-manager category cleanly but limited to one language ecosystem rather than covering multiple programming languages as requested.

    RustCommand ShimsVersion Switchers
    在 GitHub 上查看↗13,009
  • rbenv/rbenvrbenv 的头像

    rbenv/rbenv

    16,710在 GitHub 上查看↗

    rbenv is a Ruby version manager and shell environment manager designed to install, switch between, and manage multiple versions of the Ruby programming language. It functions as a project runtime isolator and an extensible versioning framework that ensures the correct Ruby binaries are executed based on the current context. The system uses a shim-based command interception model to resolve the active version before delegating execution to the binary. It allows for locking specific Ruby versions and environment variables to individual directories, ensuring project environment isolation. The ar

    rbenv is a dedicated Ruby version manager that uses shim-based per-project switching and shell integration, fitting the version-manager category but limited to a single language rather than the multi-language support you're looking for.

    ShellPer-Project Runtime AssignmentsRuntime Version SwitchingShim Regeneration
    在 GitHub 上查看↗16,710
  • yyuu/pyenvyyuu 的头像

    yyuu/pyenv

    44,899在 GitHub 上查看↗

    pyenv is a Python version manager and runtime orchestrator that allows for the installation and switching of multiple Python versions on a single machine without affecting the system installation. It functions as a shell-based version controller that manages binaries through shims to redirect executable calls to specific versions. The tool is a plugin-extensible system, allowing users to add custom subcommands and logic via shell script plugins. This architecture enables the extension of the command line interface through a dedicated plugins directory. It provides capabilities for side-by-si

    pyenv is a shim-based Python version manager with plugins and per-project settings, but it only manages Python — it does not support the multi-language switching your search requires.

    ShellPer-Project Runtime AssignmentsShell-Based
    在 GitHub 上查看↗44,899
  • pyenv-win/pyenv-winpyenv-win 的头像

    pyenv-win/pyenv-win

    7,006在 GitHub 上查看↗

    pyenv-win is a version manager for Windows that enables the installation and switching of multiple Python versions without affecting the system global installation. It functions as a multi-version installer and environment controller that ensures isolation and reproducibility across different projects. The tool uses a shim-based routing system to intercept executable calls and direct them to specific versioned binaries. This allows for both system-wide default configurations and local directory-level overrides, where a specific version is automatically activated when entering a project folder

    pyenv-win is a dedicated Python version manager for Windows with shim-based switching, automatic per-project version detection, and both global and local overrides, but it only supports a single language rather than the multi-language tool management this search requires.

    VBScriptRuntime Version SwitchingShim Regeneration
    在 GitHub 上查看↗7,006
  • leoafarias/fvmleoafarias 的头像

    leoafarias/fvm

    5,465在 GitHub 上查看↗

    fvm is a version manager and orchestrator for the Flutter and Dart software development kits. It enables the installation and management of multiple SDK versions on a single machine, allowing different projects to run on different versions simultaneously to avoid conflicts. The tool provides mechanisms for pinning specific SDK versions to projects via configuration files, ensuring that all collaborators and build environments use an identical toolset. It also supports the use of custom SDK forks hosted in external repositories instead of official channels. Beyond local development, it serves

    fvm is a dedicated version manager for Flutter and Dart SDKs that supports per-project version pinning and symlink-based switching, but it only covers the Flutter/Dart ecosystem and lacks the multi-language plugin system this search expects.

    DartRuntime Version SwitchingVersion Pinning Systems
    在 GitHub 上查看↗5,465
  • creationix/nvmcreationix 的头像

    creationix/nvm

    93,948在 GitHub 上查看↗

    nvm is a Node.js version manager implemented as a POSIX bash script. It serves as a shell environment manager and runtime orchestrator for installing, switching, and managing multiple versions of the Node.js runtime on POSIX systems. The tool allows for the automation of runtime switching by reading configuration files in project directories to select the required version. It supports the management of long-term support releases and the migration of global packages between different installed versions of the runtime. The project covers broader capabilities including runtime management throug

    nvm is a version manager specifically for Node.js, fitting the category but lacking multi-language support since it only handles a single runtime environment.

    ShellRuntime Version SwitchingVersion Selection Interfaces
    在 GitHub 上查看↗93,948
  • jdx/misejdx 的头像

    jdx/mise

    29,929在 GitHub 上查看↗

    Mise is a development environment orchestrator that manages software runtimes, environment variables, and task execution. It functions as a version manager and task runner, providing a unified interface to synchronize project-specific configurations and dependencies across different machines. By automating the installation and switching of tools, it ensures that development environments remain consistent and reproducible. The project distinguishes itself through a hierarchical configuration system that automatically discovers settings by traversing the directory tree. It uses shim-based comma

    Mise is a CLI-based version manager with a plugin system for multiple languages and runtimes, using shim-based switching and automatic per-project configuration via directory traversal, exactly matching the requested features.

    RustEnvironment ManagersContext-Aware Environment ManagersDevelopment Environment Orchestrators
    在 GitHub 上查看↗29,929
  • gvcgo/version-managergvcgo 的头像

    gvcgo/version-manager

    1,332在 GitHub 上查看↗

    This project is a command-line utility designed to manage development environments by installing, switching, and pinning multiple versions of programming languages, SDKs, runtimes, and database engines. It functions as a centralized controller for complex toolchains, ensuring that specific software versions are maintained consistently across different machines and project directories. The tool distinguishes itself through an interactive terminal interface that allows users to browse and select software versions visually, reducing the need to memorize complex command-line arguments. It also pr

    This is a general-purpose version manager that handles thousands of SDKs with a terminal UI, fitting the need to install and switch between multiple development tool versions across languages.

    GoCommand ShimsVersion Pinning Systems
    在 GitHub 上查看↗1,332
  • sdkman/sdkman-clisdkman 的头像

    sdkman/sdkman-cli

    6,791在 GitHub 上查看↗

    SDKMAN is a command-line utility for installing, tracking, and managing multiple versions of software development kits on Unix systems. It functions as a software installer and environment manager that automates the downloading and configuration of development tools for Linux and macOS. The tool enables the installation of parallel SDK versions on a single system and provides the capability to toggle between them to change the active environment for a shell session. It specifically facilitates the setup of Java development environments, including the management of various Java Development Kit

    SDKMAN is a command-line version manager focused on JVM-based development kits (JDK, Gradle, Maven) with per-project configuration via .sdkmanrc files and shell integration, but its narrower ecosystem coverage (not a general multi‑language tool) means it is a solid match rather than a flagship for broader language version management.

    ShellRuntime Version Switching
    在 GitHub 上查看↗6,791
  • moovweb/gvmmoovweb 的头像

    moovweb/gvm

    11,645在 GitHub 上查看↗

    Gvm is a Go version manager, environment orchestrator, and dependency isolator. It provides a system for installing, removing, and switching between different versions of the Go programming language on a single machine. The tool manages native dependencies and creates isolated package sets to prevent version conflicts between different project environments. It uses environment variable overlays and directory isolation to link native code without modifying the host operating system. The software covers the full language lifecycle, including remote version cataloging, active version switching,

    Gvm is a dedicated Go version manager that handles installing, switching, and isolating multiple Go versions on a single machine, but it only supports one language rather than the multi-language scope this search is after.

    ShellRuntime Version Switching
    在 GitHub 上查看↗11,645
  • jenv/jenvjenv 的头像

    jenv/jenv

    6,621在 GitHub 上查看↗

    Manage your Java environment

    jenv is a version manager for Java environments, so it fits the category but is limited to a single language rather than supporting multiple languages as you need.

    ShellRuntime Version Switching
    在 GitHub 上查看↗6,621
  • rvm/rvmrvm 的头像

    rvm/rvm

    5,192在 GitHub 上查看↗

    RVM is a Ruby version manager and build automation tool designed to install and switch between multiple versions of the Ruby interpreter on a single system. It serves as a dependency isolator and shell environment wrapper, allowing for the creation of named library sets to prevent version conflicts between different projects. The project distinguishes itself as a deployment orchestrator that automates the provisioning of Ruby runtimes across remote servers and build agents. It generates standalone executable wrappers to ensure specific runtimes and library sets are loaded for scheduled tasks,

    RVM is a Ruby-specific version manager that installs and switches between multiple Ruby interpreters with per-project version detection and shell integration, but it only covers a single language rather than the multi-language setup you're looking for.

    ShellRuntime Version SwitchingShell Initialization Scripts
    在 GitHub 上查看↗5,192
  • coreybutler/nvm-windowscoreybutler 的头像

    coreybutler/nvm-windows

    46,816在 GitHub 上查看↗

    This project is a command-line utility designed to manage multiple runtime versions on a single machine. It enables developers to install, remove, and toggle between different versions to satisfy project-specific dependency requirements, ensuring that each environment remains isolated to prevent version conflicts or path overlaps. The tool functions by storing distinct runtime versions in separate, isolated directories and utilizing symbolic links to point to the currently active version. It orchestrates these file system operations through a unified command-line interface that modifies syste

    nvm-windows is a CLI-based version manager for Node.js on Windows that installs, switches, and manages versions with per-project auto-detection and symlink-based switching, fitting the core category but limited to a single language rather than multi-language support.

    GoCommand Line Interfaces
    在 GitHub 上查看↗46,816
  • nvm-sh/nvmnvm-sh 的头像

    nvm-sh/nvm

    93,825在 GitHub 上查看↗

    This project is a command-line tool designed for managing multiple runtime versions on a local machine. It functions as a shell-based environment manager that enables users to install, switch between, and maintain different versions of a runtime to support project-specific requirements or diverse shell sessions. By dynamically updating system paths and environment variables, it provides a consistent interface for runtime version control across various Unix-like operating systems. The tool distinguishes itself through its portable, POSIX-compliant shell implementation, which ensures reliable e

    nvm is a command-line version manager specifically for Node.js, letting you install and switch between Node versions via the CLI with per-project .nvmrc support, but it covers only a single runtime rather than multiple languages or tools.

    ShellShell-Based
    在 GitHub 上查看↗93,825
  • pyenv/pyenvpyenv 的头像

    pyenv/pyenv

    44,895在 GitHub 上查看↗

    This project is a command-line tool designed to manage multiple isolated language runtime versions on a single development machine. It enables users to install, switch between, and maintain different runtime versions, ensuring that project-specific requirements are met without conflicting with system-wide software. The tool distinguishes itself through a shim-based execution environment that intercepts system calls and dynamically routes them to the correct runtime version based on the current directory. By traversing the file system hierarchy to locate configuration files, it automatically a

    pyenv is a version manager for Python runtimes that uses shim-based switching, automatic per-project version detection, and shell integration, but it only supports Python rather than the multiple languages your search targets.

    ShellVersion ManagersBuild And DeploymentBuild Systems
    在 GitHub 上查看↗44,895
  • schniz/fnmSchniz 的头像

    Schniz/fnm

    24,020在 GitHub 上查看↗

    This utility is a command-line tool designed for managing multiple Node.js runtime versions on local development machines. It functions as a cross-platform manager that enables users to install, switch, and synchronize runtime versions across Windows, macOS, and Linux environments. The tool automates environment configuration by detecting project-specific version requirements through directory-traversal resolution. It maintains consistency by dynamically updating shell paths and environment variables, allowing for automatic version switching as users navigate between different project directo

    fnm is a CLI tool for managing multiple Node.js versions with automatic per-project switching, fitting the version manager category, but it is limited to Node.js rather than supporting multiple programming languages as the search requests.

    RustNode.js Version ManagersCross-Platform Development ToolsRuntime Management & Utilities
    在 GitHub 上查看↗24,020
  • nodenv/nodenvnodenv 的头像

    nodenv/nodenv

    2,379在 GitHub 上查看↗

    Manage your app's Node.js environment

    nodenv lets you install and switch between multiple Node.js versions with per-project and global settings, but it is limited to Node.js only and does not support multiple languages itself, so it partially fits the search for a multi-language version manager.

    ShellCommand Line UtilitiesEnvironment ManagementNode.js Version Management
    在 GitHub 上查看↗2,379
  • sstephenson/rbenvsstephenson 的头像

    sstephenson/rbenv

    16,711在 GitHub 上查看↗

    rbenv is a Ruby version manager and shell shim environment manager. It allows for the installation of multiple Ruby versions on a single machine and coordinates the selection of the active version based on the current directory or shell session. The tool functions as an extensible command line framework that intercepts executable calls using shell shims. These shims route requests to the selected language version, ensuring environment isolation by storing binaries in independent directories. The system includes capabilities for language runtime administration, including the ability to downlo

    rbenv is a shim-based Ruby version manager that provides per-project version selection and shell integration, but it is Ruby-only, missing the multi-language support this search asks for.

    ShellCommand Interception ShimsDirectory-Based Version ResolutionEnvironment Isolation
    在 GitHub 上查看↗16,711
一览前 10 名对比
仓库Star 数语言许可证最后推送
asdf-vm/asdf25.1KGomit2026年2月9日
volta-cli/volta13KRustNOASSERTION2025年11月15日
rbenv/rbenv16.7KShellMIT2026年6月22日
yyuu/pyenv44.9KShellMIT2026年6月14日
pyenv-win/pyenv-win7KVBScriptmit2026年2月20日
leoafarias/fvm5.5KDartMIT2026年6月22日
creationix/nvm93.9KShellMIT2026年6月15日
jdx/mise29.9KRustMIT2026年6月23日
gvcgo/version-manager1.3KGoMIT2025年11月20日
sdkman/sdkman-cli6.8KShellApache-2.02026年6月15日

Related searches

  • 源代码版本控制系统
  • 软件开发版本控制系统
  • Version control extensions
  • 机器学习数据版本控制系统
  • Git 与版本控制工具
  • 用于提示词版本控制和管理的工具
  • 为数据库提供 Git 风格的分支管理
  • 用于浏览和管理 git 仓库的 GUI 客户端