Git 基础操作指南

前情提要:Git代码不会识别#为注释,所以再实验的时候请把#部分的注释给去掉

一、Git 是什么

1.1 Git 的诞生与概念

Git 是一个分布式版本控制系统 (Distributed Version Control System, DVCS),由 Linux 之父 Linus Torvalds 在 2005 年开发,最初是为了管理 Linux 内核代码。与传统集中式版本控制系统 (如 SVN) 不同,Git 采用分布式架构,每个开发者本地都有完整仓库副本,这带来了三大革命性优势:离线工作、强大的分支管理能力和极快的操作速度。

Git 的核心功能是记录文件的变更历史,让开发者能够方便地进行版本管理、团队协作和代码回溯。通过 Git,你可以:

  • 跟踪代码的每一次修改
  • 创建并行开发分支
  • 轻松回滚到任何历史版本
  • 与团队成员高效协作
  • 管理项目的完整历史记录

1.2 Git 的基本概念

在深入学习 Git 操作前,需要先理解几个核心概念:

概念 解释
仓库 (Repository) 包含所有代码和版本历史的目录,即项目的完整备份
工作区 (Working Directory) 当前正在编辑的文件所在的目录
暂存区 (Stage/Index) 临时存放更改的区域,准备提交
提交 (Commit) 记录代码的一次变化,形成版本历史
分支 (Branch) 代码的一个独立版本,允许并行开发
合并 (Merge) 将一个分支的更改合并到另一个分支
克隆 (Clone) 从远程仓库复制代码到本地
拉取 (Pull) 从远程仓库获取最新更改
推送 (Push) 将本地更改推送到远程仓库

这些概念构成了 Git 操作的基础,理解它们将帮助你更高效地使用 Git。

1.3 Git 与 GitHub/GitLab/Gitee 的关系

虽然 Git 和 GitHub 常被一起提及,但它们是不同的概念:

  • Git是一个开源的版本控制系统,是一个工具
  • GitHub是一个基于 Git 的代码托管平台,提供 Web 界面和额外服务
  • GitLab和 Gitee (码云) 是类似 GitHub 的代码托管平台,提供不同的功能和服务

Git 可以独立于这些平台使用,但结合这些平台可以更方便地进行团队协作、代码审查和项目管理。

二、Git 安装与配置

2.1 Windows 系统安装 Git

在 Windows 系统上安装 Git 非常简单,只需按照以下步骤操作:

下载安装包:访问 Git 官方网站 下载最新版本的 Git 安装程序。

验证安装:安装完成后,打开 Git Bash,输入以下命令检查是否安装成功:

bash 复制代码
git --version

如果显示版本号 ,则说明安装成功。

2.2 初次配置 Git

安装完成后,需要进行一些基本配置:

  1. 设置全局用户名和邮箱:
bash 复制代码
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

这一步非常重要,因为每次提交代码时都会使用这些信息来标识作者身份。

  1. 检查配置:
bash 复制代码
git config --list

确认输出中包含 user.name 和 user.email 的配置。

  1. 设置默认文本编辑器(可选):
bash 复制代码
git config --global core.editor "code --wait"  # 使用VS Code作为编辑器
  1. 设置差异比较工具(可选):
bash 复制代码
git config --global diff.tool vscode
git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"
  1. 设置自动换行处理(Windows 用户建议设置):
bash 复制代码
git config --global core.autocrlf true

2.3 SSH 密钥配置(可选但推荐)

如果你计划使用 SSH 协议连接远程仓库(如 GitHub、GitLab 等),需要配置 SSH 密钥:

  1. 生成 SSH 密钥:
bash 复制代码
ssh-keygen -t rsa -C "你的邮箱"

连续按三次回车键使用默认设置。

  1. 查看公钥:
bash 复制代码
cat ~/.ssh/id_rsa.pub
  1. 复制输出的公钥内容。
  2. 添加公钥到远程平台:
    将复制的公钥添加到 GitHub、GitLab 或 Gitee 等平台的 SSH 密钥设置中。

三、开始使用 Git

3.1 本地仓库操作

3.1.1 创建新仓库

在现有项目目录中初始化一个新的 Git 仓库:

bash 复制代码
cd /path/to/your/project  # 进入项目目录
git init  # 初始化Git仓库

这会在项目目录中创建一个名为.git的隐藏 文件夹,包含了所有 Git 相关的数据------在我的创建过程中,第一次输入git init只是显示了具体参数的用法,遇到这种情况大家再输入一次git init就好

3.1.2 克隆远程仓库

如果你需要从远程仓库开始,可以使用git clone命令:

bash 复制代码
git clone https://github.com/user/repository.git  # 克隆远程仓库到当前目录
git clone https://github.com/user/repository.git my-local-repo  # 克隆到指定目录

3.2 基本工作流程

Git 的基本工作流程包括三个主要步骤:

  1. 修改文件:在工作区中进行代码修改
  2. 暂存更改:将需要提交的更改添加到暂存区
  3. 提交更改:将暂存区中的更改保存到仓库中

3.2.1 查看文件状态

在进行任何操作前,了解文件的当前状态非常重要:

bash 复制代码
git status  # 查看当前工作区的状态
git status -s  # 以简洁模式查看状态

3.2.2 添加文件到暂存区

将文件从工作区添加到暂存区:

bash 复制代码
git add filename  # 添加指定文件到暂存区
git add .  # 添加当前目录下的所有文件(包括子目录)到暂存区
git add *.py  # 添加当前目录下的所有.py文件到暂存区

