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 protected]"

# 查看配置
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
相关推荐
进阶的DW20 小时前
Git基本使用
git
书琴1 天前
关于git的stash参数
git
@大迁世界1 天前
如何将一个 Git 项目关联到两个远程仓库(且不出错)
git
康不坦丁1 天前
不再苦恼 git 命令打错单词啦-git 别名
git·后端
Mr.stupidCoder2 天前
Git将本地文件推送到GitHub仓库
git·elasticsearch·github
RocketJ2 天前
mac电脑.sh文件,用来清除git当前分支
git·elasticsearch·macos
热血的柯基破防了2 天前
Git命令与代码仓库管理
git·gitee
C++ 老炮儿的技术栈2 天前
visual studio 2022更改主题为深色
c语言·开发语言·c++·ide·windows·git·visual studio
南棱笑笑生2 天前
20250614在Ubuntu20.04.6下分步骤编译Rockchip的RK3576原厂SDK
java·开发语言·git