作为一个只会复制、粘贴、AI 的马龙。我实在理解不来 GIt 里那么多功能。看这个文章就对了
- 拉取和推送(最常见)
- 日常代码提交
- 分支管理
- 代码冲突处理
- 代码回退
- 版本发布
- 多人协作
- 紧急修复
- 代码暂存
Git实用教程(第一部分)
- 拉取和推送(最常见场景)
1.1 基本概念
# origin:远程仓库的默认名称
# main/master:主分支名称
# pull:拉取(下载)代码
# push:推送(上传)代码
push:推送(上传)代码
1.2 拉取代码
# 完整拉取远程代码(最常用)
git pull origin main # 下载并合并远程main分支的代码到当前分支
# 分步操作方式(更安全但较少使用)
git fetch origin main # 仅下载代码但不合并
git merge origin/main # 将下载的代码合并到当前分支
# 使用rebase方式拉取(使提交历史更清晰)
git pull --rebase origin main
# 查看本地与远程的差异
git fetch origin main
git log main..origin/main # 显示远程有而本地没有的提交
1.3 推送代码
# 推送当前分支的代码到远程
git push origin main # 将当前分支推送到远程main分支
# 首次推送新分支(建立关联)
git push -u origin main # -u 参数设置跟踪关系,之后可以直接用git push
# 推送标签
git push origin --tags # 推送所有标签
git push origin v1.0.0 # 推送特定标签
1.4 常见问题及解决方案
# 方案1:先提交本地修改
git add .
git commit -m "保存当前工作"
git pull origin main
# 方案2:暂存当前修改
git stash save "暂存当前工作"
git pull origin main
git stash pop # 恢复暂存的修改
拉取时遇到冲突:
# 1. 发生冲突时会看到类似提示:
# CONFLICT (content): Merge conflict in [文件名]
# 2. 打开冲突文件,会看到:
<<<<<<< HEAD
本地代码
=======
远程代码
>>>>>>> origin/main
# 3. 手动解决冲突
# - 保留需要的代码
# - 删除冲突标记
# - 保存文件
# 4. 解决后提交
git add .
git commit -m "解决冲突:具体原因"
1.4.2 推送时的问题
# 错误提示:! [rejected] main -> main (fetch first)
# 解决方案1:标准流程
git pull origin main # 先拉取最新代码
# 解决可能的冲突
git push origin main # 再次推送
# 解决方案2:使用rebase(推荐)
git pull --rebase origin main
git push origin main
身份验证失败:
# 错误:Authentication failed
# 解决方案1:检查远程URL
git remote -v # 查看当前远程仓库URL
git remote set-url origin 新URL # 更新URL
# 解决方案2:更新凭证
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
git config --global credential.helper store # 保存凭证
Git实用教程(第二部分)
2. 日常代码提交场景
2.1 基本提交流程