git的使用

一.Git 核心概念

  • 仓库(Repository):项目存储空间(本地仓库 + 远程仓库)

  • 提交(Commit):一次版本变更的快照(含唯一 SHA-1 哈希 ID)

  • 分支(Branch) :独立的开发线(默认主分支:main 或 master)

  • 标签(Tag):特定提交的标记(常用于版本发布)

  • 暂存区(Staging Area) :准备提交的中间区域

二、Git 工作流程

1. 基本工作流

  1. 初始化 :git init 或 git clone <url>

  2. 修改文件:在工作目录编辑文件

  3. 暂存更改 :git add <file> 或 git add .

  4. 提交版本 :git commit -m "描述信息"

  5. 推送远程 :git push origin <branch>

  6. 获取更新 :git pull(= git fetch + git merge)

2.分支工作流

bash 复制代码
# 创建新分支
git checkout -b feature-login

# 在新分支开发
git add .
git commit -m "添加登录功能"

# 切换回主分支
git checkout main

# 合并功能分支
git merge feature-login

# 删除已合并分支
git branch -d feature-login

三、核心命令详解

1. 配置管理

bash 复制代码
# 用户配置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

# 查看配置
git config --list

# 设置默认编辑器
git config --global core.editor "code --wait"

2. 仓库操作

命令 功能
git init 初始化新仓库
git clone <url> 克隆远程仓库
git remote add <name> <url> 添加远程仓库
git remote -v 查看远程仓库

3. 文件操作

命令 功能
git status 查看文件状态
git add <file> 添加文件到暂存区
git reset <file> 从暂存区移除文件
git restore <file> 丢弃工作区更改
git rm <file> 删除文件并跟踪删除

4. 提交历史

命令 功能
git log 查看提交历史
git log --oneline --graph 简洁历史视图
git blame <file> 查看文件修改历史
git diff 查看未暂存的修改
git diff --staged 查看已暂存的修改

5. 分支管理

命令 功能
git branch 查看分支列表
git branch <name> 创建新分支
git checkout <branch> 切换分支
git switch <branch> (新)切换分支
git merge <branch> 合并分支
git rebase <branch> 变基操作

6. 远程协作

命令 功能
git fetch 获取远程更新
git pull 拉取并合并远程更新
git push 推送本地提交
git push -u origin <branch> 首次推送并建立追踪

四、高级功能

1. 撤销操作

bash 复制代码
# 修改最后一次提交
git commit --amend

# 撤销工作区更改
git restore <file>

# 重置到指定提交
git reset --soft HEAD~1  # 保留更改在暂存区
git reset --mixed HEAD~1 # 保留更改在工作区(默认)
git reset --hard HEAD~1  # 丢弃所有更改

# 恢复被删除的文件
git checkout HEAD -- <file>

2. 标签管理

bash 复制代码
# 创建轻量标签
git tag v1.0.0

# 创建含注释的标签
git tag -a v1.1.0 -m "Release version 1.1.0"

# 推送标签到远程
git push origin --tags

# 检出标签版本
git checkout v1.0.0

3.设置全局换行符处理

bash 复制代码
# Windows 推荐(检出时 CRLF,提交时 LF)
git config --global core.autocrlf true

# Linux/macOS 推荐(检出时不转换)
git config --global core.autocrlf input

# 完全禁用转换
git config --global core.autocrlf false

五、Git 工作流模型

1. Git Flow

  • main:稳定生产代码

  • develop:最新开发代码

  • feature/:功能开发分支

  • hotfix/:紧急修复分支

2. GitHub Flow

  1. 从 main 创建分支

  2. 添加提交

  3. 创建 Pull Request

  4. 审查合并代码

  5. 立即部署

3. GitLab Flow

  • 环境分支:production → staging → main

  • 基于发布的分支管理

4. .gitignore 文件

bash 复制代码
# 忽略所有日志文件
*.log

# 忽略node_modules目录
node_modules/

# 忽略编译产物
/build/
/dist/

# 忽略系统文件
.DS_Store
相关推荐
小此方19 小时前
「插曲:Git」企业规范篇:DevOps开发模型、Git Flow五类分支设计与测试/预发布/生产环境Bug修复及Hotfix紧急发布流程
git·bug·devops
溪语流沙19 小时前
【Web全栈进阶】JWT无状态认证:签发、校验、刷新
前端·git·python·github
OsDepK20 小时前
osgit纯图形化git版本管理工具,多人开发团队协作工具,支持Mac与Windows
git
Madison-No71 天前
Git版本控制工具(一)
git
小小小米粒1 天前
重置本地git
大数据·git·elasticsearch
鶴哥只手遮天2 天前
第 8 章 工作区与检出:unpack-trees 与并行 checkout
git
xing-xing2 天前
git 相关命令总结
git
A-刘晨阳2 天前
GitLab + ArgoCD 实现 Kubernetes GitOps 自动化部署
运维·人工智能·git·kubernetes·自动化·云计算·argocd
ControlRookie2 天前
SyncBridge:一个 CODESYS 工程与 AI 之间工程师级的同步工具
git·ai编程·codesys·工业软件·controlrookie
鬼手点金3 天前
opencode-性能优化建议
java·人工智能·git·自动化·nanogpt