Skip to content

Latest commit

 

History

History
436 lines (316 loc) · 6.72 KB

File metadata and controls

436 lines (316 loc) · 6.72 KB

Git版本控制详细教程

由于您提到没有Git使用经验,这里为您提供完整的Git操作指南。

什么是Git?

Git是一个分布式版本控制系统,可以:

  • 跟踪文件变更历史
  • 协作开发
  • 备份代码
  • 回滚到之前的版本

第一次使用Git

1. 安装Git(如果未安装)

Linux (Ubuntu/Debian):

sudo apt update
sudo apt install git

Windows:https://git-scm.com/download/win 下载安装

Mac:

brew install git

2. 配置Git用户信息

# 设置用户名(全局配置)
git config --global user.name "您的姓名"

# 设置邮箱(全局配置)
git config --global user.email "your.email@example.com"

# 查看配置
git config --list

项目Git初始化

步骤1:进入项目目录

cd /mnt/c/Users/HW/Desktop/yuanhechen/DataProcessing

步骤2:初始化Git仓库

# 初始化Git仓库
git init

# 查看状态
git status

步骤3:创建.gitignore文件

# 创建.gitignore文件,忽略不需要版本控制的文件
cat > .gitignore << 'EOF'
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# 虚拟环境
venv/
env/
ENV/

# IDE
.vscode/
.idea/
*.swp
*.swo

# 日志文件
logs/
*.log

# 临时文件
temp/
tmp/
*.tmp

# 数据文件(可选,根据需要调整)
data/input/*
data/output/*
!data/input/.gitkeep
!data/output/.gitkeep

# 配置文件中的敏感信息
config/local_settings.yaml
EOF

步骤4:添加文件到Git

# 创建保持目录的空文件
touch data/input/.gitkeep
touch data/output/.gitkeep
touch logs/.gitkeep

# 添加所有文件到暂存区
git add .

# 查看要提交的文件
git status

步骤5:第一次提交

# 提交代码
git commit -m "初始提交:多模态数据处理项目"

# 查看提交历史
git log --oneline

日常Git操作

查看状态

# 查看文件状态
git status

# 查看具体改动
git diff

# 查看已暂存的改动
git diff --staged

添加和提交更改

# 添加特定文件
git add src/main.py

# 添加所有更改的文件
git add .

# 添加所有.py文件
git add "*.py"

# 提交更改
git commit -m "描述您的更改"

# 一步完成添加和提交(仅适用于已跟踪的文件)
git commit -am "更新说明"

查看历史

# 查看提交历史
git log

# 简洁的历史记录
git log --oneline

# 查看最近3次提交
git log -3

# 查看特定文件的历史
git log -- src/main.py

版本回滚

# 查看提交ID
git log --oneline

# 回滚到特定提交(危险操作!)
git reset --hard <提交ID>

# 更安全的回滚:创建新提交来撤销
git revert <提交ID>

# 撤销最后一次提交但保留更改
git reset --soft HEAD~1

分支操作

创建和切换分支

# 查看所有分支
git branch

# 创建新分支
git branch feature/new-processor

# 切换到新分支
git checkout feature/new-processor

# 创建并切换到新分支(一步完成)
git checkout -b feature/image-enhancement

# 切换回主分支
git checkout main

合并分支

# 切换到主分支
git checkout main

# 合并功能分支
git merge feature/new-processor

# 删除已合并的分支
git branch -d feature/new-processor

远程仓库操作

连接到GitHub/GitLab

# 添加远程仓库
git remote add origin https://github.com/username/repository.git

# 查看远程仓库
git remote -v

# 推送到远程仓库
git push -u origin main

# 后续推送
git push

# 从远程仓库拉取更新
git pull

克隆项目

# 克隆远程仓库
git clone https://github.com/username/repository.git

# 克隆到指定目录
git clone https://github.com/username/repository.git my-project

实用Git命令

文件操作

# 重命名文件
git mv old-name.py new-name.py

# 删除文件
git rm file.py

# 停止跟踪文件但保留在工作目录
git rm --cached file.py

暂存操作

# 暂存当前更改
git stash

# 查看暂存列表
git stash list

# 恢复最近的暂存
git stash pop

# 恢复特定暂存
git stash apply stash@{1}

查看和比较

# 查看特定提交的详情
git show <提交ID>

# 比较两个提交
git diff <提交ID1>..<提交ID2>

# 查看文件在特定提交时的内容
git show <提交ID>:path/to/file.py

最佳实践

1. 提交信息规范

# 好的提交信息格式
git commit -m "添加图片处理器功能"
git commit -m "修复PDF解析错误"
git commit -m "更新配置文件格式"

# 更详细的提交信息
git commit -m "添加图片处理器功能

- 实现ImageProcessor类
- 集成多模态模型接口
- 添加错误处理和日志记录"

2. 频繁提交

# 建议经常提交小的更改
git add src/processors/new_processor.py
git commit -m "添加新的文档处理器"

git add tests/test_new_processor.py
git commit -m "添加新处理器的单元测试"

3. 使用分支

# 为每个功能创建分支
git checkout -b feature/add-excel-support
# 开发...
git add .
git commit -m "添加Excel文件支持"
git checkout main
git merge feature/add-excel-support

常见问题解决

1. 撤销错误的添加

# 撤销git add
git reset HEAD file.py

# 撤销所有添加
git reset HEAD

2. 修改最后一次提交

# 修改最后一次提交信息
git commit --amend -m "新的提交信息"

# 添加文件到最后一次提交
git add forgotten-file.py
git commit --amend --no-edit

3. 解决合并冲突

# 当合并时出现冲突
git merge feature-branch
# 编辑冲突文件,解决冲突标记
# 添加解决后的文件
git add conflicted-file.py
git commit -m "解决合并冲突"

项目的Git工作流建议

1. 日常开发流程

# 1. 开始新功能
git checkout -b feature/new-feature

# 2. 开发和测试
# 编辑文件...
git add .
git commit -m "实现新功能的核心逻辑"

# 3. 继续开发
# 编辑更多文件...
git add .
git commit -m "添加单元测试"

# 4. 完成功能
git checkout main
git merge feature/new-feature
git branch -d feature/new-feature

# 5. 推送到远程(如果有)
git push

2. 备份重要节点

# 在重要milestone创建标签
git tag -a v1.0.0 -m "第一个稳定版本"
git tag -a v1.1.0 -m "添加图片处理功能"

# 查看标签
git tag

# 推送标签到远程
git push --tags

这个教程应该能帮助您从零开始使用Git管理您的多模态数据处理项目。记住,Git是一个强大的工具,开始时可能觉得复杂,但随着使用会变得越来越简单!