Git是目前世界上最先进的分布式版本控制系统,由Linux之父Linus Torvalds创建。它能够高效地管理项目版本历史,支持多人协作开发,是现代软件开发的必备工具。

Git是我们管理自己项目代码,下载(clone)他人代码,安装各类依赖、三方库等的重要工具。

资源下载

1. Git安装与配置

1.1 Windows环境安装

下载Git for Windows

  1. 下载适用于Windows的Git安装程序
  2. 双击运行安装程序,按照向导完成安装

在安装过程中,有几个关键配置选项需要特别注意:

选择组件

  • Git Bash Here(右键菜单集成)
  • Git GUI Here(图形界面集成)
  • Git LFS (Large File Support) - 强烈建议勾选,用于管理大文件
  • Additional icons(桌面图标)

验证安装

在任意目录下,按住Shift键并右键点击,选择Open Git Bash Here,打开Git Bash验证安装:

# 检查Git版本
git --version

# 检查Git LFS版本
git lfs version

显示正常的版本信息,说明安装成功。

1.2 Git基本配置

用户信息配置

# 配置用户名(将"Your Name"替换为你的姓名)
git config --global user.name "Your Name"

# 配置邮箱(将"your.email@example.com"替换为你的邮箱)
git config --global user.email "your.email@example.com"

# 查看配置
git config --global --list

SSH密钥配置

# 生成SSH密钥
ssh-keygen -t ed25519 -C "your.email@example.com"

# Enter file in which to save the key (/home/ubuntu/.ssh/id_ed25519) 此为系统询问将密钥位置保存至哪里,按回车即可

# Enter passphrase (empty for no passphrase) 此为设置短密码 回车即可

# Enter same passphrase again 此为确认短密码 回车即可

# 启动SSH代理:以实现不必每次git push时都需要输入密码
eval "$(ssh-agent -s)"

# 添加SSH密钥到代理
ssh-add ~/.ssh/id_ed25519

# 复制公钥到剪贴板(Windows Git Bash)
cat ~/.ssh/id_ed25519.pub
# 然后手动复制输出内容

将复制的公钥添加到 GitHub、Gitee 等平台的 SSH Keys 设置中,即可实现本地与远程仓库的同步。

Git SSH密钥配置示意图

GitHub 是全球最大的开源代码托管平台,提供了丰富的资源和社区支持,而 Gitee 是国内最大的开源代码托管平台,我们会在后面的教程中对它们进行详细的介绍。

2. Git LFS配置与使用

在需要通过下载大型文件,如大语言模型文件时要保证git lfs可用:

# 在具体仓库中初始化Git LFS
git lfs install

3. Git基本操作

3.1 仓库管理

创建新仓库

打开Git Bash终端并执行以下命令:

# 初始化新仓库
cd my-project
git init

# 或者从 GitHub 或 Gitee 克隆现有仓库
git clone https://github.com/eogee/any4any.git
git clone git@github.com:eogee/any4any.git  # 使用SSH

3.2 基本工作流程

添加和提交文件

这里被处理的文件是指相对于上一次提交,发生了变化的文件,没有任何变化的文件,不会进行任何git操作:

# 添加单个文件
git add README.md

# 添加多个文件
git add file1.py file2.py

# 添加所有文件
git add .
git add --all

# 提交更改
git commit -m "描述性的提交信息"

推送和拉取

推送是指将项目变更情况和内容推送至远程仓库,一般为前文提到的GitHubGitee拉取是指将远程的变更情况和内容同步至本地:

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

# 从远程仓库拉取
git pull
git pull origin main

3.3 分支管理

分支管理主要服务于多人协同工作,每个人可以基于一个仓库创建不同分支并互不影响,以下是一些关于分支的操作命令:

基本分支操作

# 查看所有分支
git branch
git branch -a  # 包括远程分支

# 创建新分支
git branch feature-branch
git checkout -b feature-branch  # 创建并切换到新分支

# 切换分支
git checkout main
git switch main  # 新的切换命令

# 合并分支
git checkout main
git merge feature-branch

# 删除分支
git branch -d feature-branch  # 删除已合并的分支
git branch -D feature-branch  # 强制删除分支

3.4 标签管理

标签管理主要服务于项目的迭代升级,可以为每一个版本的项目创建单独的标签:

# 创建标签
git tag v1.0.0
git tag -a v1.0.0 -m "版本1.0.0发布"

# 查看标签
git tag
git show v1.0.0

# 推送标签到远程
git push origin v1.0.0
git push origin --tags  # 推送所有标签

# 删除标签
git tag -d v1.0.0  # 删除本地标签
git push origin :refs/tags/v1.0.0  # 删除远程标签

3.5 gitignore文件

git clonegit init 创建的仓库中通常包含一个 .gitignore 文件,它就是 Git 仓库的忽略文件,内容一般为这样:

CLAUDE.md # 忽略CLAUDE.md这个文件

# 注意:以下 .md 会忽略所有 .md 文件(包括 README.md),请根据实际需要配置
# .md

md/ # 忽略md文件夹下的所有文件

# ...

被忽略的文件不会被提交到远程仓库,也不会被拉取到本地仓库,在本地仓库中文件名一般为灰色的。

.gitignore文件可以规定所有我们不想或不能进行更新和同步的文件,比如一些资源文件、模型文件、依赖文件、安全信息文件(存放个人apikey/密码)等。写好忽略文件对项目的规范性和安全性都至关重要。

3.6 项目回滚(放弃更改)

当我们需要对单位时间内(上一次提交至今)某些修改进行操作时,我们可以通过git进行代码修改的撤回,可以批量或单一文件撤回,你可以使用以下命令:

git restore <file> # 放弃更改某文件

git restore . # 放弃更改所有文件更改

你也可以通过VS Code的中的快捷功能实现:

放弃更改功能实现示意

将鼠标悬停在对应的文件名上,即可实现文件的放弃更改操作,这样代码会恢复到上一次提交的状态。

项目回滚还包括对已经push、commit的更改进行回滚,由于作为初学者暂不涉及,这里不再进行赘述。

4. 完整本地与远程仓库同步流程

  • 在仓库站点(GitHub 或 Gitee)创建仓库
  • git clone https://github.com/eogee/example.git 克隆仓库到本地
  • 在本地打开仓库并新增或修改文件
  • git add . 添加所有文件到暂存区
  • git commit -m "描述性的提交信息" 提交更改
  • git push 推送更改到远程仓库
  • 前往 GitHub 或 Gitee 查看仓库,确认更改已同步

5. 总结

Git是现代软件开发不可或缺的工具,掌握Git的基本使用对于开发者来说至关重要。Git LFS作为Git的扩展,有效解决了大文件管理的问题,特别适合包含大文件的AI项目。

持续练习和实践是掌握Git的关键,建议在实际项目中多多运用git命令,逐步提高熟练度。