Git学习

发布于:2025-06-25 ⋅ 阅读:(17) ⋅ 点赞:(0)

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

Git 工作流程图解:

                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. 选择一个合适的地方,创建一个空目录:
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
  1. 通过git init命令把这个目录变成Git可以管理的仓库(版本库又名仓库-Repository)。
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 查看修改内容
 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 算法)
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. 验证生成结果
ls ~/.ssh  # 应该看到 id_ed25519(私钥)和 id_ed25519.pub(公钥)

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

macOS

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

Linux(需要安装 xclip)

sudo apt install xclip  # Ubuntu/Debian
xclip -sel clip < ~/.ssh/id_ed25519.pub

Windows(Git Bash)

cat ~/.ssh/id_ed25519.pub | clip

Windows(PowerShell)

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 连接

ssh -T git@github.com

正常应该返回:Hi username! You’ve successfully authenticated…

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

  1. 创建配置文件
touch ~/.ssh/config
chmod 600 ~/.ssh/config
  1. 编辑配置(示例)
# 默认账号
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. 使用时替换地址
git clone git@github-company:company/project.git

7.可视化流程

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到