导图社区 Git
这是一篇关于Git的思维导图,总结了Git的使用方法和相关知识,无论是对于初学者了解Git的基本概念和操作流程,还是对于有经验的开发者查阅和巩固Git的使用技巧,都具有很高的参考价值。
编辑于2026-01-06 14:24:24Git
环境配置
下载
https://git-scm.com/
设置用户名称和email地址
git config --global user.name "用户名"
git config --global user.email "邮件地址"
设置SSH Key
$ ssh-keygen -t rsa -C "邮件地址" Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa)://回车 Enter passphrase (empty for no passphrase)://密码 Enter same passphrase again://确认密码 Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa //私有密钥路径 Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub //公开密钥路径 The key fingerprint is: SHA256:Ib8zkOsyAgEL5novrbItXbjMI1IcFFehuzoxWXs9xk8 邮件地址 The key's randomart image is: +---[RSA 3072]----+ | ....o. | |o... . | |=o . . . | |o.. .. + . | |.o =..ooS | |o O o..o=.E | | B B....++ | |=.X.=. o. | |o=+* o. | +----[SHA256]-----+ 查看SSH Keys密钥 cat ~/.ssh/id_rsa.pub 添加SSH Keys密钥 https://github.com/settings/keys 私人密钥与GitHub进行认证 ssh -T git@github.com The authenticity of host 'github.com (20.27.177.113)' can't be established. ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'github.com' (ED25519) to the list of known hosts. Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa'://输入密码 Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.
查看所有设置
git config --list
保存设置的.gitconfig默认路径
C:\Users\用户名”目录下
[filter "lfs"] clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f process = git-lfs filter-process required = true [user] name = 用户名 email = 邮件地址 [color] ui = auto
SSH协议传输数据
在控制面板中的凭据管理器中查看

在Github创建仓库
 
获取仓库
初始化仓库
在目标文件夹下git init可创建.git仓库
克隆远程仓库
git clone 远程仓库地址

本地没有仓库时使用
1.Git四个工作区域
Git本地有四个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)、git仓库(Remote Directory)。文件在这四个区域之间的转换关系如下:  Workspace: 工作区,就是你平时存放项目代码的地方 Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息 Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本 Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换. //git add 文件名 
Workspace
工作区,就是你平时存放项目代码的地方
Index / Stage
暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
Repository
版本库 ,就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
Remote
远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换.
2、工作流程
git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
3、文件的两种状态
 Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged. Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件 Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified 
untracked未跟踪(未纳入版本库)
tracked已跟踪(被纳入版本库)
Unmodified未修改
Modified已修改
Staged已暂存
本地仓库操作
git log 查看提交日志
只显示第一行git log --pretty=short
q键退出
git status 查看文件状态
git status -s 简洁显示
git init 初始化仓库
git add 文件名 添加文件到暂存区
git add 目录 添加指定目录到暂存区,包括子目录
git add . 添加当前目录下的所有文件到暂存区
git commit 提交暂存区到本地仓库。然后进入类vim界面按Esc然后输入:wq退出 必须备注信息才能提交成功
git commit -m "备注信息" 添加备注信息提交(推荐)
git commit -a修改文件后不需要执行 git add 命令,直接来提交
git commit -m -a
git reset 回退版本
git reset HEAD 回退所有内容到上一个版本
git reset HEAD 文件名 回退指定文件的版本到上一个版本
git reset 版本 回退到指定版本
git diff 比较文件的不同,即暂存区和工作区的差异。
git rm 将文件从暂存区和工作区中删除。之后通过git commit -m "备注信息" 提交后彻底删除,不推荐直接右键删除文件
git mv 移动或重命名工作区文件。
用Git创建.gitignore文件忽略指定文件
touch .gitignore
在.gitignore文件中通过正则表达式来忽略文件
管理远程仓库
git remote 列出当前仓库中已配置的远程仓库
git remote -v
列出当前仓库中已配置的远程仓库,并显示它们的 URL。
git remote add <远程仓库名> <远程仓库地址>
添加一个新的远程仓库。指定一个远程仓库的名称和URL将其添加到当前仓库中。可添加多个仓库
git fetch
git remote rename <旧远程仓库名> <新远程仓库名>
将已配置的远程仓库重命名。
git remote rm <远程仓库名>
从当前仓库中删除指定的远程仓库
git remote set-url <远程仓库名> <新远程仓库地址>
修改指定远程仓库的 URL。
git remote show <远程仓库名>
显示指定远程仓库的详细信息,包括 URL 和跟踪分支。
git clone 远程仓库地址

