Git 教程

Git 常用知识点总结

Git 是一款强大的分布式版本控制系统,以下是其常用知识点总结:

一、基础概念

  1. 仓库(Repository):存储项目代码和版本历史的地方,分为本地仓库(本地目录)和远程仓库(如 GitHub、GitLab 等)。
  2. 工作区(Working Directory):当前编辑的文件目录,是代码的实际工作区域。
  3. 暂存区(Staging Area) :临时存放待提交的修改,介于工作区和本地仓库之间,通过 git add 命令将工作区修改添加到此处。
  4. 版本库(Local Repository) :存储所有提交的版本历史,通过 git commit 将暂存区内容提交到这里。

二、常用命令

0. 初始化与配置

设置全局用户名和邮箱:

  • git config --global user.name "Your Name"
    - git config --global user.email "your.email@example.com"

查看当前配置:

  • git config --list

1. 仓库初始化与克隆

  • git init:在当前目录初始化一个新的本地仓库。
  • git clone <远程仓库地址>:克隆远程仓库到本地(会创建一个与仓库同名的目录)。

2. 查看状态与差异

  • git status:查看工作区、暂存区的状态(哪些文件被修改、新增或删除)。
  • git diff:查看工作区与暂存区之间的文件差异。
  • git diff --staged:查看暂存区与本地仓库最新版本的差异。

3. 暂存与提交

  • git add <文件名>:将指定文件的修改添加到暂存区;git add .git add -A 添加所有修改。
  • git commit -m "提交说明":将暂存区的内容提交到本地仓库,-m 后跟提交信息(需清晰描述修改内容)。
  • git commit --amend:修改最近一次的提交信息(若提交后发现信息有误)。

4. 分支操作

  • git branch:查看本地所有分支(当前分支前有 * 标记)。
  • git branch <分支名>:创建新分支。
  • git checkout <分支名>:切换到指定分支;git switch <分支名>(Git 2.23+ 新增,更直观)。
  • git checkout -b <分支名>git switch -c <分支名>:创建并切换到新分支。
  • git merge <分支名>:将指定分支的代码合并到当前分支(需先切换到目标分支)。
  • git branch -d <分支名>:删除已合并的本地分支;-D 强制删除未合并的分支。
  • git push origin --delete <分支名>:删除远程分支。

5. 远程仓库交互

  • git remote:查看已配置的远程仓库;git remote -v 显示详细地址。
  • git remote add <远程名> <地址>:添加远程仓库(通常远程名用 origin)。
  • git push <远程名> <分支名>:将本地分支推送到远程仓库(首次推送可加 -u 关联,后续直接 git push)。
  • git pull <远程名> <分支名>:拉取远程分支的最新代码并合并到本地当前分支(等价于 git fetch + git merge)。
  • git fetch <远程名>:获取远程仓库的最新更新(不合并,需手动 git merge)。

6. 版本回退与撤销

  • git log:查看提交历史(--oneline 简化显示)。
  • git reset --hard <提交ID>:将本地仓库回退到指定版本(工作区和暂存区也会同步修改,慎用)。
  • git revert <提交ID>:创建一个新的提交,抵消指定提交的修改(安全,不改变历史)。
  • git restore <文件名>:撤销工作区的修改(未 add 的文件)。
  • git restore --staged <文件名>:将暂存区的修改撤销回工作区(已 add 但未 commit 的文件)。

7. 其他常用

  • git stash:将工作区未提交的修改暂存起来(用于临时切换分支)。
  • git stash pop:恢复最近一次 stash 的内容,并删除该记录。
  • git stash list:查看所有暂存的 stash 记录。
  • git tag <标签名>:给当前版本打标签(用于标记发布版本,如 v1.0)。
  • git tag:查看所有标签;git push origin <标签名> 推送标签到远程。

三、工作流建议

  • 通常使用 main/master 作为主分支,保持稳定可发布状态。
  • 开发新功能时,从主分支创建新分支(如 feature/xxx),完成后合并回主分支。
  • 修复bug时,从主分支创建 bugfix/xxx 分支,修复后合并。
  • 提交信息需清晰(如 feat: 新增登录功能fix: 修复表单验证bug),便于追溯。

掌握这些知识点,可满足日常开发中的版本管理需求,复杂场景可进一步学习 Git 的高级功能(如变基 rebase、冲突解决等)。

Git 下载安装、密钥生成与绑定指南(以 GitHub 为例)

