git使用详解和实战示例

Git 基础概念

名称 说明
工作区(Working Directory) 你正在本地操作的代码目录
暂存区(Staging Area / Index) 使用 git add 后进入的区域,等待提交
本地仓库(Local Repository) 使用 git commit 后的本地版本历史
远程仓库(Remote Repository) 如 GitHub、GitLab 上的远程版本库

Git 常用命令详解与示例


初始化本地仓库

bash 复制代码
git init

在当前目录下创建 .git 文件夹,初始化为 Git 仓库。


克隆远程仓库

bash 复制代码
git clone https://github.com/user/repo.git

下载一个已有的仓库副本到本地。


查看当前状态

bash 复制代码
git status

显示哪些文件被修改、哪些在暂存区。


添加文件到暂存区

bash 复制代码
git add filename
git add .  # 添加所有文件

提交修改

bash 复制代码
git commit -m "描述信息"

查看提交历史

bash 复制代码
git log

简洁日志

bash 复制代码
git log --oneline --graph --all

查看修改内容

bash 复制代码
git diff                 # 查看工作区 vs 暂存区
git diff --cached        # 查看暂存区 vs 上次提交

撤销操作

操作 命令
撤销 git add git reset HEAD filename
撤销修改但保留文件 git checkout -- filename
重置最近一次提交(不丢文件) git reset --soft HEAD~1
丢弃最近一次提交和修改 git reset --hard HEAD~1

分支操作

bash 复制代码
git branch               # 查看分支
git branch dev           # 创建分支
git checkout dev         # 切换分支
git checkout -b dev      # 创建并切换分支

合并分支

bash 复制代码
git checkout main
git merge dev

远程仓库操作

查看远程

bash 复制代码
git remote -v

添加远程仓库

bash 复制代码
git remote add origin https://github.com/user/repo.git

推送代码

bash 复制代码
git push origin main  # 将 main 分支推送到远程

首次推送可能需要加 -u 设置默认远程:

bash 复制代码
git push -u origin main

拉取远程更新

bash 复制代码
git pull origin main

等价于:

bash 复制代码
git fetch origin
git merge origin/main

忽略文件

编辑 .gitignore 文件:

复制代码
*.log
build/
*.tmp

标签管理

bash 复制代码
git tag v1.0                   # 打标签
git tag                        # 查看标签
git push origin v1.0           # 推送标签

常见工作流示例


示例 1:新建并提交一个项目

bash 复制代码
mkdir my_project && cd my_project
git init
echo "# My Project" > README.md
git add README.md
git commit -m "init: first commit"
git remote add origin https://github.com/user/my_project.git
git push -u origin main

示例 2:创建新分支进行开发

bash 复制代码
git checkout -b feature/login
# 修改代码
git add .
git commit -m "feat: implement login logic"
git checkout main
git merge feature/login
git push

示例 3:解决冲突

bash 复制代码
git pull origin main
# 冲突文件显示 <<<<<<< HEAD 等标记
# 手动编辑解决后:
git add conflicted_file.cpp
git commit -m "fix: resolve merge conflict"

示例 4:多人协作(远程分支)

bash 复制代码
git fetch origin
git checkout -b dev origin/dev
# 修改后提交
git push origin dev

补充技巧

功能 命令
查看某一行的提交记录 git blame filename
设置用户名和邮箱 git config --global user.name "xxx"
保存临时修改 git stash, git stash pop
删除分支 git branch -d dev
删除远程分支 git push origin --delete dev

图形化工具推荐

  • GitKraken:强大的跨平台 Git GUI
  • GitHub Desktop:适合初学者,界面简洁
  • TortoiseGit:Windows 系统集成 Git 工具
  • VS Code Git 插件:集成 Git 视图,直观易用

相关推荐
默默在路上3 分钟前
CentOS Stream 9 安装hadoop单机伪分布式模式
大数据·hadoop·分布式
北京盛世宏博9 分钟前
数据可追溯 + 加密传输:以太网温湿度变送器守护涉密档案安全
大数据·运维·人工智能·档案温湿度
小五传输10 分钟前
主流的文件摆渡系统品牌核心功能解析,助力企业数据安全流转
大数据·运维·安全
rgb2gray13 分钟前
论文深度解析:基于大语言模型的城市公园多维度感知解码与公平性提升
大数据·人工智能·机器学习·语言模型·自然语言处理·数据分析·可解释
装不满的克莱因瓶1 小时前
【踩坑】IDEA提交Git .gitignore忽略文件不起作用
java·git·.gitignore·踩坑
Jackyzhe2 小时前
Flink源码阅读:JobManager的HA机制
大数据·flink
鲨莎分不晴2 小时前
大数据基石深度解析:系统性读懂 Hadoop 与 ZooKeeper
大数据·hadoop·zookeeper
Sylvan Ding9 小时前
度量空间数据管理与分析系统——大数据泛构课程作业-2025~2026学年. 毛睿
大数据·深圳大学·大数据泛构·度量空间数据管理与分析系统·毛睿·北京理工大学珠海校区
潇潇云起11 小时前
【elastic-start-local 本地docker 30天后需要重新试用处理】
elasticsearch
cos11 小时前
Fork 主题如何更新?基于 Ink 构建主题更新 CLI 工具
前端·javascript·git