别看了,在加载了......

文章背景图

Git与GitHub

2026-06-08
5
-
- 分钟
|

一、Git 和 GitHub 是什么?

很多新手刚开始会把 Git 和 GitHub 当成同一个东西。

实际上:

名称

作用

Git

本地版本管理工具

GitHub

远程代码托管平台

简单理解:

 Git = 本地时光机
 ​
 GitHub = 云端备份仓库

例如:

 我的电脑
 │
 ├── 项目代码
 │
 └── .git(隐藏文件)

负责:

  • 保存历史版本

  • 记录修改

  • 回滚代码

而:

 GitHub

负责:

  • 云端备份

  • 多设备同步

  • 项目展示(只展示,不修改,只在本地修改,浏览器页面展示)

  • 开源协作


二、Git 工作流程

Git 的核心工作流:

 工作区
 ↓ git add .(添加新的改动到暂存区)
 ​
 暂存区
 ↓ git commit [-m "注释说明"]
 ​
 本地仓库
 ↓ git push
 ​
 GitHub远程仓库

三、第一次使用 Git

初始化仓库

进入项目目录:

 cd E:\personal-webdisplay-dev

初始化:

 git init

输出:

 Initialized empty Git repository

说明:

 .git

目录已经创建。

此时项目正式成为 Git 项目。


四、连接 GitHub 仓库

查看远程仓库:

 git remote -v

第一次通常为空。

添加远程仓库(现在网页端的GitHub上新建一个仓库,什么东西都不要放):

 git remote add origin https://github.com/用户名/仓库名.git

检查:

 git remote -v

输出:

 origin https://github.com/xxx.git (fetch)
 origin https://github.com/xxx.git (push)

说明绑定成功。


五、第一次提交

查看状态

 git status

会看到:

 Untracked files

表示:

 Git发现文件
 但还未管理

添加所有文件

 git add .

作用:

 工作区
 ↓
 暂存区

提交

 git commit -m "第一次上传个人主页项目"

作用:

 生成一个历史版本

例如:

 85a0def
 第一次上传个人主页项目

六、配置 Git 身份

第一次提交可能出现:

 Author identity unknown

原因:

Git 不知道你是谁。

配置:

 git config --global user.name "你的github昵称"
 ​
 //配置的这个邮箱是GitHub自动分配的邮箱,不是自己的私人邮箱
 git config --global user.email "一串数字+账户名@users.noreply.github.com"

查看:

 git config --global --list

七、GitHub 邮箱隐私问题

可能出现:

 GH007:
 Your push would publish a private email address

原因:

GitHub 开启了邮箱隐私保护。

解决:

使用 GitHub 提供的:

 xxxxxx+用户名@users.noreply.github.com

重新修改作者:

 git commit --amend --reset-author

八、首次 Push 冲突[网页端多余操作]

最容易遇到的问题。

例如:

在网页端创建仓库时勾选:

 Add README

GitHub 自动生成:

 README.md
 Initial Commit

此时:

 远程有提交
 ​
 本地也有提交

推送会报:

 fetch first

或者:

 non-fast-forward

九、解决首次冲突[一般只有第一次少]

拉取远程:

 git pull origin main --allow-unrelated-histories
 合并两个完全无关仓库

出现冲突:

 CONFLICT

编辑文件。

完成后:

 git add README.md
 ​
 git commit -m "merge github readme"

再:

 git push

即可。


十、强制以本地为准

当明确:

 网页端修改不要(只做展示)
 本地代码为准

时:

 git push --force-with-lease origin main

作用:

 远程仓库
 ↓
 完全跟随本地

注意:

推荐:

 --force-with-lease

意思:

 如果远程还是我认为的那个版本
 ​
 就覆盖
 ​
 如果别人偷偷改了
 ​
 停止

不推荐:

 --force

十一、查看历史

查看提交:

 git log --oneline

查看图形化历史:

 git log --oneline --graph --all

十一.5、拉取远程

 git pull
 =
 git fetch
 +
 git merge

git fetch

作用

 git fetch

翻译:

 去看看远程有没有新东西,连接远程github仓库
 把远程信息下载回来
 但不修改你的代码

之后:

 git log --oneline --all

可能看到:

 A
 ↓
 B  (HEAD -> main)
 ​
 ↓
 C  (origin/main)

说明:

 远程更新了

git merge

作用

 git merge

翻译:

 合并两个分支
 把远程内容
 真正合并到本地

十二、查看当前状态

最常用命令:

 git status

作用

查看:

 当前在哪个分支
 ​
 哪些文件修改了
 ​
 哪些文件已经暂存
 ​
 哪些文件还没暂存
 ​
 本地是否领先远程
 ​
 本地是否落后远程

可能出现:

工作区干净

 nothing to commit,
 working tree clean

说明:

 当前在 main 分支
 ​
 没有修改
 ​
 非常干净

有文件修改

 modified: src/App.vue

说明:

 App.vue 被修改了
 但是还没 git add


修改add后但是未commit

 Changes to be committed:

例如:

 modified: src/App.vue

意思:

 已经 git add
 ​
 等待 commit

状态:

 工作区
 ↓ git add
 暂存区
 ↓ 等待 commit

新文件

 untracked files

说明:

 Git发现了新文件
 ​
 但是没管理

十三、GitHub 推荐开发流程(后续提交推送)

以后开发:

修改代码

 git status

git add .

git commit -m "本次修改说明"

git push

完成。


十四、推荐 Commit 规范

不要写:

修改
更新
fix
123

推荐:

完善README文档
添加移动端截图
修改首页导航样式
优化天气组件
新增友情链接模块
修复移动端适配问题

半年后仍然看得懂。


十五、最常用命令速查表

查看状态:

git status

添加全部文件:

git add .

提交:

git commit -m "说明"

推送:

git push

拉取:

git pull

获取远程信息:

git fetch

查看历史:

git log --oneline

查看图形历史:

git log --oneline --graph --all

查看远程仓库:

git remote -v

强制以本地覆盖远程:

git push --force-with-lease origin main

一句话总结

Git 的本质:

 保存历史
 记录修改
 随时回滚

GitHub 的本质:

 云端备份
 项目展示
 团队协作

未来开发最常用流程:

 git add .
 git commit -m "本次修改说明"
 git push

牢记这三条命令

本文为个人学习记录,转载请注明出处:[万俟季先生的个人博客](https://miloaether.loc.cc)(https://blog.ivano.cyou/)

评论交流

文章目录