一、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 READMEGitHub 自动生成:
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 mergegit 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/)