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 视图,直观易用

相关推荐
doudoudalao2 分钟前
2026年AI生成电商带货视频工具有哪些?TikTok带货素材生产方案与对比
大数据·人工智能
Bode_200223 分钟前
智能制造系统(SoI)中“3I”指什么
大数据·人工智能
Sayai1 小时前
Elasticsearch 日志索引设计:按小时切分 + 小时内 Rollover 兜底(ILM 实战,附完整脚本)
大数据·elasticsearch·搜索引擎
Elasticsearch2 小时前
生产环境向量搜索的一个设置:vectordb_document 模式如何自动调优 Elasticsearch
elasticsearch
【赫兹威客】浩哥2 小时前
基于SpringBoot+Vue3的舆情文本分析系统|Elasticsearch检索+情感分析+话题热度追踪 毕设项目
spring boot·elasticsearch·课程设计
慕容引刀3 小时前
或许你真的需要这个Git神器:让团队提交文案终于对齐了
人工智能·git·vscode·自然语言处理·github
天涯明月19933 小时前
ray深度研究报告
大数据·人工智能·分布式·ray
桌角的眼镜3 小时前
5\.28文章改写:用 Claude Code 接入 GLM\-5\.1:从安装到终端实战的完整配置指南
后端·程序员·github·开发工具·效率工具
jjh+++(求关注版)3 小时前
git-命令速查清单
git
玉&心3 小时前
在grafana中加入elasticsearch的日志dashboard
elasticsearch·grafana