many, many chore
This commit is contained in:
FallenYing
2023-07-28 09:30:17 +08:00
parent b043fd1d05
commit f501a6b993
33 changed files with 453 additions and 453 deletions

View File

@@ -4,7 +4,9 @@
## <strong>光玉</strong>
想象一下你正在玩 Flappy Bird ,你今晚的目标是拿到 100 分,不然就不睡觉。 经过千辛万苦,你拿到了 99 分,就要看到成功的曙光的时候,你竟然失手了!你悲痛欲绝,滴血的心在呼喊着,“为什么上天要这样折磨我?为什么不让我存档?”
想象一下你正在玩 Flappy Bird你今晚的目标是拿到 100 分,不然就不睡觉。经过千辛万苦,你拿到了 99 分,就要看到成功的曙光的时候,你竟然失手了!你悲痛欲绝,滴血的心在呼喊着,“为什么上天要这样折磨我?为什么不让我存档?”
[**Play Happy Bird**](https://flappybird.io/)
想象一下你正在写代码,你今晚的目标是实现某一个新功能,不然就不睡觉。经过千辛万苦,你终于把代码写好了,保存并编译运行,你看到调试信息一行一行地在终端上输出。就要看到成功的曙光的时候,竟然发生了错误!你仔细思考,发现你之前的构思有着致命的错误,但之前正确运行的代码已经永远离你而去了。你悲痛欲绝,滴血的心在呼喊着,“为什么上天要这样折磨我?”你绝望地倒在屏幕前 ... ... 这时,你发现身边渐渐出现无数的光玉,把你包围起来,耀眼的光芒令你无法睁开眼睛 ... ... 等到你回过神来,你发现屏幕上正是那份之前正确运行的代码!但在你的记忆中,你确实经历过那悲痛欲绝的时刻 ... ... 这一切真是不可思议啊 ... ...
@@ -40,7 +42,7 @@ git config --global user.name "Zhang San" # your name
git config --global user.email "zhangsan@foo.com" # your email
```
经过这些配置, 你就可以开始使用 `git` 了。
经过这些配置你就可以开始使用 `git` 了。
你会通过 `git clone` 命令来拉取远程仓库的代码,里面已经包含一些 `git` 记录,因此不需要额外进行初始化。如果你想在别的实验、项目中使用 `git` ,你首先需要切换到实验、项目的目录中,然后输入
@@ -68,11 +70,11 @@ git log
git status
```
可以得知,与当前存档相比,哪些文件发生了变化.
可以得知,与当前存档相比,哪些文件发生了变化
### 提交
你可以像以前一样编写代码。等到你的开发取得了一些阶段性成果,你应该马上进行提交( commit )”。
你可以像以前一样编写代码。等到你的开发取得了一些阶段性成果,你应该马上进行提交commit”。
首先你需要使用 `git status` 查看是否有新的文件或已修改的文件未被跟踪;若有,则使用 `git add` 将文件加入跟踪列表,例如
@@ -88,7 +90,7 @@ git add -A
git add .
```
但这样可能会跟踪了一些不必要的文件(二进制文件),例如编译产生的 `.o` 文件,和最后产生的可执行文件。事实上,我们只需要跟踪代码源文件即可。为了让 `git` 在添加跟踪文件之前作筛选,你可以编辑 `.gitignore` 文件( 没有的话手动创建 文件名就叫这个 ),在里面给出需要被 `git` 忽略的文件和文件类型。
但这样可能会跟踪了一些不必要的文件(二进制文件),例如编译产生的 `.o` 文件,和最后产生的可执行文件。事实上,我们只需要跟踪代码源文件即可。为了让 `git` 在添加跟踪文件之前作筛选,你可以编辑 `.gitignore` 文件(没有的话手动创建 文件名就叫这个),在里面给出需要被 `git` 忽略的文件和文件类型。
[这个网页](https://www.toptal.com/developers/gitignore) 可以根据你搜索的语言来给你创建必要的 `.gitignore` 文件
@@ -105,13 +107,13 @@ file.o # 一个编译后的文件
建议把编译后的文件都加入 `.gitignore` 并在 `README.md` 文件中留下编译的详细操作流程,节省 `.git` 空间、符合提交规范。
把新文件加入跟踪列表后, 使用 `git status` 再次确认. 确认无误后就可以存档了, 使用
把新文件加入跟踪列表后使用 `git status` 再次确认确认无误后就可以存档了使用
```bash
git commit -m "...comment..."
```
提交工程当前的状态(注释)。其中 `...comment...` 是你本次提交的注释( 一般在注释中简略写出本次提交干了什么)以下为注释规范,养成良好习惯请遵守:
提交工程当前的状态(注释)。其中 `...comment...` 是你本次提交的注释(一般在注释中简略写出本次提交干了什么)以下为注释规范,养成良好习惯请遵守:
```bash
模板:
@@ -145,7 +147,7 @@ subject为commit概述
你可以使用 `git log` 查看存档记录,你应该能看到刚才编辑的注释。
### <strong>读档</strong><strong> 回溯到某一个 commit </strong>
### <strong>读档</strong><strong>(回溯到某一个 commit</strong>
如果你遇到了上文提到的让你悲痛欲绝的情况,现在你可以使用光玉来救你一命了。首先使用 `git log` 来查看已有的存档,并决定你需要回到哪个过去。每一份存档都有一个 `hash code`,例如 `b87c512d10348fd8f1e32ddea8ec95f87215aaa5` , 你需要通过 `hash code` 来告诉 `git` 你希望读哪一个档。使用以下命令进行读档:
@@ -155,7 +157,7 @@ git reset --hard b87c
其中 `b87c` 是上文 `hash code` 的前缀:你不需要输入整个 hash code. 这时你再看看你的代码,你已经成功地回到了过去!
但事实上, 在使用 `git reset``hard` 模式之前, 你需要再三确认选择的存档是不是你的真正目标。 如果你读入了一个较早的存档,那么比这个存档新的所有记录都将被删除!这意味着你不能随便回到“将来”了。
但事实上在使用 `git reset``hard` 模式之前你需要再三确认选择的存档是不是你的真正目标。如果你读入了一个较早的存档,那么比这个存档新的所有记录都将被删除!这意味着你不能随便回到“将来”了。
### 分支
@@ -165,7 +167,7 @@ git reset --hard b87c
git branch
```
查看所有分支. 其中 `master` 是主分支,使用 `git init` 初始化之后会自动建立主分支。
查看所有分支其中 `master` 是主分支,使用 `git init` 初始化之后会自动建立主分支。
读档的时候使用以下命令:
@@ -190,13 +192,13 @@ git checkout -B 分支名
- 把修改结果保存到一个新的分支中,如果分支已存在,其内容将会被覆盖
不同的分支之间不会相互干扰,这也给项目的分布式开发带来了便利。有了分支功能,你就可以像第三视点那样在一个世界的不同时间 ( 一个分支的多个存档 ),或者是多个平行世界 多个分支 之间来回穿梭了。
不同的分支之间不会相互干扰,这也给项目的分布式开发带来了便利。有了分支功能,你就可以像第三视点那样在一个世界的不同时间 ( 一个分支的多个存档 ),或者是多个平行世界多个分支之间来回穿梭了。
### <strong>更多功能</strong>
以上介绍的是 `git` 的一些基本功能,`git` 还提供很多强大的功能,例如使用 `git diff` 比较同一个文件在不同版本中的区别,使用 `git bisect` 进行二分搜索来寻找一个 bug 在哪次提交中被引入...
其它功能的使用请参考 `git help` `man git` 或者在网上搜索相关资料。
其它功能的使用请参考 `git help` `man git` ,或者在网上搜索相关资料。
## 全球最大男性交友网站 —— Github
@@ -205,17 +207,16 @@ git checkout -B 分支名
你把任务分配好让组员去写代码中的某一个模块。组员写好之后发给你。
你一看通过QQ发过来的是一个文件啊文件 比如说 `学生管理模块.c` 你打开一看,我去是**乱码**。
你一看,通过 QQ 发过来的是一个文件啊文件 比如说 `学生管理模块.c` 你打开一看,我去是**乱码**。
你废了九牛二虎之力把他的 GBK 编码改成 UTF8 之后,细细地品鉴这段代码,发现我去有严重逻辑错误,而且代码很不规范。
你通过QQ告诉他这一行有问题能不能改一下。他说好的我改一下。
你通过 QQ 告诉他,这一行有问题,能不能改一下。他说,好的我改一下。
然后又发了文件啊文件给你,如此反复循环,你俩已经互相传了好几百个源代码文件,很没效率!
:::
> 通过Git版本控制管理自己的代码 再通过Github来发布、同步互联是一个很好的解决方案
> 通过 Git 版本控制管理自己的代码,再通过 Github 来发布、同步互联,是一个很好的解决方案!
简介
@@ -241,7 +242,7 @@ git checkout -B 分支名
他会用一个像是命令行交互的方式引导注册,你需要依次填写 `邮箱``密码``用户名(此为 ID 非昵称)``是否同意邮箱广告推送``机器验证码` 之后创建账户,随后会给你填写的邮箱发送验证码,填写注册。
随后是一个欢迎问卷😋随便填写、如果他问你什么PRO Plan 选择 free 不付费就好。
随后是一个欢迎问卷😋随便填写、如果他问你什么 PRO Plan 选择 free 不付费就好。
最后你访问[GitHub 官网](https://github.com)应该会显示你的 dashboard 管理台界面
@@ -251,7 +252,7 @@ git checkout -B 分支名
如果有就直接跳过这一步
如果没有,打开 Shell Windows 下打开 Git Bash <em>前提是你已经安装好了 git 在桌面右键应该会有 Git bash here 选项 </em>),创建 SSH Key
如果没有,打开 ShellWindows 下打开 Git Bash <em>前提是你已经安装好了 git 在桌面右键应该会有 Git bash here 选项 </em>),创建 SSH Key
```bash
ssh-keygen -t rsa -C "youremail@example.com" # youremail为你注册用的电子邮件地址
@@ -302,12 +303,10 @@ git clone git@github.com:yourname/gitexample.git
> 以上方法是基于 ssh 方式的,下面方法是基于 HTTPS 方式的
或者你可以跟随新创建之后的指引,`…or create a new repository on the command line` 内他描述了如何创建一个文件夹、创建一个README.md的文件然后和github仓库绑定。
或者你可以跟随新创建之后的指引,`…or create a new repository on the command line` 内他描述了如何创建一个文件夹、创建一个 README.md 的文件,然后和 github 仓库绑定。
![](https://cdn.xyxsw.site/Snipaste_2023-07-16_17-19-18.png)
### 下载代码——clone
拷贝他人存档也未尝不可,而我们如果用他人存档时,次次都需要一样一样的拷贝文件和代码未免太过折磨,下面简单介绍如何使用
@@ -334,7 +333,7 @@ git clone https://github.com/camera-2018/git-example.git
>
> 如果你使用我的仓库的话,你 clone 过后在你自己电脑更改的文件等东西,是没法直接提交回来的(因为你没有我仓库管理权限)
>
> 如果你非要给我的仓库添加东西呢 也是可以,参照下面的 PR Pull Request教程
> 如果你非要给我的仓库添加东西呢 也是可以,参照下面的 PRPull Request教程
一阵抽搐过后就下载好了
@@ -380,11 +379,11 @@ git commit -m "feat(helloworld): add helloworld file"
![](https://cdn.xyxsw.site/boxcni2dupDzNO8qTWPAxS5c67b.png)
1. 如果这是你自己的仓库有权限(本人仓库或 Collaborators 有权限的情况下)你就可以直接使用
1. 如果这是你自己的仓库有权限(本人仓库或 Collaborators 有权限的情况下)你就可以直接使用
```bash
git push origin main # origin是第四步里remote add起的远程名字
# main是分支名
git push origin main # origin 是第四步里 remote add 起的远程名字
# main 是分支名
```
上传本次提交
@@ -405,7 +404,7 @@ git commit -m "feat(helloworld): add helloworld file"
git switch camera-2018-dev
```
然后提交一个文件,这里直接使用 vscode 自带的 git 工具试试 (很方便、不用敲命令行)
然后提交一个文件,这里直接使用 vscode 自带的 git 工具试试(很方便、不用敲命令行)
![](https://cdn.xyxsw.site/boxcnmwlYWOzwPbNqTAuSZK9dW3.png)
@@ -437,7 +436,7 @@ git commit -m "feat(helloworld): add helloworld file"
**第二种情况:我不是协作者、我什么权限也没有,我看了这个 public 项目后觉得很好但是有一些问题,我要给他贡献一些代码**
可以点击仓库右上角的 fork
可以点击仓库右上角的 fork
![](https://cdn.xyxsw.site/Snipaste_2023-07-16_17-34-21.png)
@@ -445,35 +444,34 @@ git commit -m "feat(helloworld): add helloworld file"
回到源仓库点击 Pull Request 然后创建 PR `New pull request`
最上面会提示你说
最上面会提示你说
Comparing changes
Choose two branches to see whats changed or to start a new pull request. If you need to, you can also **compare across forks** .
点击小蓝字 `compare across forks` 这会让你对比你fork仓库和源代码仓库的提交记录之后就可以创建 PR 了,原作者看到了会合并。
点击小蓝字 `compare across forks` 这会让你对比你 fork 仓库和源代码仓库的提交记录,之后就可以创建 PR 了,原作者看到了会合并。
### 其他功能
问题跟踪GitHub的问题跟踪功能可用于报告软件中的问题、错误和功能请求并进行讨论、分配和解决。
问题跟踪GitHub 的问题跟踪功能可用于报告软件中的问题、错误和功能请求,并进行讨论、分配和解决。
Wiki页面用户可以创建和编辑与存储库相关的Wiki页面用于提供项目的文档、指南、示例代码等。
Wiki 页面:用户可以创建和编辑与存储库相关的 Wiki 页面,用于提供项目的文档、指南、示例代码等。
Pull请求Pull Requests使用者可以将自己的代码变更提交给其他项目的所有者并请求合并到主干代码中。
Pull 请求Pull Requests使用者可以将自己的代码变更提交给其他项目的所有者并请求合并到主干代码中。
项目管理GitHub提供项目管理功能包括任务管理、里程碑milestones、项目板project boards等工具可用于组织和跟踪项目的进展。
项目管理GitHub 提供项目管理功能包括任务管理、里程碑milestones、项目板project boards等工具可用于组织和跟踪项目的进展。
部署功能GitHub可以与各种持续集成和部署CI/CD工具集成帮助开发人员自动化构建、测试和部署他们的应用程序。
部署功能GitHub 可以与各种持续集成和部署CI/CD工具集成帮助开发人员自动化构建、测试和部署他们的应用程序。
统计信息GitHub提供有关存储库活动和贡献者的统计信息例如提交图表、活动日历等有助于跟踪和分析项目的发展。
统计信息GitHub 提供有关存储库活动和贡献者的统计信息,例如提交图表、活动日历等,有助于跟踪和分析项目的发展。
社交功能:用户可以关注其他用户、存储库和组织,接收他们的更新和活动通知,并与他们进行交流和讨论。
代码审核Code ReviewGitHubPull请求功能允许团队成员对代码进行审查和讨论以确保代码质量和最佳实践。
代码审核Code ReviewGitHubPull 请求功能允许团队成员对代码进行审查和讨论,以确保代码质量和最佳实践。
集成和扩展GitHub支持与其他工具和服务的集成例如持续集成CI工具、代码质量检查工具、项目管理工具等。
集成和扩展GitHub 支持与其他工具和服务的集成例如持续集成CI工具、代码质量检查工具、项目管理工具等。
页面托管GitHub Pages功能使您可以托管静态网站和文档这在展示和共享项目文档、演示和博客等方面非常有用。
页面托管GitHub Pages 功能使您可以托管静态网站和文档,这在展示和共享项目文档、演示和博客等方面非常有用。
然后还有一些比如说 Copilot 之类的有用的功能。
@@ -485,19 +483,20 @@ Copilot 可以根据上下文和输入的提示,为开发人员生成代码建
你需要学生认证你的 Github 账号。
地址在 https://education.github.com/students 点击 `Sign up for Global Campus` 来开始认证,下面会让你输入学校,绑定学校邮箱(杭电为 @hdu.edu.cn 结尾的邮箱)(如果你是杭电新生的话,可能要等到智慧杭电账号发放时才能注册杭电邮箱)并上传**学生证明**从21年开始这个验证越来越严如果不过的话你可以尝试 `学生证第一页`、`学生证第一页英文翻译(像有道翻译那样 P 图上去)`、`学信网学籍证明英文翻译(英文也是 P 上去)`
地址在 [https://education.github.com/students](https://education.github.com/students) 点击 `Sign up for Global Campus` 来开始认证,下面会让你输入学校,绑定学校邮箱(杭电为 @hdu.edu.cn 结尾的邮箱)(如果你是杭电新生的话,可能要等到智慧杭电账号发放时才能注册杭电邮箱)并上传**学生证明**(从 21 年开始这个验证越来越严,如果不过的话你可以尝试 `学生证第一页`、`学生证第一页英文翻译(像有道翻译那样 P 图上去)`、`学信网学籍证明英文翻译(英文也是 P 上去)`
通过了的话你的账户会有 Pro 标识 然后你可以享受的 Github 学生包里包含[这些东西](https://education.github.com/pack)
里面比较有用的有
- JETBRAINS 全家桶的免费用我没用我用的是jb自己家的验证方式不是github
里面比较有用的有
- JETBRAINS 全家桶的免费用(我没用,我用的是 jb 自己家的验证方式,不是 github
- name.com 家的一个一年期的免费域名(大概价值吧 六七十块钱?)
- github 的容量扩容和 actions 时间扩容、Codespaces 时间延长、Pages 扩容(没啥用倒是)
- Termius 学生包这是我很喜欢用的终端软件有学生包可以多端同步ssh的账号密码啥的很方便。
- Termius 学生包,这是我很喜欢用的终端软件,有学生包可以多端同步 ssh 的账号密码啥的,很方便。
- Sentry 容量扩容
- Copilot 免费用
你可以在 `settings` 里看到你的copilot ,配置如下
你可以在 `settings` 里看到你的 copilot配置如下
![](https://cdn.xyxsw.site/Snipaste_2023-07-16_17-59-49.png)