Files
ns2.0/GIT_GUIDE.md
2025-10-25 21:24:03 +08:00

7.6 KiB
Raw Blame History

Git 推送教程

本文档教你如何将代码推送到 Git 仓库(以 Gitea 为例)。


📚 基础概念

Git 工作流程

工作区 → 暂存区 → 本地仓库 → 远程仓库
  ↓        ↓         ↓          ↓
编辑文件  git add  git commit  git push

🚀 完整推送流程

1 查看文件状态

git status

作用: 查看哪些文件被修改、新增或删除

输出示例:

Changes not staged for commit:
  modified:   frontend/src/App.vue
  
Untracked files:
  CHANGELOG.md

2 添加文件到暂存区

添加所有文件

git add -A

git add .

添加特定文件

git add frontend/src/App.vue
git add CHANGELOG.md

添加特定目录

git add frontend/
git add backend/

提示: -A 会添加所有修改、新增和删除的文件


3 提交到本地仓库

git commit -m "提交说明"

提交说明规范

格式: 类型: 简短描述

常用类型:

  • feat: 新功能
  • fix: 修复bug
  • docs: 文档更新
  • style: 代码格式调整
  • refactor: 重构代码
  • perf: 性能优化
  • test: 测试相关
  • chore: 构建/工具相关

示例:

# 简单提交
git commit -m "feat: 添加用户登录功能"

# 详细提交(多行)
git commit -m "feat: 添加用户登录功能

- 实现登录表单
- 添加JWT认证
- 完善错误处理"

4 推送到远程仓库

git push origin main

参数说明:

  • origin: 远程仓库名称(默认)
  • main: 分支名称(也可能是 master

首次推送

git push -u origin main

-u 参数会设置上游分支,之后只需 git push 即可


🔄 完整示例

场景1: 推送所有修改

# 1. 查看状态
git status

# 2. 添加所有文件
git add -A

# 3. 提交
git commit -m "feat: 完成首页重构"

# 4. 推送
git push origin main

场景2: 推送特定文件

# 1. 添加特定文件
git add frontend/src/App.vue
git add CHANGELOG.md

# 2. 提交
git commit -m "docs: 更新文档"

# 3. 推送
git push origin main

场景3: 修改上次提交

# 如果忘记添加某个文件
git add forgotten-file.txt
git commit --amend --no-edit

# 如果要修改提交信息
git commit --amend -m "新的提交信息"

# 强制推送(谨慎使用)
git push -f origin main

🔧 常用命令

查看相关

# 查看状态
git status

# 查看提交历史
git log

# 查看简洁历史
git log --oneline

# 查看远程仓库
git remote -v

# 查看分支
git branch

撤销相关

# 撤销工作区修改
git checkout -- filename

# 撤销暂存区(保留工作区修改)
git reset HEAD filename

# 撤销上次提交(保留修改)
git reset --soft HEAD^

# 撤销上次提交(不保留修改)
git reset --hard HEAD^

分支相关

# 查看所有分支
git branch -a

# 创建新分支
git branch feature-name

# 切换分支
git checkout feature-name

# 创建并切换分支
git checkout -b feature-name

# 合并分支
git merge feature-name

# 删除分支
git branch -d feature-name

🎯 快速推送(一键命令)

创建快捷脚本

创建文件 push.sh:

#!/bin/bash

# 快速推送脚本

echo "📝 查看状态..."
git status

echo ""
echo " 添加所有文件..."
git add -A

echo ""
echo "💬 请输入提交信息:"
read commit_message

echo ""
echo "📦 提交中..."
git commit -m "$commit_message"

echo ""
echo "🚀 推送到远程仓库..."
git push origin main

echo ""
echo "✅ 推送完成!"

使用方法:

# 添加执行权限
chmod +x push.sh

# 运行脚本
./push.sh

🔐 配置 Git

设置用户信息

# 全局配置
git config --global user.name "你的名字"
git config --global user.email "your.email@example.com"

# 项目配置
git config user.name "你的名字"
git config user.email "your.email@example.com"

查看配置

# 查看所有配置
git config --list

# 查看特定配置
git config user.name
git config user.email

保存密码HTTPS

# 永久保存
git config --global credential.helper store

# 临时保存15分钟
git config --global credential.helper cache

🌐 远程仓库操作

添加远程仓库

git remote add origin https://git.vcck.cn/nvex/ns2.0.git

修改远程仓库地址

git remote set-url origin https://new-url.git

查看远程仓库

git remote -v

删除远程仓库

git remote remove origin

⚠️ 常见问题

1. 推送被拒绝

错误: ! [rejected] main -> main (fetch first)

原因: 远程仓库有新的提交

解决:

# 拉取远程更新
git pull origin main

# 如果有冲突,解决后再推送
git push origin main

2. 合并冲突

解决步骤:

# 1. 查看冲突文件
git status

# 2. 手动编辑冲突文件,删除冲突标记
# <<<<<<< HEAD
# 你的修改
# =======
# 远程的修改
# >>>>>>> branch-name

# 3. 添加解决后的文件
git add conflict-file.txt

# 4. 提交
git commit -m "fix: 解决合并冲突"

# 5. 推送
git push origin main

3. 忘记添加文件

# 添加遗漏的文件
git add forgotten-file.txt

# 修改上次提交
git commit --amend --no-edit

# 强制推送(如果已经推送过)
git push -f origin main

4. 推送到错误的分支

# 撤销推送(本地)
git reset --hard HEAD^

# 推送到正确的分支
git push origin correct-branch

📋 推送检查清单

推送前检查:

  • 代码已测试,没有明显错误
  • 敏感信息已删除(密码、密钥等)
  • .gitignore 已配置正确
  • 提交信息清晰明确
  • 已拉取最新代码(避免冲突)

🎓 进阶技巧

1. 交互式添加

git add -p

可以选择性地添加文件的部分修改

2. 暂存修改

# 暂存当前修改
git stash

# 查看暂存列表
git stash list

# 恢复暂存
git stash pop

# 删除暂存
git stash drop

3. 查看差异

# 查看工作区和暂存区的差异
git diff

# 查看暂存区和仓库的差异
git diff --staged

# 查看两次提交的差异
git diff commit1 commit2

4. 标签管理

# 创建标签
git tag v1.0.0

# 创建带注释的标签
git tag -a v1.0.0 -m "版本 1.0.0"

# 推送标签
git push origin v1.0.0

# 推送所有标签
git push origin --tags

📱 图形化工具推荐

如果不习惯命令行,可以使用图形化工具:

  1. GitHub Desktop - 简单易用
  2. SourceTree - 功能强大
  3. GitKraken - 界面美观
  4. VS Code - 内置Git功能
  5. Tower - Mac专用功能完善

🔗 相关资源


💡 最佳实践

  1. 频繁提交: 小步快跑,每完成一个功能就提交
  2. 清晰的提交信息: 让别人(和未来的自己)能看懂
  3. 使用分支: 新功能在新分支开发,完成后合并
  4. 定期推送: 避免本地代码丢失
  5. 拉取后推送: 推送前先拉取最新代码
  6. 检查 .gitignore: 不要提交敏感信息和临时文件
  7. 代码审查: 推送前检查修改内容

最后更新: 2024-12-XX
作者: NEXT Store Team