1. 为什么选择Gitee进行代码托管
作为国内开发者常用的代码托管平台,Gitee相比其他平台有几个显著优势。首先是访问速度,由于服务器部署在国内,无论是克隆仓库还是提交代码,响应速度都比国际平台快很多。其次是全中文界面,对英语不太熟练的开发者特别友好。最重要的是,Gitee提供了完整的Git功能支持,包括代码托管、Issue跟踪、Pull Request等核心功能。
我在多个项目中使用Gitee的经验是,它对个人开发者和小团队特别友好。免费账户就能创建不限数量的私有仓库,这对需要保护代码隐私的开发者来说是个福音。另外,Gitee的社区生态也在不断完善,很多优秀的开源项目都在上面有镜像。
2. 环境准备与Git安装
2.1 系统环境检查
在开始安装Git前,建议先检查系统环境。打开Windows搜索栏,输入"cmd"打开命令提示符,输入以下命令查看系统版本:
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"这个命令会显示你的Windows版本信息。Git对Windows 10及以上版本的支持最好,如果是较老的系统可能需要额外配置。
2.2 Git安装的多种方式
原文提到使用winget安装Git,这是Windows 11默认包管理器的安装方式。但根据我的经验,还有几种备选方案:
- 官方安装包:从Git官网下载最新安装包,可以自定义安装选项
- Chocolatey:如果你使用这个第三方包管理器,可以用
choco install git命令 - Scoop:另一个流行的包管理器,安装命令是
scoop install git
我推荐新手使用官方安装包,因为安装向导会帮你配置好所有环境变量,减少后续使用中的问题。安装过程中有几个关键选项需要注意:
- 选择默认编辑器(建议选VS Code)
- 调整PATH环境(选第二个"Git from the command line and also from 3rd-party software")
- 配置行尾转换(选"Checkout as-is, commit as-is")
2.3 安装后验证与基础配置
安装完成后,除了检查版本号,还应该进行一些基础配置:
git config --global core.autocrlf false git config --global core.safecrlf warn git config --global core.ignorecase false这些配置可以避免Windows和Unix系统间换行符差异导致的问题。特别是团队协作时,这些设置能减少很多麻烦。
3. 项目初始化与仓库准备
3.1 创建合适的项目目录
原文提到要创建无中文无空格的文件夹,这个建议非常重要。根据我的踩坑经验,还有几个注意事项:
- 路径尽量短且有意义,比如
D:\projects\myapp - 避免使用特殊字符,包括
!@#$%^&*()等 - 不要放在系统目录(如Program Files)下,可能遇到权限问题
- 如果项目需要长期维护,建议建立清晰的目录结构
我通常会在项目根目录下创建这些子目录:
/src存放源代码/docs存放文档/build存放构建输出/test存放测试代码
3.2 Git仓库初始化细节
执行git init后,实际上Git在项目目录下创建了一个隐藏的.git文件夹。这个文件夹包含了版本控制所需的所有数据。有几点值得注意:
- 不要手动修改.git目录下的文件
- 如果需要重新初始化,可以先删除.git文件夹
- 初始化后立即添加.gitignore文件是个好习惯
.gitignore文件示例:
# 忽略操作系统生成的文件 .DS_Store Thumbs.db # 忽略IDE相关文件 .idea/ .vscode/ # 忽略依赖目录 node_modules/ # 忽略构建输出 build/ dist/4. Gitee仓库配置与连接
4.1 创建Gitee远程仓库
在开始推送代码前,需要先在Gitee上创建一个空仓库。创建时有几个选项需要注意:
- 仓库名称:建议使用英文小写和连字符,如
my-project - 仓库描述:简明扼要说明项目用途
- 公开/私有:根据项目性质选择
- 初始化选项:建议选择不初始化任何文件
创建完成后,记下仓库的HTTPS地址,格式为https://gitee.com/你的用户名/仓库名.git
4.2 配置本地Git用户信息
除了全局的用户名和邮箱,还可以为特定仓库设置不同的用户信息:
git config user.name "项目专用名称" git config user.email "project-email@example.com"这在你有多个Gitee账号时特别有用。可以通过以下命令检查当前配置:
git config --list4.3 远程仓库连接的高级选项
原文使用的是HTTPS方式连接,但SSH方式更安全方便。以下是配置SSH连接的步骤:
- 生成SSH密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"将公钥(~/.ssh/id_rsa.pub)内容添加到Gitee的SSH密钥设置中
测试连接:
ssh -T git@gitee.com- 使用SSH地址添加远程仓库:
git remote add origin git@gitee.com:你的用户名/仓库名.gitSSH方式的优势是不需要每次推送都输入密码,适合频繁提交的场景。
5. 文件添加与提交的深入解析
5.1 git add命令的多种用法
git add .命令会添加所有未跟踪和修改的文件,但有时我们需要更精确的控制:
- 添加特定文件:
git add filename.txt- 添加多个文件:
git add file1.txt file2.txt- 添加整个目录:
git add dirname/- 交互式添加:
git add -p交互式添加特别有用,它会逐个显示变更,让你决定是否加入暂存区。
5.2 提交信息的艺术
原文使用了简单的.作为提交信息,但在实际项目中,好的提交信息非常重要。我遵循这些规则:
- 第一行不超过50个字符,简要说明变更
- 空一行
- 详细说明变更的原因和影响
- 使用现在时态,如"Fix bug"而非"Fixed bug"
示例:
修复用户登录失败问题 当用户密码包含特殊字符时,后端API返回500错误。 修改了密码验证逻辑,现在可以正确处理所有ASCII字符。5.3 忽略文件的正确方式
有时我们会不小心提交了不该提交的文件,如编译产物或本地配置文件。要移除这些文件:
- 从Git中删除但保留本地文件:
git rm --cached config.local.json- 更新.gitignore文件
- 提交这些变更
6. 推送代码的完整流程
6.1 首次推送的特殊处理
第一次推送时,需要使用-u参数设置上游分支:
git push -u origin master之后就可以简化为:
git push6.2 处理推送冲突
如果其他人已经推送了变更,你需要先拉取最新代码:
git pull origin master解决可能的冲突后,再重新推送。
6.3 推送失败排查指南
常见推送问题及解决方法:
权限不足:
- 检查用户名密码是否正确
- 确认有仓库的写入权限
- 尝试重新生成访问令牌
网络问题:
- 检查是否能ping通gitee.com
- 尝试切换HTTPS和SSH协议
- 检查代理设置
仓库不存在:
- 确认远程仓库地址正确
- 检查仓库是否已被删除
7. 实际工作中的最佳实践
7.1 分支管理策略
不建议直接在master分支上开发,应该:
- 创建功能分支:
git checkout -b feature/login在功能分支上开发并提交
完成后合并到master:
git checkout master git merge feature/login7.2 提交频率与粒度
好的提交习惯包括:
- 小步提交:每个提交只解决一个问题
- 频繁提交:完成一个小功能就提交一次
- 原子性提交:一个提交应该是一个完整的逻辑单元
7.3 使用.gitignore的智慧
一个好的.gitignore文件应该包含:
- 操作系统特定文件
- IDE和编辑器生成文件
- 依赖目录
- 构建产物
- 敏感信息(如配置文件、密钥)
可以在https://github.com/github/gitignore找到各种项目的模板。
8. 常见问题与解决方案
8.1 认证失败问题
如果遇到认证问题,可以尝试:
- 更新Git凭据管理器:
git config --global credential.helper manager- 清除旧凭据:
- Windows: 控制面板 > 用户账户 > 凭据管理器
- Mac/Linux: 删除~/.git-credentials文件
8.2 中文文件名乱码
解决中文文件名显示问题:
git config --global core.quotepath false8.3 大文件上传问题
Gitee对单个文件大小有限制(通常100MB)。对于大文件:
- 使用Git LFS(大文件存储):
git lfs install git lfs track "*.psd" git add .gitattributes- 或者考虑使用专门的存储服务
9. 进阶技巧与工具推荐
9.1 图形化客户端
除了命令行,这些图形工具也很实用:
- GitKraken:功能强大的跨平台客户端
- Sourcetree:免费的Git GUI工具
- VS Code内置的Git功能
9.2 命令行增强工具
- oh-my-zsh的Git插件:提供有用的别名和提示
- tig:文本模式的Git浏览器
- lazygit:终端UI的Git工具
9.3 有用的别名设置
在~/.gitconfig中添加:
[alias] co = checkout br = branch ci = commit st = status last = log -1 HEAD lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative这些技巧和工具可以显著提升你的Git使用效率。在实际工作中,建议先从基础命令开始,逐步掌握更高级的功能。