wakari(作者)
发布于 2026-04-06 / 45 阅读
3
0

【04】Git 复习汇总|从基础原理到实战操作(含 IDEA+GitHub 配置)

前言

最近复习了Git,算是掌握了Git的基本原理和使用方法,写篇文章进行汇总记录吧。

Git简介

版本控制

版本控制(Revisioncontrol)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。版本需要迭代,需要版本管理器。

有什么作用呢?

  • 实现跨区域多人协同开发

  • 追踪和记载一个或者多个文件的历史记录

  • 组织和保护你的源代码和文档

  • 统计工作量

  • 并行开发、提高开发效率

  • 跟踪记录整个软件的开发过程I

  • 减轻开发人员的负担,节省时间,同时降低人为错误

版本控制分类

本地版本控制:记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。

集中版本控制:所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、VSS。

分布式版本控制:所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。不会因为服务器损坏或者网络问题,造成不能工作的情况!每个人都拥有全部的代码。有安全隐患。代表产品:Git。

Git和SVN

image-20260406173203822

Git可以直接看到更新了哪些代码和文件!

Git的历史

image-20260406173248266

Linux社区中存在很多的大佬!破解研究BitKeeper!

image-20260406173318721

Git下载、安装

找镜像网站进行下载。安装包就一直下一步就行了,安装完毕就可以使用了。

安装成功后在开始菜单中会有Git项,菜单下有3个程序:任意文件夹下右键也可以看到对应的程序!

image-20260406173414615
  • Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多

  • Git CMD:Windows风格的命令行

  • GitGUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

Git必要的配置

git config -l 查看配置清单。虽然已经配置了用户信息,但是新的电脑上面是没有的。

image-20260406173540338

git config --system --list 查看系统配置。

image-20260406173559196

git config --global --list 查看本地配置,必须要配置用户名和邮箱,因为不配置的话,就不知道是谁在提交了。其实就这一步比较关键,只搞这一步就行了,就是配置全局用户名、全局邮箱。

image-20260406173829376
# 设置全局用户名(替换成你的名字,比如 "张三" 或 GitHub 用户名)
git config --global user.name "Your Name" 
# 设置全局邮箱(替换成你的邮箱,比如注册 GitHub/Gitee 的邮箱) 
git config --global user.email "your_email@example.com"

两个核心配置文件,使用命令修改,就和打开本地的这些文件,然后修改,是一样的。

image-20260406173926856
image-20260406173901247

Git原理与工作流程

Git原理

了解即可。

image-20260406174100789
image-20260406174115354

工作流程

image-20260406174205356

Git项目的搭建

创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。

本地化搭建就是:

git init

远程克隆就是:

git clone url

Git文件的操作

文件的4种状态

了解即可。

image-20260406174332187

举例说明

先git init初始化本地仓库。然后新建一个hello.txt,使用命令查看文件的状态。

# 查看文件状态,不加文件名就是查看所有文件状态
git status[filename] 
image-20260406174412891

显示没有被跟踪。

# 添加所有文件到暂存区
git add .

添加到暂存区,变成待提交的状态。

image-20260406174456765

最后提交暂存区中的内容到本地仓库。

# 提交暂存区中的内容到本地仓库  -m 提交信息
git commit -m "xxxxxxxxx"

如何忽略文件

image-20260406174534389

一般项目中,只要用了git管理,都有这个文件,按语法可以自己来配置哪些文件可以忽略。

image-20260406174617786

★上传本地仓库到Github

两种方法

github是有墙的,比较慢,在国内的话,我们一般使用gitee,公司中有时候会搭建自己的gitlab服务器。自己搭建的话,就使用gitlab,不难。

先注册Github账号,然后有多种方法可以实现上传本地仓库到Github。

  • 方法 1:先克隆远程仓库 → 再放本地代码(最适合新手、最不容易出错) http协议

  • 方法 2:先建本地仓库 → 再关联远程(标准流程、适合懂一点 Git 的人) ssh协议

方法二标准 Git 工作流,适合已经有本地项目,不想先 clone 再拷文件的人。

配置SSH

为什么要配置SSH?

因为你用的远程地址是这种:

git@github.com:用户名/仓库名.git

GitHub 不认 “你是谁”,只认密钥对。只要你用 git@github.com:... 这种地址,push /pull 都要 SSH 认证。

日常开发、长期用、想省事 → 优先用第二种方法(本地 init + SSH),因为方法一,每次 push 可能要输账号密码。临时传个项目、不想折腾、纯新手 → 用第一种方法(先 clone)

配置SSH的步骤:

1.Windows:打开 Git Bash(必须用这个,别用 cmd)

2.复制下面这条命令,直接粘贴运行:
ssh-keygen -t ed25519 -C “你的GitHub注册邮箱”
把里面的邮箱换成你自己的 GitHub 邮箱
然后一路按 回车 3 次,不需要输入任何东西。

3.复制这条命令运行:

cat ~/.ssh/id_ed25519.pub

4.把公钥粘贴到 GitHub:

  • 打开 GitHub → 右上角头像 → Settings

  • 左侧找到 SSH and GPG keys

  • 点击 New SSH key

  • Title 随便填(比如:我的笔记本)

  • Key 类型选 Authentication key

  • 把刚才复制的公钥粘贴到下面的大框里

  • Add SSH key → 完成!

    5.测试是否成功:
    回到终端,输入:ssh -T git@github.com
    如果出现:

Hi xxx! You've successfully authenticated...

推送本地项目

image-20260406175153926

可能遇到的问题

1.分支问题

  • 你的分支是 master,不是 main

使用:

git push -u origin master

2.端口问题

  • 22 端口被墙 / 被封 → SSH 连不上 GitHub

原因是:国内网络把 GitHub 的 22 端口屏蔽了,不是你配置错了!
一步解决:让 SSH 走 443 端口(绕过封锁)

nano ~/.ssh/config

打开后,把下面这段完整粘贴进去
Host github.com
HostName ssh.github.com
User git
Port 443
IdentityFile ~/.ssh/id_ed25519
粘贴好后:

  • Windows / MacCtrl + O → 回车保存

  • 再按 Ctrl + X 退出

现在测试连接!
ssh -T git@github.com
如果出现:

Hi xxx! You've successfully authenticated...

✅ SSH 成功复活!

最后再推送你的代码

git push -u origin master

直接成功!

  • GitHub 官方提供了 443 端口的 SSH 服务

  • 443 是网页端口,不会被墙

  • 我们只是让 Git 换个出口,密钥不用改、配置不用动

IDEA中使用Git操作

点击左边这个按钮,就可以提交文件了,这里其实默认就是直接提交到本地仓库了,不需要先暂存区,在本地仓库。还可以填提交信息。每次修改代码,都需要提交以下,然后写提交信息。

image-20260406175417062

左下角点分支,可以看到提交的记录:

image-20260406175527618

还能进行还原之前的提交:

image-20260406175557678

绑定远程的Github仓库地址,可以添加和删除远程仓库地址。

image-20260406175701187
image-20260406175716828

有远程仓库后,就可以直接进行提交并推送了:

image-20260406175808549

最上面还可以调分支:

image-20260406175829001

Git的分支、团队合作

一个项目可能有多个分支。

image-20260406175851898

分支在GIT中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,我们就需要处理一些问题了!

image-20260406175901308

如果了冲突了就需要协商即可!
如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择保留他的代码,还是你的代码,保留谁的修改! master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。


评论