Git详解:初学者完全指南
🎯 Git是什么?
Git 是一个分布式版本控制系统,简单来说就是帮您管理代码历史记录的工具。
为什么需要Git?
想象一下这些场景:
- 📝 写论文时创建了
论文v1.doc
、论文v2.doc
、论文最终版.doc
、论文真正最终版.doc
… - 💻 编程时不小心删除了重要代码,想恢复之前的版本
- 👥 多人协作开发同一个项目,如何避免代码冲突?
- 🔄 想要在不同功能分支之间切换开发
Git就是解决这些问题的!
📚 Git的核心作用
1. 版本控制 (Version Control)
项目历史:
commit 3: 添加登录功能 ← 当前版本
commit 2: 修复数据库连接bug
commit 1: 初始项目结构
2. 备份和恢复
本地仓库 ←→ 远程仓库 (GitHub/GitLab)↓ ↓工作副本 云端备份
3. 协作开发
开发者A ←→ 远程仓库 ←→ 开发者B↓ ↓本地修改 本地修改
4. 分支管理
main分支: A → B → C → F → G↓ ↗
feature分支: D → E ←
🛠️ Git基本使用场景与步骤
场景1:个人项目版本管理
初始化项目
# 1. 进入项目目录
cd /path/to/your/project# 2. 初始化Git仓库
git init# 3. 添加文件到暂存区
git add .# 4. 提交第一个版本
git commit -m "初始项目提交"
日常开发流程
# 1. 查看文件状态
git status# 2. 添加修改的文件
git add filename.txt
# 或添加所有修改
git add .# 3. 提交修改
git commit -m "添加用户登录功能"# 4. 查看提交历史
git log --oneline
实际操作示例:
# 假设您在开发图书管理系统
git add BookController.java
git commit -m "添加图书查询功能"git add admin_books.jsp
git commit -m "优化图书管理页面UI"git add book-context.xml
git commit -m "更新数据库配置"
场景2:连接远程仓库 (GitHub)
将本地项目推送到GitHub
# 1. 在GitHub创建空仓库后,连接远程仓库
git remote add origin https://github.com/yourusername/your-repo.git# 2. 推送本地代码到远程
git push -u origin main# 3. 以后的推送
git push
从GitHub克隆项目
# 克隆别人的项目或自己的项目到新电脑
git clone https://github.com/username/repository.git# 进入项目目录
cd repository
场景3:团队协作开发
拉取最新代码
# 获取远程最新代码
git pull origin main# 或者分步操作
git fetch origin # 获取远程更新
git merge origin/main # 合并到本地
处理冲突
# 当多人修改同一文件时可能出现冲突
git pull origin main
# 如果有冲突,Git会提示哪些文件有冲突# 手动编辑冲突文件,解决冲突后
git add conflicted-file.txt
git commit -m "解决合并冲突"
git push origin main
场景4:分支管理
创建和切换分支
# 创建新分支开发功能
git branch feature-login# 切换到新分支
git checkout feature-login# 或者一步到位:创建并切换
git checkout -b feature-login# 查看所有分支
git branch
合并分支
# 开发完成后,切换回主分支
git checkout main# 合并功能分支
git merge feature-login# 删除已合并的分支
git branch -d feature-login
🎯 针对您的图书管理项目的实际操作
1. 为您的项目设置Git
# 在项目根目录执行
cd /d/Qt综合项目/Books-Management-System# 初始化Git仓库
git init# 创建.gitignore文件,忽略不需要版本控制的文件
echo "target/" >> .gitignore
echo "*.class" >> .gitignore
echo ".idea/" >> .gitignore
echo "*.iml" >> .gitignore# 添加所有项目文件
git add .# 第一次提交
git commit -m "初始化图书管理系统项目"
2. 日常开发工作流
# 开发新功能前
git status # 检查当前状态
git pull origin main # 拉取最新代码(如果有远程仓库)# 修改代码后
git add src/main/java/com/book/controller/BookController.java
git commit -m "添加图书搜索功能"# 修改JSP页面后
git add src/main/webapp/WEB-INF/jsp/admin_books.jsp
git commit -m "优化图书列表显示效果"# 推送到远程仓库
git push origin main
3. 创建功能分支
# 开发读者管理功能
git checkout -b feature-reader-management# 开发完成后合并
git checkout main
git merge feature-reader-management
git branch -d feature-reader-management
📋 Git常用命令速查表
基础命令
命令 | 作用 | 示例 |
---|---|---|
git init | 初始化仓库 | git init |
git status | 查看状态 | git status |
git add | 添加到暂存区 | git add . |
git commit | 提交更改 | git commit -m "message" |
git log | 查看历史 | git log --oneline |
远程操作
命令 | 作用 | 示例 |
---|---|---|
git clone | 克隆仓库 | git clone <url> |
git remote | 管理远程仓库 | git remote add origin <url> |
git push | 推送代码 | git push origin main |
git pull | 拉取代码 | git pull origin main |
分支操作
命令 | 作用 | 示例 |
---|---|---|
git branch | 查看/创建分支 | git branch feature-x |
git checkout | 切换分支 | git checkout main |
git merge | 合并分支 | git merge feature-x |
🎓 学习建议
1. 循序渐进
- 第一周:掌握
init
、add
、commit
、status
、log
- 第二周:学习远程操作
clone
、push
、pull
- 第三周:练习分支操作
branch
、checkout
、merge
2. 实践项目
- 将您的图书管理系统用Git管理起来
- 每完成一个功能就commit一次
- 尝试创建不同的分支开发不同功能
3. 常见错误和解决
# 忘记提交就想切换分支
git stash # 暂存当前修改
git checkout other-branch # 切换分支
git checkout original-branch # 切换回来
git stash pop # 恢复修改# 提交了错误的commit
git reset --soft HEAD~1 # 撤销最后一次commit,保留修改
Git是程序员必备技能,掌握了它,您的代码管理将变得井井有条!建议从简单的个人项目开始练习,逐步掌握各种操作。