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

[C++] Git 使用教程(从入门到常用操作)

1. Git 简介

Git 是一款分布式版本控制系统,用来跟踪文件变化、协作开发、管理项目版本。
它是开源的,由 Linus Torvalds 在 2005 年开发,广泛用于开源与企业项目中。


2. 安装 Git

Windows

  1. 前往 Git 官网 下载并安装。

  2. 安装时建议勾选 Git Bash,方便在命令行使用。

Linux

sudo apt install git    # Ubuntu/Debian
sudo yum install git    # CentOS/RHEL

macOS

brew install git

3. 配置 Git

首次使用需要设置用户名和邮箱,这些会记录在提交历史中。

git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

查看配置:

git config --list

4. 创建与克隆仓库

新建本地仓库

mkdir myproject
cd myproject
git init

克隆远程仓库

git clone https://github.com/用户名/仓库名.git

5. 常用工作流

  1. 查看文件状态

git status
  1. 将文件添加到暂存区

git add 文件名
git add .  # 添加所有改动
  1. 提交更改

git commit -m "提交说明"
  1. 查看提交历史

git log
git log --oneline --graph --decorate --all  # 简洁图形化查看

6. 连接远程仓库

git remote add origin 仓库地址
git remote -v   # 查看远程地址

7. 推送与拉取

推送本地分支到远程

git push origin 分支名
# 第一次推送建议:
git push -u origin main

拉取远程分支更新

git pull origin 分支名

8. 分支管理

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

9. 回退与撤销

回退到上一个提交

git reset --hard HEAD^

撤销文件修改

git checkout -- 文件名

10. .gitignore 忽略文件

在项目根目录创建 .gitignore 文件,写入要忽略的内容:

node_modules/
*.log
*.tmp
.DS_Store

11. 常用技巧

  • 查看某个文件的历史:

git log 文件名
  • 查看两个版本的差异:

git diff 版本1 版本2
  • 暂存当前修改:

git stash
git stash pop

12. 常见问题

1. 推送报错 non-fast-forward
原因:远程有新的提交,本地落后。
解决:

git pull --rebase origin 分支名
git push origin 分支名

2. 误删分支
如果分支还在 reflog 中,可以恢复:

git reflog
git checkout 版本号

📌 总结

  • Git 三个关键区域:工作区 → 暂存区 → 仓库。

  • 常用四步:

    git add .
    git commit -m "说明"
    git push
    git pull
    
  • 养成写清晰提交信息的习惯。

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

相关文章:

  • TDengine IDMP 基本功能(6. 无问智推)
  • TDengine IDMP 基本功能(7. 智能问数)
  • C++11新特性深度解析
  • 【CF】Day127——杂题 (数论 gcd | 数论 gcd | 博弈论 | 二分图判断 | 贪心 + 暴力 / 二分答案 | 数论 gcd + 动态规划)
  • OSG+Qt —— 笔记1 - Qt窗口加载模型(附源码)
  • Mybatis 源码解读-SqlSession 会话源码和Executor SQL操作执行器源码
  • 《Python函数:从入门到精通,一文掌握函数编程精髓》
  • Transformer网络结构解析
  • 《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准
  • CNN - 卷积层
  • GaussDB数据库架构师修炼(十六) 如何选择磁盘
  • 《算法导论》第 24 章 - 单源最短路径
  • 20250814 最小生成树总结
  • Java 大视界 -- Java 大数据机器学习模型在金融欺诈检测与防范策略制定中的应用(397)
  • 【Demo】AI-ModelScope/bert-base-uncase 模型训练及使用
  • 市面上有没有可以导入自有AI算法模型的低空平台?
  • pytorch学习笔记-Loss的使用、在神经网络中加入Loss、优化器(optimizer)的使用
  • Linux 对 YUM 包的管理
  • HTTPS 工作原理
  • Java使用Apache POI读取Excel文件
  • dkms安装nvidia驱动和多内核支持
  • label studio 服务器端打开+xshell端口转发设置
  • UniApp 中使用 tui-xecharts插件(或类似图表库如 uCharts)
  • 2025年Java大厂面试场景题全解析:高频考点与实战攻略
  • 20道DOM相关前端面试题
  • Java面试场景题大全精简版
  • VSCode打开新的文件夹之后当前打开的文件夹被覆盖
  • 树形DP详解
  • 基于springboot的信息化在线教学平台的设计与实现(源码+论文)
  • 2025天府杯数学建模C题