本地没有仓库时使用
git push 远程仓库名 分支名 推送到远程仓库对应分支
git pull 远程仓库名 远程分支:本地分支 拉取下载远程代码并自动合并。若远程分支是与当前分支合并,则冒号后面的部分可以省略。
本地有仓库时使用
等于提取(fetch)+合并(merge)
会将代码develop移动到最新的push后位置
git fetch 提取 从远程获取代码库(不自动合并)
git merge 远程仓库名/分支名 合并
git rebase 远程仓库名/分支名 变基
git push origin 分支名 --force 强制将远程指定分支的提交退回本地分支HEAD所在提交
git fetch -p 从远程仓库获取最新信息并删除本地对已不存在的远程分支的引用
分支管理
5大分支
主分支 (master/main):
核心:存放稳定、可发布的产品代码。
流向:只能通过release或hotfix分支合并更新。
开发分支 (develop):
核心:集成最新开发成果的“准稳定”分支。
流向:feature和release分支的起点;feature和release分支的合并目标。
功能分支 (feature/):
核心:基于develop创建,用于开发单个新功能。
流向:完成后合并回 develop (通常需审核)。
发布分支 (release/):
核心:基于develop创建,用于版本发布前最终测试和小修复。
流向:测试/修复完成后,同时合并回 develop 和 master,然后在master打标签。
修复分支 (hotfix/):
git branch查看本地分支
如果使用git branch看不到内容 git add. 和git commit之后再次使用git branch就可以看到master分支了
git branch -r查看远程仓库分支
git branch -a查看本地远程仓库所有分支
git push 远程仓库名 分支名 将本地仓库分支推送至远程仓库
git branch 分支名 创建分支
git checkout -b 分支名 标签名 创建新分支指向标签
git checkout 分支名 切换分支
在当前分支提交的内容只显示在当前分支的工作区中
git switch 分支名 切换分支(Git 2.23+ 更安全的命令)
在当前分支提交的内容只显示在当前分支的工作区中
git branch -d 分支名 删除本地分支
进行了一些动作而未推送远程仓库则需要git branch -D分支名 强制删除
git merge 远程仓库名/分支名 合并
git rebase 远程仓库名/分支名 变基
git merge 本地分支名 合并本地分支
如果遇到冲突先手动修改文件然后添加至暂存区后提交
标签
git tag 查看标签
git tag 标签名 创建标签
git show 标签名 查看标签信息
git push 远程仓库名 标签名
git checkout -b 分支名 标签名 创建新分支指向标签
git tag -d 标签名 删除本地标签
git push origin :refs/tags/远程标签名 删除远程仓库标签
精简笔记
git status 查看文件状态–s 使输出信息更加简洁 git init 初始化仓库。(生成.git文件夹) git clone 远程仓库地址 拷贝一份远程仓库,也就是下载一个项目。 git add 文件名 将未跟踪的文件加入暂存区 git reset 将暂存区的文件取消暂存 git commit -m”日志信息”将暂存区的文件修改提交到本地仓库 -a加入暂存区 git log 查看历史提交记录 git rm 删除文件 git remote add 仓库名称 仓库地址 以名称和仓库地址创建仓库 git remote 查看仓库 -v远程仓库地址显示 git pull <远程主机名> <远程分支名>:<本地分支名>下载远程代码并合并 --allow-unrelated-histories 强制执行 git push <远程主机名> <本地分支名>:<远程分支名> 远程分支名 上传远程代码并合并 git branch 列出所有本地分支 -r 列出所有远程分支 -a 列出所有本地分支和远程分支 git branch 名称 创建分支 git checkout 分支名称 切换分支 git push 仓库名称 分支名称 git merge 要合并的分支名 合并到当前分支 git push 远程仓库名 本地分支名 将本地分支内容推送到远程仓库 git branch -d 本地分支名 删除本地分支 git branch -D 本地分支名 强制删除本地分支 git push 远程仓库名 -d 远程分支名 git tag 标签名 创建标签 git tag 查看标签 git show 标签名 查看标签详细信息 git push 远程仓库名 标签名 推送至远程仓库 git checkout -b 分支名 标签名git tag -d 标签名 删除本地标签 git push 远程仓库 :refs/tags/远程标签名 删除远程仓库 ssh-keygen -t rsa 在目录C:/Users/用户名/.ssh生成公钥id_rsa.pub和私钥id_rsa把公钥复制到远程服务器即可
TortoiseGit
下载
安装软件包和语言包https://tortoisegit.org/
克隆按钮需要shift+右击才能显示
安装完后重启电脑才能显示文件的状态
在本地创建的仓库需要右键选择推送后管理中配置
 将远程仓库的地址粘贴,远端填远程仓库分支名
Sourcetree
下载
重置分支到此次提交
软合并
文件取消暂存
可以恢复到提交之前的状态并不影响本地代码
在JetBrains配置

将工程文件转换成本地仓库

选择整个工程文件
JetBrains中推送至远程仓库方法
方法1

方法2
在Github创建新的仓库
获取仓库地址
例:https://github.com/282207134/FlaskDome.git
首次推送通过TortoiseGit
修改代码推送被拒绝时可以强制推送
git push -f origin master
手动推送时别选错分支