1. 为什么你需要Git和Gitea
作为一个开发者,你可能经常遇到这样的场景:修改了代码却发现之前的版本更好,想回退却找不到备份;团队协作时多人同时修改同一个文件导致冲突;想查看某个功能的开发历史却无从追溯。这些问题Git都能帮你解决。
Git是目前最流行的分布式版本控制系统,它就像代码的"时光机",能记录每一次修改,让你随时回退到任意版本。而Gitea是一个轻量级的Git服务,可以理解为自建的"私人GitHub",特别适合中小团队或个人开发者使用。
我刚开始接触Git时也觉得命令行很吓人,但实际用下来发现日常开发只需要掌握几个核心命令就够了。下面我就用最直白的方式,带你从零开始搭建Git+Gitea的工作流。
2. 环境准备与基础配置
2.1 安装Git客户端
Windows用户可以直接下载Git for Windows,安装时记得勾选"Add Git Bash to PATH"选项。安装完成后,在任意文件夹右键就能看到"Git Bash Here"选项,这就是我们的命令行工具。
验证安装是否成功:
git --version如果看到类似git version 2.40.0的输出,说明安装成功。
2.2 配置用户信息
第一次使用Git需要设置你的身份标识,这些信息会出现在你的提交记录里:
git config --global user.name "你的名字" git config --global user.email "你的邮箱"我建议使用和Gitea账号相同的邮箱,这样提交记录能正确关联到你的账号。配置信息保存在~/.gitconfig文件里,随时可以修改。
3. 项目初始化与日常操作
3.1 创建本地仓库
假设你已经在本地开发了一个项目,现在想用Git管理它。进入项目根目录,执行:
git init这个命令会在当前目录创建.git隐藏文件夹,它就是Git的"数据库"。你可以用ls -a查看。
3.2 添加文件到暂存区
Git有三个重要概念:
- 工作区:你实际看到的文件
- 暂存区:准备提交的文件快照
- 版本库:永久保存的版本记录
把文件添加到暂存区:
git add 文件名 # 或者添加所有文件 git add .这里有个常见坑点:如果文件没被跟踪,可能是路径不对。我建议先用git status查看当前状态,它会明确告诉你哪些文件可以被添加。
3.3 提交更改
把暂存区的内容正式保存到版本库:
git commit -m "描述本次提交的内容"提交信息要尽量清晰,比如"修复用户登录时的空指针异常"就比"修复bug"好得多。团队协作时这个习惯特别重要。
4. 连接Gitea远程仓库
4.1 在Gitea上创建仓库
登录你的Gitea实例,点击"新建仓库",填写仓库名称和描述。建议勾选"初始化仓库"选项,这样会生成README.md文件。
创建完成后,复制仓库的HTTPS或SSH地址。如果是私有仓库,建议使用SSH方式,需要提前配置公钥。
4.2 关联本地与远程仓库
在本地仓库执行:
git remote add origin 仓库地址验证是否添加成功:
git remote -v如果提示"origin already exists",说明之前已经关联过,可以先删除:
git remote rm origin4.3 推送代码到Gitea
第一次推送需要指定上游分支:
git push -u origin main之后就可以简化为:
git push如果遇到权限错误,检查是否配置了SSH密钥或者HTTPS密码是否正确。
5. 常见问题解决方案
5.1 换行符警告
在Windows上你可能会看到这样的警告:
warning: LF will be replaced by CRLF这是因为不同系统的换行符标准不同。解决方案:
# 在Windows上 git config --global core.autocrlf true # 在Linux/Mac上 git config --global core.autocrlf input5.2 撤销错误操作
不小心提交了错误内容?别慌:
# 撤销最后一次提交但保留更改 git reset --soft HEAD~1 # 完全丢弃最后一次提交 git reset --hard HEAD~1更安全的做法是使用git revert创建新的撤销提交,这样不会修改历史记录。
5.3 解决冲突
当多人修改同一文件时可能出现冲突。Git会在冲突文件中标记冲突位置,形如:
<<<<<<< HEAD 你的修改 ======= 别人的修改 >>>>>>> branch-name手动编辑文件解决冲突后,重新add和commit即可。
6. 高效工作流建议
6.1 分支策略
主分支(main/master)应该保持稳定,新功能开发应该在单独分支进行:
# 创建并切换到新分支 git checkout -b feature-xxx # 开发完成后合并到主分支 git checkout main git merge feature-xxx6.2 忽略不需要的文件
创建.gitignore文件,列出不需要版本控制的文件模式,比如:
# 忽略编译产物 *.class *.exe # 忽略IDE配置 .idea/ .vscode/ # 忽略环境变量 .env6.3 定期同步远程仓库
养成定期拉取最新代码的习惯:
git pull --rebase使用--rebase可以让提交历史更整洁,避免不必要的合并提交。
7. 进阶技巧
7.1 修改最近提交
如果刚提交完发现漏了文件或者提交信息写错了:
git add 漏掉的文件 git commit --amend这会修改最后一次提交而不是创建新提交。
7.2 暂存当前工作
临时需要切换分支但当前修改还没完成?使用stash:
git stash # 做一些其他事情... git stash pop7.3 查看历史记录
# 简洁版 git log --oneline # 图形化显示分支 git log --graph --all # 查看某个文件的修改历史 git blame 文件名掌握这些基础操作后,你就能应对90%的日常开发场景了。Git的学习曲线前期比较陡,但一旦熟悉就会成为你开发过程中不可或缺的工具。我在团队中见过太多因为没用版本控制而导致的悲剧,希望你能早点养成使用Git的好习惯。