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

git使用详解和实战示例

Git 基础概念

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

Git 常用命令详解与示例


初始化本地仓库

git init

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


克隆远程仓库

git clone https://github.com/user/repo.git

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


查看当前状态

git status

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


添加文件到暂存区

git add filename
git add .  # 添加所有文件

提交修改

git commit -m "描述信息"

查看提交历史

git log

简洁日志

git log --oneline --graph --all

查看修改内容

git diff                 # 查看工作区 vs 暂存区
git diff --cached        # 查看暂存区 vs 上次提交

撤销操作

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

分支操作

git branch               # 查看分支
git branch dev           # 创建分支
git checkout dev         # 切换分支
git checkout -b dev      # 创建并切换分支

合并分支

git checkout main
git merge dev

远程仓库操作

查看远程

git remote -v

添加远程仓库

git remote add origin https://github.com/user/repo.git

推送代码

git push origin main  # 将 main 分支推送到远程

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

git push -u origin main

拉取远程更新

git pull origin main

等价于:

git fetch origin
git merge origin/main

忽略文件

编辑 .gitignore 文件:

*.log
build/
*.tmp

标签管理

git tag v1.0                   # 打标签
git tag                        # 查看标签
git push origin v1.0           # 推送标签

常见工作流示例


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

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:创建新分支进行开发

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

示例 3:解决冲突

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

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

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

http://www.dtcms.com/a/361550.html

相关文章:

  • 【学习笔记】从“两个细则”到“四遥”
  • docker安装redis,进入命令窗口基操练习命令
  • KubeBlocks for Milvus 揭秘
  • 学习 Android (十八) 学习 OpenCV (三)
  • 向量数据库概述:Faiss、Milvus、Qdrant、Chroma、Weaviate
  • AI 时代的用户体验设计:设计师会被替代,还是更值钱?
  • TCP连接状态详解/同时打开Simultaneous Open
  • 动态滑动窗口还搞不清?一文搞定动态滑动窗口 | 基础算法
  • 如何将多个Excel报表合并为一个汇总文件?
  • C++ multiset数据结构的使用情况说明
  • [界面通过zmq请求调用指定动态库函数(二)]不同动态库接口不同
  • Unity游戏打包——打包流程
  • 【开题答辩全过程】以 中华美食宝典食谱分享系统的设计与实现为例,包含答辩的问题和答案
  • HTML应用指南:利用GET请求获取MSN财经股价数据并可视化
  • 电脑没加域却能获取到IP地址
  • 力扣hot100 | 堆 | 215. 数组中的第K个最大元素、347. 前 K 个高频元素、128. 最长连续序列
  • 鞍点(Saddle Point)一文通透从曲面直觉到博弈与优化
  • 手写MyBatis第46弹:多插件责任链模式的实现原理与执行顺序奥秘--MyBatis插件架构深度解析
  • 【机器学习学习笔记】numpy基础2
  • 基于站点、模式、遥感多源降水数据融合技术应用
  • 基于单片机自行车码表/骑行运动监测
  • CVE Push Service | 高危漏洞实时情报自动化推送工具
  • Python备份实战专栏第4/6篇:Vue.js + Flask 打造企业级备份监控面板
  • SQLSERVER关键字:N
  • 构建编程知识体系:从菜鸟教程入门到指针精通的系统学习指南
  • 华东制造企业推荐的SD-WAN服务商排名
  • MySQL 8 窗口函数详解
  • 【Linux】终止线程
  • 旧物回收小程序:科技赋能,开启旧物新生之旅
  • 02-Media-1-acodec.py 使用G.711编码和解码音频的示例程序