当前位置: 首页 > news >正文

Git 使用手册:从入门到精通

git高速下载

一、Git 核心概念

1. 三个工作区域

git add
git commit
git push
git pull
工作目录
Working Directory
暂存区
Staging Area
本地仓库
Local Repository
远程仓库
Remote Repository

2. 文件生命周期

新文件
git add
git commit
编辑文件
git add
git add
git rm
Untracked
Staged
Unmodified
Modified

二、Git 安装与配置

1. 全局配置

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global core.editor "code --wait"  # 使用VS Code作为编辑器
git config --global init.defaultBranch main    # 设置默认分支

2. 常用配置项

命令描述
git config --list查看所有配置
git config --global alias.co checkout创建别名
git config --global core.autocrlf inputLinux/Mac换行符设置
git config --global core.autocrlf trueWindows换行符设置

三、基础工作流

1. 仓库操作

# 初始化新仓库
git init # 克隆远程仓库
git clone https://github.com/user/repo.git
git clone https://github.com/user/repo.git myfolder # 指定目录# 查看仓库状态
git status
git status -s # 精简输出

2. 文件操作

# 添加文件到暂存区
git add filename.txt      # 添加单个文件
git add .                 # 添加所有修改
git add *.js              # 添加所有js文件# 提交更改
git commit -m "描述信息"
git commit -a -m "跳过暂存区直接提交" # 自动添加跟踪文件# 查看提交历史
git log
git log --oneline         # 单行显示
git log --graph           # 图形化显示分支
git log -p filename.txt   # 查看文件变更历史

四、分支管理

1. 分支操作

# 创建与切换分支
git branch feature-login   # 创建分支
git checkout feature-login # 切换分支
git checkout -b hotfix-123 # 创建并切换# 合并分支
git checkout main
git merge feature-login    # 合并到当前分支# 删除分支
git branch -d feature-login # 安全删除
git branch -D feature-login # 强制删除# 查看分支
git branch                 # 本地分支
git branch -a              # 所有分支(含远程)
git branch -v              # 查看分支最后提交

五、远程仓库

1. 远程操作

# 添加远程仓库
git remote add origin https://github.com/user/repo.git# 查看远程仓库
git remote -v# 推送分支
git push -u origin main  # 首次推送设置上游
git push                 # 后续推送# 拉取更新
git pull                 # 拉取并合并
git fetch                # 仅获取不合并# 跟踪远程分支
git branch --set-upstream-to=origin/main main

2. 多人协作流程

# 1. 获取最新代码
git fetch origin# 2. 合并到本地分支
git merge origin/main# 3. 创建特性分支
git checkout -b feature-search# 4. 开发并提交
git add .
git commit -m "添加搜索功能"# 5. 推送到远程
git push -u origin feature-search# 6. 创建Pull Request

六、高级操作

1. 撤销更改

# 撤销工作区修改
git checkout -- filename.txt# 撤销暂存区文件
git reset HEAD filename.txt# 撤销最近提交
git reset --soft HEAD~1   # 保留更改在暂存区
git reset --hard HEAD~1   # 丢弃更改# 修改最后一次提交
git commit --amend

2. 储藏与标签

# 储藏当前工作
git stash                 # 储藏修改
git stash list            # 查看储藏列表
git stash apply           # 应用最近储藏
git stash drop            # 删除最近储藏# 标签管理
git tag v1.0.0            # 创建轻量标签
git tag -a v1.1.0 -m "发布版本1.1.0" # 附注标签
git push origin --tags     # 推送所有标签

3. 变基操作

# 变基整合提交历史
git checkout feature
git rebase main# 交互式变基(修改历史)
git rebase -i HEAD~3# 操作选项:
# p, pick = 使用提交
# r, reword = 修改提交信息
# e, edit = 修改提交内容
# s, squash = 合并到前一个提交
# d, drop = 删除提交

七、常见问题解决

1. 冲突解决

