# Version_Control **Repository Path**: leding-top/Version_Control ## Basic Information - **Project Name**: Version_Control - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-19 - **Last Updated**: 2025-09-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: 版本控制 ## README # 版本管理工具 一个简单易用的文件版本管理工具,帮助您管理和回溯文件的不同版本。 ## 功能特点 - 📁 在需要管理的文件夹中创建隐藏的版本管理目录 - 📸 创建当前文件夹的快照,并记录时间戳和备注 - 🔄 根据时间戳和备注回溯到任意历史版本,支持完全覆盖当前文件状态 - 🗑️ 删除不需要的历史版本 - 🖥️ 美观友好的图形用户界面(GUI),基于PyQt5开发 - 📋 在界面中展示详细的文件变更描述 - 📦 可打包成独立的可执行文件(.exe) ## 使用方法 ### 1. 直接运行Python脚本 如果您的电脑上已安装Python 3.6或更高版本,可以直接运行主程序: ```bash python version_control.py ``` ### 2. 运行打包后的可执行文件 如果您没有安装Python,可以使用打包好的可执行文件: 1. 运行`setup.py`脚本来生成可执行文件: ```bash python setup.py ``` 2. 打包完成后,会在当前目录生成`VersionControl.exe`文件 3. 双击`VersionControl.exe`文件即可运行程序 ### 3. 基本操作步骤 1. **选择文件夹**:点击"选择文件夹"按钮,选择您想要进行版本管理的文件夹 2. **创建快照**:点击"创建快照"按钮,输入版本备注,系统会自动记录时间戳 3. **查看历史版本**:在版本历史列表中可以查看所有已创建的快照及其详细变更信息 4. **恢复版本**:选择一个历史版本,点击"恢复版本"按钮,确认后即可恢复到该版本(会完全覆盖当前文件状态) 5. **删除版本**:选择一个历史版本,点击"删除版本"按钮,确认后即可删除该版本 ## 工作原理 1. 当您选择一个文件夹后,程序会在默认存储位置创建版本管理目录(不再在被管理文件夹内创建) 2. 每次创建快照时,程序会比较当前文件夹与上一版本的差异,只存储变更的文件,并记录详细的变更信息 3. 所有的版本信息(时间戳、格式化时间、备注、变更内容)都会保存在版本管理目录中 4. 恢复版本时,程序会将指定版本的文件复制回主文件夹,确保完全覆盖当前文件状态(删除不在快照中的文件) ## 注意事项 1. 请确保您有足够的磁盘空间来存储多个版本的文件 2. 恢复版本操作会覆盖当前文件夹中的所有文件,请谨慎操作 3. 在恢复版本前,建议先创建当前状态的快照作为备份 4. 版本管理文件夹是程序内部管理的,请不要手动删除或修改其中的内容 5. 大型文件或文件夹可能会导致快照创建和恢复过程较慢 ## 技术细节 - 使用Python的PyQt5库创建现代美观的图形用户界面 - 使用标准库中的os、shutil、json等模块实现文件操作和数据存储 - 使用哈希算法进行文件比较和唯一标识 - 使用PyInstaller进行打包,生成独立的可执行文件 ## 开发环境 - Python 3.6或更高版本 - 推荐使用虚拟环境 ## 依赖项 - PyQt5 (用于创建图形用户界面) - PyInstaller (用于打包成exe文件) ## 打包方法 运行以下命令来生成可执行文件: ```bash python setup.py ``` 或者直接使用PyInstaller: ```bash pip install pyinstaller PyQt5 pyinstaller -F -w --name VersionControl version_control.py ``` ## 许可证 本项目采用MIT许可证 - 详情请查看LICENSE文件 ## 免责声明 本工具仅供学习和个人使用,对于使用过程中可能出现的数据丢失或损坏,作者不承担任何责任。请在使用前确保您的重要数据已经做好备份。