Git配置、小乌龟版本管理演示、Github高级用法
Git
下载安装
打开cmd ,使用 git -v 命令,测试git环境变量是否已经添加;
如果没有手动添加一下(我默认会安装到D:\Program Files\Git,环境变量path路径中 保证有这个路径)
D:\Program Files\Git

Git 常用命令
# 教程: https://blog.csdn.net/weixin_45697805/article/details/106197919
git status #查看工作区代码相对于暂存区的差别
git add . #将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录 add后面一个空格然后输入点
# 将缓存区内容添加到本地仓库。--no-verify:不验证代码格式 , -a -m 可以将暂存区的所有内容合并提交到本地仓库
git commit --no-verify -m "20231128备份"
# 拉下git最新代码,必须要执行,不然会覆盖掉别人刚提交过的代码。
git pull
# 推送。 origin #是远程主机,master表示是远程服务器上的master分支,分支名是可以修改成其他分支 的名字的
git push origin master
小乌龟
安装包下载-阿里云盘:搜索 小乌龟
使用小乌龟提交代码前必须 【设置账号和邮箱】

生成密钥对,并在github上添加公钥(如何生成密钥对,请参考下文)
使用小乌龟遇到的问题及解决方案
使用小乌龟clone的项目没有显示绿勾
解决方案:https://blog.csdn.net/XIA_1997/article/details/82801741
今天使用小乌龟 将本 Git 项目推送到 GitHub 时,GitHub 却一直报如下错误:
You‘re using an RSA key with SHA-1, which is no longer allowed. Please use a newer client原来是 GitHub 在 2022 年 3 月 15 日之后将不再支持
RSA算法生成的密钥,原因是RSA不够安全,而笔者之前一直是使用如下命令生成密钥对的:ssh-keygen -t rsa -C "邮箱"现在只要更改加密算法即可,可以选择
ed25519解决方案如下:
使用git生成密钥对
ssh-keygen -t 加密算法 -C "邮箱"ssh-keygen -t ed25519 -C "邮箱" ssh-keygen -t ed25519 -C "120158568@qq.com" # 注意 引号不能省略;加密算法使用 `ed25519`
执行命令后,会在
C:\Users\Windows 用户名\.ssh文件夹下面生成两个文件,
其中第一个是私钥,第二个是公钥,公钥需要提供给github或者码云,如何添加,具体操作就不介绍了
或者使用小乌龟生成密钥对(推荐)
运行小乌龟安卓目录的bin文件下的 PuTTYgen程序

选择加密算法,并生成密钥对

需要不断在 PuTTY 软件界面内晃动鼠标,因为生成密钥时需要鼠标移动来生成随机数。

生成成功之后,显示出来的就是公钥了。与前面在 Git 中一样,需要全文复制这个公钥,以及保存自己的私钥。

在密钥列表中添加此密钥(私钥)。
运行在小乌龟安卓目录的bin文件下的 pageant 程序,

找到右边下角图标


将新密钥(公钥)复制到 GitHub或码云中
提醒:私钥需要妥善保存。如果没有私钥,上传至 GitHub 的公钥等于作废。

小乌龟日常版本管理常用操作演示
展示基本的 新建切换合并分支,日志信息和版本分支图使用、删除分支、解决简单冲突等。
新建空白项目gametest,雪峰和小明各自clone项目,各自管理。

两个人各自新建一个自己的分支,分别负责开发一个新功能;
雪峰操作:
新增
media文件夹(包含 2个mp3格式文件)和panda.png文件 并修改.gitignore文件(具体方法下面有介绍),然后提交并推送
新建
release分支(10月10号发布)新建分支
dev-xf,进行下面的开发

切换到该
dev-xf分支


修改
README.md文件内容 :(此刻是在dev-xf分支),并提交推送

创建版本号标签 方便管理


新增
xf01.md,提交推送,并设置标签v1.0.2
小明操作:
修该了
master分支中README.md内容,并提交到仓库,导致雪峰本地的master内容不一致(这种拉取一下最新的内容即可)。同时雪峰的分支线 dev-xf中README.md
雪峰操作:
切换到
master分支修改master中的
README.en.md内容并推送果然推送失败 。现在仓库中
README.md文件已经被小明推送了而雪峰的本地还是旧的, 尽管这次并没有该这个文件的内容,但是每次提交前都需要保证你的本地仓库是最新的。
当然拉取后,可以查看本地和仓库的差异。


请注意上面的拉取动作只是将远程仓库更新到了本地master分支,但是本地修改的
README.en.md内容还没有被成功推送(上一步失败了),所以还要执行一次推送操作。
小明操作:
新建分支
dev-xm,并切换到该分支,进行新功能开发
新增
xm01.md文件,推送
想要合并分支到master,先切到master分支,然后合并



当前小明的本地master分支中
README.en.md内容并不是最新的,因为雪峰在上一次的master分支提交中,修改过里面的内容。为了展示解决冲突的问题,我们先在小明的本地,也修改一下这个文件的内容
删除分支

提交推送
果然后冲突,重新推送吧

可以选择某一行内容,右键 选择使用此文本块 也可以自行选择使用左边还是右边, 或者优先使用左边内容(左右都改了同一行内容,左边为准),其余内容会合并


小知识
Git中,origin / master与origin master之间有什么区别?
当我们从远程仓库
clone时,仓库服务器(远程主机)的默认名字就被定义为origin,master、origin/master是两个本地分支,origin一个远程主机名。本地分支
mastergit默认本地分支名
远程分支名
origin/master,是从远程拉取代码后,在本地建立的一个副本(因此也有人把它叫作本地分支),默认是不显示的,小乌龟可以看到。远程主机名
origin是一个远程git服务器的一个简称或者叫远程主机名
日志信息

版本回退(回滚)
待补充
忽略(gitignore)文件
作用:设置不想被提交到仓库的内容。

使用方法:
1.1 新建文件,并修改拓展名为: gitignore
1.2 删除文件名只保留 .gitignore
1.3 .gitignore文件中输入要忽略的规则
# #号后面 书写备注信息
# 忽略文件夹下所有文件
/media
# 忽略所有 png 的文件
*.png
# 还可以设置反忽略 -- 不忽略pdf文件(用处不多,不做介绍)
!*.pdf
# 空文件夹会被自动忽略掉




Github
搜索技巧
项目源码 按
s(搜索的意思)输入神秘代码
查找文件
在主页按
t:查找文件点进源代码后,按
L:跳转到某一行点击行号:
复制这行代码
生成永久链接

源代码中按b:查看文件的改动记录
完整效果如下图

阅读代码技巧
很多时候都是下载到本地,其实可以在线阅读。
在线vscode:仓库详情界面按下“。”键

在线运行项目
在项目地址前加上gitpod.io/#/前缀
https://github.com/liyupi/sql-mother 》》 https://gitpod.io/#/github.com/liyupi/sql-mother
https://github.com/youhuangla/Note/blob/main/web/img/image-20220504231259146.png)