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
相关推荐
小Lu的开源日常12 分钟前
在 macOS 上设置 SSH 和 Git
git·macos·ssh
eleven_h20 分钟前
ERROR: Permission to Splode/pomotroid.git deni
git
WZF-Sang1 小时前
计算机网络基础——1
网络·c++·git·学习·计算机网络·智能路由器
石头wang3 小时前
如何在idea里快速地切换Windows CMD、git bash、powershell
windows·git·bash·intellij-idea
SkyrimCitadelValinor3 小时前
Git【开源分布式版本控制工具】安装-配置-常用指令-Git远程仓库-IDEA使用Git
分布式·git·gitee·开源·项目管理
mmsx1 天前
使用git生成ssh的ed25519密钥
运维·git·ssh
荔枝吻1 天前
【保姆级喂饭教程】Git图形化客户端Sourcetree安装及使用教程
git·sourcetree
T - mars1 天前
Git在Pycharm中的使用
git
sunarmy1 天前
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
git
典学长编程1 天前
高效学习之一篇搞定分布式管理系统Git !
大数据·git·搜索引擎