git的使用

一.Git 核心概念

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

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

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

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

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

二、Git 工作流程

1. 基本工作流

  1. 初始化git initgit 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

  • 环境分支:productionstagingmain

  • 基于发布的分支管理

4. .gitignore 文件

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

# 忽略node_modules目录
node_modules/

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

# 忽略系统文件
.DS_Store
相关推荐
狂炫一碗大米饭41 分钟前
如何在 Git 中检出远程分支
前端·git·github
dolzhuying2 小时前
git常见场景食用指南
git
上邪o_O3 小时前
Git 的基本使用指南(1)
linux·git
飏旎21 小时前
git pull和git fetch的区别
git
z涛.1 天前
git的使用
git
大卫小东(Sheldon)1 天前
智能生成git提交消息工具 GIM 发布 1.7 版本了
git·ai·rust
慧都小项1 天前
UI测试平台TestComplete如何实现从Git到Jenkins的持续测试
git·ui·jenkins·代码质量·testcomplete·zephyr for jira
可曾去过倒悬山2 天前
Mac上优雅简单地使用Git:从入门到高效工作流
git·elasticsearch·macos
穗 禾2 天前
github与git新手教程(快速访问github)
网络·git·github
我不是程序猿儿2 天前
【git】在 GitLab 上如何把 A 分支(如 feature/xxx)合并到 B 分支(如 trunk)
服务器·git·gitlab