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

git使用详解和示例

什么是 Git?

Git 是一个 分布式版本控制系统(DVCS),用于跟踪文件的变化,协调多人协作开发。由 Linus Torvalds 开发,用于管理 Linux 内核代码。


Git 的核心概念

名称说明
工作区 (Working Directory)你看到的项目目录。你在这里新增、编辑、删除文件。
暂存区 (Staging Area / Index)暂时保存将要提交的修改(git add 的作用)。
本地仓库 (Local Repository)Git 数据库,保存提交历史(执行 git commit 存入)。
远程仓库 (Remote Repository)如 GitHub/GitLab/Codeup 上的共享仓库。

在这里插入图片描述

Git 文件的四种状态

Untracked → Staged → Committed↑           ↓Modified     (Reset)
  1. Untracked:新文件,未被 Git 管理。
  2. Modified:已修改但未添加到暂存区。
  3. Staged:使用 git add 添加后进入。
  4. Committed:用 git commit 记录后存入仓库历史。

Git 安装与配置

安装

  • Windows: Git for Windows
  • macOS: brew install git
  • Linux: sudo apt install git

全局配置

git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global core.editor "code"  # 设置默认编辑器

常用 Git 命令(分类整理)

1. 仓库管理

git init                     # 初始化一个仓库
git clone <url>             # 克隆远程仓库

2. 文件操作

git status                  # 查看当前状态
git add <file|.>            # 添加到暂存区
git commit -m "描述"        # 提交更改
git rm <file>               # 删除文件并加入提交
git mv <old> <new>          # 重命名文件

3. 查看历史

git log                     # 提交历史
git log --oneline           # 简洁视图
git show <commit>           # 查看某次提交的详细内容
git diff                    # 当前工作区 vs 暂存区
git diff --cached           # 暂存区 vs 上次提交

4. 分支管理

git branch                  # 查看分支
git branch <name>           # 创建分支
git checkout <name>         # 切换分支
git checkout -b <name>      # 创建并切换分支
git merge <branch>          # 合并分支
git branch -d <name>        # 删除分支

5. 远程操作

git remote add origin <url>         # 添加远程仓库
git fetch                           # 获取远程更新
git pull origin <branch>            # 拉取远程分支并合并
git push origin <branch>            # 推送本地分支
git push -u origin <branch>         # 设置默认推送分支

6. 回退与重置

git checkout -- <file>             # 撤销对某文件的修改
git reset HEAD <file>              # 取消暂存某文件
git reset --soft HEAD~1            # 回退上一次提交,保留修改
git reset --hard HEAD~1            # 强制回退,丢弃修改

7. 标签管理

git tag v1.0
git tag -a v1.0 -m "发布版本"
git show v1.0
git push origin v1.0

Git 工作流示例(推荐流程)

示例:多人协作开发流程

  1. 克隆项目:
git clone https://github.com/user/project.git
cd project
  1. 创建分支开发:
git checkout -b feature/login
  1. 编辑代码,提交:
git add .
git commit -m "feat: 完成登录功能"
  1. 合并分支:
git checkout main
git pull
git merge feature/login
git push
  1. 清理:
git branch -d feature/login

.gitignore 文件

.gitignore 用于告诉 Git 忽略哪些文件:

# 忽略编译文件
*.o
*.exe
build/# 忽略日志
*.log# 忽略 IDE 文件
.vscode/
.idea/

高级命令与技巧

功能命令
临时保存修改git stash / git stash pop
查看某行修改历史git blame filename
图形化查看历史gitk / git log --graph
切换到旧版本git checkout <commit>
撤销提交但保留文件git reset --soft HEAD~1
Git 别名git config --global alias.co checkout

Git 图形工具推荐

工具名说明
GitHub Desktop适合新手
Sourcetree免费强大,功能全面
TortoiseGitWindows 上右键菜单支持
GitKraken界面漂亮,专业团队使用
VS Code Git 插件编辑器直接操作 Git

Git 练习网站推荐

  • https://learngitbranching.js.org
  • https://git-school.github.io/visualizing-git

小结

类型命令
初始化/克隆git init, git clone
暂存/提交git add, git commit
查看状态git status, git log
分支管理git branch, git checkout, git merge
远程操作git push, git pull, git remote
撤销/回退git reset, git checkout, git stash

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

相关文章:

  • ByteMD+CozeAPI+Coze平台Agent+Next搭建AI辅助博客撰写平台(逻辑清楚,推荐!)
  • epitope3D: 精准预测蛋白表面的“抗原决定簇”
  • ABP VNext + 多数据库混合:SQL Server+PostgreSQL+MySQL
  • 【分布式机架感知】分布式机架感知能力的主流存储系统与数据库软件
  • 安卓应用启动页全版本兼容实战:从传统方案到Android 12+ SplashScreen API最佳实践
  • FPGA产品
  • 关于ubuntu 20.04系统安装分区和重复登录无法加载桌面的问题解决
  • KS值:风控模型的“风险照妖镜”
  • 北大肖臻《区块链技术与应用》学习笔记
  • 趣味数据结构之——数组
  • 给定一个整型矩阵map,求最大的矩形区域为1的数量
  • SRS WebRTC 入门
  • 【大模型】Query 改写常见Prompt 模板
  • 第27篇:SELinux安全增强机制深度解析与OpenEuler实践指南
  • uni-app项目实战笔记26--uniapp实现富文本展示
  • 【Actix Web 精要】Rust Web 服务开发核心技术与实战指南
  • [Java 基础]算法
  • 【AI实践】Mac一天熟悉AI模型智能体应用(百炼版)
  • nginx基本使用 linux(mac下的)
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(三十八) -> 构建HAR
  • 编译安装交叉工具链 riscv-gnu-toolchain
  • RabbitMQ-基础篇
  • FreeSWITCH配置文件解析(2) dialplan 拨号计划中xml 的action解析
  • 1.1 基于Icarus Verilog、ModelSim和Vivado对蜂鸟E203处理器进行仿真
  • 学习使用dotnet-dump工具分析.net内存转储文件(2)
  • YOLOv5 训练中参数优化方案
  • 测量 Linux 中进程上下文切换需要的时间
  • UniApp Vue3 模式下实现页面跳转的全面指南
  • 【C++】简单学——内存管理
  • 【数论】P11169 「CMOI R1」Bismuth / Linear Sieve|普及+