3.2.3 提交更改

将暂存区中的更改提交到本地仓库:

bash 复制代码
git commit -m "提交信息"  # 提交暂存区的更改,并添加描述信息

提交信息规范:良好的提交信息有助于理解代码变更,建议遵循以下格式:

<类型>(<范围>): <描述>

例如

bash 复制代码
feat(login): 添加用户登录功能
fix(profile): 修复个人资料显示问题
docs: 更新README文档

3.2.4 查看提交历史

查看项目的提交历史记录:

bash 复制代码
git log  # 查看所有提交历史
git log --oneline  # 查看简洁的提交历史
git log -n 5  # 查看最近5次提交
git log --graph  # 查看分支合并图

3.3 远程仓库操作

3.3.1 初始化本地仓库

  1. 打开终端(Windows 可使用 PowerShell 或命令提示符,Mac/Linux 使用终端)
  2. 进入你的项目文件夹:
bash 复制代码
cd C:\Users\chanpi\Desktop\Backtesting
  1. 初始化 Git 仓库:
bash 复制代码
git init

3.3.2 关联远程 GitHub 仓库

  1. 将本地仓库与你的 GitHub 仓库关联:
bash 复制代码
git remote add origin https://github.com/JaneSmith540/BT.git

注:如果之前已关联过其他远程仓库,可先删除旧关联:

bash 复制代码
git remote remove origin

3.3.3 添加文件并提交

  1. 将项目中所有文件添加到暂存区:
bash 复制代码
git add .

(.表示添加当前目录下所有文件,若有不需要上传的文件,可创建.gitignore文件排除)

  1. 提交暂存区文件到本地仓库,填写提交说明(替换"初始提交"为具体描述):
bash 复制代码
git commit -m "初始提交"

3.3.4 推送到 GitHub 仓库

将本地提交推送到远程 GitHub 仓库:

bash 复制代码
git push -u origin master

3.4 分支管理

分支是 Git 的强大功能之一,它允许你在不影响主代码的情况下进行实验性开发:

3.4.1 分支查看

cd到当前目录后,可以使用相应的语句来查看分支

bash 复制代码
git branch

3.4.2 创建和切换分支

bash 复制代码
git branch new-branch  # 创建新分支
git checkout new-branch  # 切换到新分支
git checkout -b new-branch  # 创建并切换到新分支(常用)

3.4.3 合并分支

将一个分支的更改合并到当前分支:

bash 复制代码
git checkout main  # 切换到目标分支(例如main)
git merge feature-branch  # 合并feature-branch到当前分支

3.5 撤销操作

3.5.1 撤销工作区修改

bash 复制代码
git checkout -- filename  # 撤销未暂存的修改

3.5.2 撤销暂存区修改

bash 复制代码
git reset HEAD filename  # 撤销已暂存但未提交的修改

3.5.3 回退到历史版本

bash 复制代码
git log  # 找到目标版本的commit哈希值
git reset --hard commit-hash  # 回退到指定版本

3.5.4 删除创建分支

bash 复制代码
# 安全删除新分支
git branch -d new-branch

注意:git reset --hard会丢弃所有后续更改,使用时需谨慎。

四、进阶技巧

4.1 忽略文件

创建.gitignore文件来指定 Git 应忽略的文件和目录:

bash 复制代码
# 忽略所有.log文件
*.log

# 忽略node_modules目录
node_modules/

# 忽略.DS_Store文件(Mac系统)
.DS_Store

# 忽略.idea目录(IntelliJ IDEA)
.idea/

# 但保留特定文件
!important.txt

将.gitignore文件添加到版本控制中,确保团队成员使用一致的忽略规则。

4.2 标签管理

标签用于为仓库中的特定提交打标签,通常用于标记版本发布点:

bash 复制代码
git tag v1.0  # 创建一个轻量标签
git tag -a v1.0 -m "版本1.0发布"  # 创建一个附注标签
git push origin v1.0  # 推送标签到远程仓库

4.3 暂存功能

在开发过程中,你可能需要临时切换分支,但又不想提交当前的更改。这时可以使用git stash:

bash 复制代码
git stash  # 暂存当前工作区的更改
git stash list  # 查看所有暂存
git stash apply  # 恢复最新的暂存
git stash pop  # 恢复并删除暂存记录
相关推荐
潘达斯奈基~9 小时前
在使用spark的applyInPandas方法过程中,遇到类型冲突问题如何解决
大数据·笔记
火星资讯10 小时前
腾多多数字零售模式:从成本转嫁到全生态共赢的破局实践
大数据
望获linux11 小时前
【实时Linux实战系列】实时 Linux 的自动化基准测试框架
java·大数据·linux·运维·网络·elasticsearch·搜索引擎
金宗汉11 小时前
《宇宙递归拓扑学:基于自指性与拓扑流形的无限逼近模型》
大数据·人工智能·笔记·算法·观察者模式
直有两条腿11 小时前
【数据迁移】HBase Bulkload批量加载原理
大数据·数据库·hbase
Joy T12 小时前
海南蓝碳:生态财富与科技驱动的新未来
大数据·人工智能·红树林·海南省·生态区建设
风清再凯12 小时前
01-ELK安装ES,ES-head
大数据·elk·elasticsearch
Guheyunyi13 小时前
风险感知中枢:监测预警系统的架构与核心
大数据·运维·安全·重构·架构·自动化
正在走向自律13 小时前
大数据背景下时序数据库选型指南:国产开源技术的突破与实践
大数据·开源·时序数据库