# 发生冲突时
<<<<<<< HEAD
本地修改内容
=======
远程修改内容
>>>>>>> branch-name# 解决步骤:
1. 编辑文件,删除冲突标记
2. git add filename.txt
3. git commit -m "解决冲突"

2. 恢复删除文件

# 查看删除记录
git log --diff-filter=D -- path/to/file# 恢复文件
git checkout <commit-hash>^ -- path/to/file

3. 清理历史

# 从历史中移除敏感文件
git filter-branch --force --index-filter \"git rm --cached --ignore-unmatch path/to/file" \--prune-empty --tag-name-filter cat -- --all

八、最佳实践

  1. 提交规范

    • 使用约定式提交
    feat: 添加用户登录功能
    fix: 修复支付接口错误
    docs: 更新API文档
    
  2. 分支命名

    • feature/功能名称
    • bugfix/问题描述
    • hotfix/紧急修复
  3. .gitignore 示例

    # 忽略日志文件
    *.log# 忽略编译产物
    /build/
    /dist/# 忽略环境文件
    .env# 忽略IDE文件
    .idea/
    .vscode/
    
  4. 日常习惯

    • 频繁提交小变更
    • 提交前运行测试
    • 拉取前先储藏本地修改
    • 定期清理远程已合并分支

九、可视化工具

工具平台特点
GitKraken全平台强大的分支可视化
SourceTreeWin/Mac免费专业版
GitHub DesktopWin/Mac简洁易用
GitLensVS Code扩展IDE集成

小贴士:掌握命令行操作后使用可视化工具效率更高

本手册涵盖Git核心功能,建议结合实践操作加深理解。遇到问题时,使用git help <command>查看官方文档!

git高速下载

在这里插入图片描述

http://www.lryc.cn/news/573234.html

相关文章:

  • 基于Qt的UDP主从服务器设计与实现
  • 【Linux第四章】gcc、makefile、git、GDB
  • 从需求到落地:充电桩APP开发的定制化流程与核心优势
  • 免费1000套编程教学视频资料视频(涉及Java、python、C C++、R语言、PHP C# HTML GO)
  • Python subprocess 模块详解
  • 60-Oracle 10046事件-实操
  • Java面试复习指南:JVM原理、并发编程与Spring框架
  • 微服务架构的适用
  • Zephyr 电源管理机制深度解析:从 Tickless Idle 到平台 Suspend 实践
  • 【设计模式】6.原型模式
  • 道德的阶梯:大语言模型在复杂道德困境中的价值权衡
  • 经典控制理论:线性化笔记
  • 开源无广告GIF 制作软件三模录制,教程 / 游戏 GIF 一键生成支持鼠标轨迹显示
  • Linux运维新人自用笔记(Ubuntu磁盘命名规则、新磁盘分区、主流文件系统类型、mkfs命令格式化文件系统、临时和永久挂载、挂载报错、dd指令)
  • [muduo] TcpConnection | 回调交互
  • Go语言网络编程:使用 net/http 构建 RESTful API
  • React JSX语法
  • 分布式锁的四种实现方式:从原理到实践
  • 【Linux仓库】进程概念与基本操作【进程·贰】
  • 使用 Telegraf 向 TDengine 写入数据
  • HarmonyOS 5的分布式通信矩阵是如何工作的?
  • Flink流水线+Gravitino+Paimon集成
  • 5.2 Qt Creator 使用FFmpeg库
  • ffmpeg(六):图片与视频互转命令
  • 项目练习:Jaspersoft Studio制作PDF报表时,detail和column footer之间存在很大的空白区
  • VR油库虚拟仿真系统:开启智慧油库新时代
  • 广州华锐互动:以技术创新引领虚拟现实体验新高度
  • 蚂蚁百宝箱快速创建智能体AI小程序
  • 【Node】最佳Node.js后端开发模板推荐
  • win环境使用openssl创建p12证书