Git学习

Git 工作流程图及Git 命令速查表

Git 工作流程图解:

pgsql 复制代码
                git clone
  ┌──────────────────────────┐
  │     Remote Repository    │ ←──────────────┐
  │        (e.g. GitHub)     │                │
  └────────────┬─────────────┘                │
               │                              │
           git pull                           │ git push
               │                              │
  ┌────────────▼─────────────┐        ┌───────┴──────────────┐
  │     Local Repository     │◄───────┤     Remote Changes   │
  │     (git commit 保存)     │        └─────────────────────┘
  └────────────┬─────────────┘
               │
           git commit
               │
  ┌────────────▼─────────────┐
  │     Staging Area (Index) │  ←─── git add
  └────────────┬─────────────┘
               │
        Modified/Tracked Files
               ▲
       ┌───────┴────────┐
       │ Working Dir.   │
       │  (本地工作目录)  │  
       └────────────────┘

完整数据流:

典型工作流程示例:

Git 初始化与配置

命令 作用
git init 初始化本地仓库
git config --global user.name "你的名字" 设置用户名
git config --global user.email "你的邮箱" 设置邮箱
git config --global core.editor vim 设置默认编辑器
git config --list 查看当前 Git 配置
  • 创建一个版本库:
  1. 选择一个合适的地方,创建一个空目录:
bash 复制代码
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
  1. 通过git init命令把这个目录变成Git可以管理的仓库(版本库又名仓库-Repository)。
bash 复制代码
git init
Initialized empty Git repository in /Users/michael/learngit/.git/
  1. 执行完毕后,当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见
  • 注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

基本工作流程

命令 作用
git status 查看状态
git add <文件> 添加到暂存区
git add . 添加所有修改
git commit -m "说明" 提交到本地仓库
git log 查看提交历史
git diff 查看修改内容
bash 复制代码
 git add file1.txt
 git add file2.txt file3.txt
 git commit -m "add 3 files."

Q:输入git add readme.txt,得到错误:fatal: not a git repository (or any of the

parent directories)。 A:Git命令必须在Git仓库目录内执行(git init除外),在仓库目录外执行是没有意义的。

Q:输入git add readme.txt,得到错误fatal: pathspec 'readme.txt' did not match

any files。

A:添加某个文件时,该文件必须在当前目录下存在,用ls或者dir命令查看当前目录的文件,看看文件是否存在,或者是否写错了文件名。

分支操作

命令 作用
git branch 查看所有本地分支
git branch <名称> 创建分支
git checkout <分支> 切换分支
git checkout -b <名称> 创建并切换新分支
git merge <分支> 合并分支到当前分支
git branch -d <名称> 删除分支

远程仓库

命令 作用
git remote -v 查看远程仓库地址
git remote add origin <地址> 添加远程仓库
git push -u origin master 第一次推送
git push 推送本地提交
git pull 拉取远程更新
git clone <地址> 克隆远程仓库

其他常用命令

命令 作用
git reset --hard <版本号> 回退到指定版本
git stash 暂存当前修改
git stash pop 还原暂存的修改
git tag <标签名> 打标签
git show <标签名> 查看标签信息

远程仓库

1.自行注册GitHub账号

2.生成新的 SSH 密钥(所有系统通用)

本地Git仓库和GitHub仓库之间的传输是通过SSH加密的;GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议;

GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

  1. 打开终端(Windows 使用 Git Bash 或 PowerShell)
  2. 执行密钥生成命令(推荐使用更安全的 Ed25519 算法)
bash 复制代码
ssh-keygen -t rsa -C "youremail@example.com"
ssh-keygen -t ed25519 -C "your_email@example.com"
  • 出现提示时按回车使用默认路径(~/.ssh/id_ed25519)
  • 可以设置密码(推荐)或直接回车留空
    在用户主目录下,将有.ssh目录,这个目录下有id_rsa和id_rsa.pub这两个文件。
  1. 验证生成结果
bash 复制代码
ls ~/.ssh  # 应该看到 id_ed25519(私钥)和 id_ed25519.pub(公钥)

3.各系统复制公钥的方法

macOS

bash 复制代码
pbcopy < ~/.ssh/id_ed25519.pub  # 自动复制到剪贴板

Linux(需要安装 xclip)

bash 复制代码
sudo apt install xclip  # Ubuntu/Debian
xclip -sel clip < ~/.ssh/id_ed25519.pub

Windows(Git Bash)

bash 复制代码
cat ~/.ssh/id_ed25519.pub | clip

Windows(PowerShell)

bash 复制代码
type $env:USERPROFILE\.ssh\id_ed25519.pub | clip

4.GitHub 添加密钥步骤

  1. 登录 GitHub → 点击右上角头像 → Settings
  2. 左侧菜单选择 SSH and GPG keys
  3. 点击 New SSH key 按钮
  4. 填写信息:
    Title :标识密钥用途(如 "My MacBook Pro")
    Key type :保持默认 Authentication Key
    Key:粘贴剪贴板中的公钥内容(以 ssh-ed25519 开头)
  5. 点击 Add SSH key 完成

5.测试 SSH 连接

bash 复制代码
ssh -T git@github.com

正常应该返回:Hi username! You've successfully authenticated...

6.多密钥管理(适用于多设备)

  1. 创建配置文件
bash 复制代码
touch ~/.ssh/config
chmod 600 ~/.ssh/config
  1. 编辑配置(示例)
bash 复制代码
# 默认账号
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519

# 公司账号
Host github-company
  HostName github.com
  User git
  IdentityFile ~/.ssh/company_key
  1. 使用时替换地址
bash 复制代码
git clone git@github-company:company/project.git

7.可视化流程

相关推荐
肥肠可耐的西西公主18 小时前
后端(JavaWeb)学习笔记(CLASS 2):SpringBootWeb入门
笔记·学习
半夏知半秋18 小时前
skynet debug_console控制台中debug指令使用
服务器·开发语言·学习·lua
Alex老夫子18 小时前
解决 husky > pre-commit hook failed (add --no-verify to bypass)
git·android studio
悠哉悠哉愿意18 小时前
【智能系统项目开发与学习记录】bringup功能包详解
学习·机器人·ros2
半夏知半秋19 小时前
skynet.newservice接口分析
笔记·后端·学习·安全架构
我的xiaodoujiao19 小时前
从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 15--二次开发--封装公共方法 3
python·学习·测试工具
立志成为大牛的小牛19 小时前
数据结构——十四、构造二叉树(王道408)
数据结构·笔记·学习·程序人生·考研
RanceGru19 小时前
LLM学习笔记5——本地部署ComfyUI和Wan2.1-T2V-1.3B文生视频模型
笔记·学习·stable diffusion·transformer
molong93120 小时前
Activity/Service/Broadcast/ContentProvider 生命周期交互
android·学习·交互
楼田莉子20 小时前
python学习:爬虫+项目测试
后端·爬虫·python·学习