一、Git 下载与安装

1. 下载 Git

  • Windows 系统
    访问 Git 官方网站,根据系统位数(32位/64位)下载对应安装包。
  • macOS 系统
    • 方式1:通过 Git 官方网站 下载安装包。
    • 方式2:使用包管理工具 Homebrew,终端执行 brew install git
  • Linux 系统
    • Debian/Ubuntu 系列:终端执行 sudo apt-get install git
    • CentOS/RHEL 系列:终端执行 sudo yum install git

2. 安装 Git

  • Windows 系统
    双击下载的安装包,按默认选项一路点击"Next"即可(建议勾选"Add Git to PATH",方便终端调用)。
  • macOS/Linux 系统
    下载的安装包双击后按提示完成安装;通过包管理工具安装的无需额外操作。

3. 验证安装

打开终端(Windows 用 Git Bash 或 cmd,macOS/Linux 用终端),执行 git --version,若显示版本号(如 git version 2.40.1),则安装成功。

二、SSH 密钥生成

1. 检查是否已有密钥

终端执行以下命令,查看是否存在已生成的 SSH 密钥:

bash 复制代码
ls -la ~/.ssh

若显示 id_rsa(私钥)和 id_rsa.pub(公钥),则可直接使用,无需重复生成。

2. 生成新密钥

若没有密钥或需新建,执行以下命令:

bash 复制代码
ssh-keygen -t rsa -C "你的邮箱地址(如 xxx@example.com)"
  • 提示"Enter file in which to save the key"时,按回车使用默认路径(~/.ssh/id_rsa)。
  • 提示"Enter passphrase"时,可设置密钥密码(增强安全性,回车则无密码),后续操作需输入该密码。
  • 再次确认密码后,密钥生成成功,会显示密钥保存路径和指纹信息。

3. 查看公钥内容

生成后,通过以下命令查看公钥内容(需复制用于后续绑定):

bash 复制代码
cat ~/.ssh/id_rsa.pub

输出内容类似:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC... 你的邮箱,全选复制该内容。

三、SSH 密钥与远程仓库绑定

1. 登录远程仓库

打开 GitHub 官网,登录你的账号。

2. 进入密钥设置页面

  • 点击右上角头像,选择 "Settings"。
  • 在左侧菜单中找到 "SSH and GPG keys",点击进入。

3. 添加新密钥

  • 点击 "New SSH key" 按钮。
  • 在 "Title" 栏填写密钥名称(如"我的笔记本电脑",便于区分设备)。
  • 在 "Key" 栏粘贴之前复制的公钥内容(确保无多余空格或换行)。
  • 点击 "Add SSH key" 完成添加,若账号开启二次验证,需输入验证码确认。

4. 验证绑定是否成功

终端执行以下命令,测试与 GitHub 的连接:

bash 复制代码
ssh -T git@github.com
  • 首次连接会提示 "Are you sure you want to continue connecting",输入 yes 回车。
  • 若显示 "Hi 你的用户名! You've successfully authenticated...",则绑定成功。

补充说明

  • 密钥绑定的作用:通过 SSH 协议与远程仓库交互(如 git clonegit push)时,无需每次输入账号密码,更安全高效。
  • 不同远程仓库(如 GitLab、Gitee)的绑定步骤类似,均需在对应平台的"SSH 密钥"设置中添加公钥。
  • 若更换设备或密钥丢失,需重新生成密钥并在远程仓库更新绑定。
  • 如果使用gitee,可在添加秘钥处查看秘钥生成方案。
复制代码
相关推荐
蜜汁小强9 小时前
macOS 上的git代理配置在哪里
git·macos·代理模式·proxy模式
钟佩颖10 小时前
Git .
git
Zhongyi_Li1 天前
git merge的一些记录
git
沛沛老爹1 天前
Web开发者转型AI:Agent Skills版本控制与管理实战——从Git到AI技能仓库
java·前端·人工智能·git·架构·rag
子琦啊1 天前
极速移除 Git 历史中的大文件,告别 git filter-branch太慢的问题
git
儒雅的晴天1 天前
git笔记
笔记·git
Ama_tor1 天前
git bash|下载、安装与配置(Windows11)
git
惜__缘1 天前
Git项目迁移的坑点
git
阿杰 AJie1 天前
Git 分支与多人开发使用指南(Gitee + 本地 Git)
git·elasticsearch·gitee