最近看论文写一些笔记总是不是很舒服,图片上传图床总是很麻烦。然后搜了一些帖子发现使用picgo搭配github会很方便,于是又来看git,发现自己github密码是啥都忘了淦。。。就遑论git命令了,所以决定痛改前非,用这篇文章记录一下,以免以后再次尴尬。
文章目录
git 安装和使用
git简介
git是一个分布式版本控制工具, Git把文件以快照形式存储,Git可以存储你之前的版本在你需要时候恢复使用,Git操作可以大部分在本地完成。这一点了解并不需要那么深入,我相信对于大部分人来说,github就是写完代码上传上去,然后可以从那里搜到很多代码的开源社区。大家或多或少都知道git的版本管理功能很牛逼,什么快照啊之类的。但是如果你不是远程多人办公,以及深度使用者,应该还是上传的本地调试好的代码然后不管了的居多。因此博客里面将尽量介绍一些浅显的用的着的东西。
git 前期安装配置
git安装 参考链接 https://www.jianshu.com/p/414ccd423efc
这一步过于简单,默认都会
github注册 github是一个代码托管平台,也就是你的代码可以给它管理。
首先注册github账号:https://github.com/join 过程就和普通的注册手续没差,姓名邮箱密码填完就能进入
点击头像》仓库》新建仓库
git和github连接
ssh密匙的设置和获取
检查电脑上是否已经有ssh密匙
运行 git Bash 客户端,输入如下代码查看文件:
$ cd ~/.ssh
$ ls
创建一个 SSH key
$ ssh-keygen -t rsa -C "your_email@example.com"
代码参数含义:
-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名。
以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如:
Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
当然,你也可以不输入文件名,使用默认文件名(推荐),那么就会生成 id_rsa 和 id_rsa.pub 两个秘钥文件。
接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到github上了
Enter passphrase (empty for no passphrase):
# Enter same passphrase again:
接下来,就会显示如下代码提示,如:
Your identification has been saved in /c/Users/you/.ssh/id_rsa.
# Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
当你看到上面这段代码的收,那就说明,你的 SSH key 已经创建成功,你只需要添加到github的SSH key上就可以了。
github中设置里面ssh填入秘钥
将 ~/.ssh目录下的生成的pub文件中的内容复制,然后到github上》设置》SSH and GPG keys》新建ssh复制生成的公钥(pub文件内容) title自己命名就好
测试连接
在git bash中输入
$ ssh -T git@github.com
当你输入以上代码时,会有一段警告代码,如:
The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?
这是正常的,你输入 yes 回车既可。如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入密码,如:
Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':
当然如果你密码输错了,会再要求你输入,知道对了为止。
Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.
注意:
这里ssh秘钥为一对,私钥在本地,公钥在服务器,只能一对一使用。如果多个账号也就是本地有多个私钥的话,需要对ssh进行管理,这里默认都是只使用一个github账号,而且默认是本地私钥是id_rsa。如果有特别要求查看ssh的管理方式,多个账号的设置
参考链接:
ssh配置 https://www.cnblogs.com/dumpling-z/p/11434105.html
ssh多个账号使用 https://blog.youkuaiyun.com/wwmusic/article/details/51027458?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control
git基本功能
服务器和本地连接上之后当然是要进行代码托管了,这里介绍最基本的一些代码指令。
git基础知识:
git分为本地库、远程库。
本地库:本地的仓库,和远端的github没有半毛钱关系。它的作用只存在于可以保存代码的历史版本。
你写代码的ide地方可以称之为: 工作区
写完之后你觉得不错了,想保存一下这个版本,于是你借用git工具来进行快照管理。
首先你得把代码加到git中去,你可以理解为导入当前版本代码 这时称为暂存区
然后给你一次犹豫的机会,你觉得ok了,就提交代码,于是保存了快照 这时就称为本地仓库
某天你觉得代码不太行,爷要重新写,于是你得重复上面的步骤,这就完成了版本管理更新。
用下面一张图来说明:

远程库:远程库和本地库相对应,是在 GitHub 上建立的仓库。在本地库的文件push进远程库,远程库的文件通过clone到本地库。简单理解就是个上传下载功能。
git 基础知识操作
基础知识包括 使用git管理本地文件 上传文件到github
1 建立git本地仓库 新建文件夹或任意文件夹》右键 git bash here 》输入 git init 》看到文件夹下面.git文件
2 设置签名(本地管理签名,类似于你window的用户身份和管理员身份设置)
签名分为系统签名和项目管理签名
项目签名:在当前仓库有效 系统签名:全局有效 一般而言无特殊要求直接使用系统签名
git config --global -l //查看用户
git config --global user.name lihua
git config --global user.email lihua@163.com //设置全局用户名和邮箱,与github无关
//项目用户级别设置只需要去除关键字global
3 查看状态 git status 查看本地仓库当前状态
4 添加提交命令 (本地库保存代码)
添加文件 git add [file name] 将工作区的文件添加到暂存区
提交文件 git commit -m “commmit message” [filename] 将暂存区的内容提交到本地库
具体操作:
在文件加下面新建文件a.txt》git bash here 》git status 红色表示修改未进入暂存区 》git add a.txt 》git status 绿色表示暂存区》git commit a.txt 进入commit页面 vim编辑器输入提交说明退出(不会使用vim编辑器建议使用上面-m参数)》git status 没有修改文件和暂存文件
以上步骤即完成了本地库的一次更新
随之而来的问题:如何批量提交代码文件?
方法一 git add 添加多个文件,文件之间以空格隔开
git add file1 file2 file3
方法二 多次git add
git add file1
git add file2
git add file2
方法三 添加指定目录下的文件
config目录下及子目录下所有文件,home目录下的所有.php文件
git config/*
git home/*.php
方法四 git add . 添加所有的文件, 或者 git add --all 添加所有的文件
git add .
git add --all
方法五 git add 文件夹
git add dir_name
5 git 版本管理
查看历史记录
git log 查看log
git log —pretty=oneline 单行查看 log
git log --oneline 单行查看log
git reflog 显示当前head指针位置
版本前进后退
git reset --hard [索引值] 跳到某一个版本
git reset --hard HEAD^ 后退一步
git reset HEAD~n 后退n步
hard: 在本地库移动指针,重置暂存区和工作区
mixed: 在本地库移动指针,重置暂存区
soft: 在本地库移动指针,对于其他不做操作
索引值:版本哈希索引值,git log可以查看到
实际操作:
新建b.txt》add commit 重复之前步骤》 git log (查看日志) 有两次记录》git reset --hard(第一次索引值)》回到文件夹 发现b.txt已经被删除,本地库重置 》git log 第二次提交记录没了(其实并不是没了,使用 git reflog命令试试?)
重复上述步骤分别体验 soft 和mixed 的参数的作用 (查看工作区文件状态 log状态)
6 git 文件找回
使用hard参数会把工作区的文件给删除,其实并没有删除,毕竟我们用的是git版本控制工具,要是删除了,要这git有锤子用
git reflog 命令配合 git reset命令切换快照自然文件就回来了
7 本地远端互连
1)创建远端仓库 登录github新建仓库 在下载code处可以查看远程仓库的地址
2)建立本地与远端连接
git remote -v 查看当前所有远程地址别名
git remote add [别名] [远程地址] //远程地址为上面查看的地址,别名自己随便取,目的是免除后面打地址
3)推送
git push [别名] [分支名] //别名就是前面取的别名,分支名是github上的分支名,一般使用main就好
4)克隆
git clone [远程地址] //复制远程地址的文件到本地库
git 高级功能
git 高级一些的功能主要为 分支理解、fork理解 pull理解
这些命令在单人的时候一般不会用到,只有在多人协作时候才会经常,这里的高级也可以理解为不常用
主要列一些命令,因为用不到 留待后面用到了再更新
分支创建:git branch [分支名]
查看分支:git branch -v
切换分支:git checkout [分支名]
合并分支的步骤:首先切换到被合并分支,执行 git merge [分支名] 合并
拉取:pull=fetch+merge
git fetch [远程库地址别名] [远程分支名]
git merge [远程库地址别名/远程分支名]
git pull [远程库地址别名] [远程分支名]
github上面的fork操作相当于复制别人的库到自己这,如果要修改别人的东西并提交,就涉及到了跨团队合作的相关操作,基本用不到。
参考廖雪峰网站分支管理部分:https://www.liaoxuefeng.com/wiki/896043488029600
git GUI使用
上述所有操作都是在git bash 中通过命令行操作进行的,但是git还有一个GUI的功能,对于新手来说也是比较友好的。
首先还是新建文件夹,然后Git bash 上面进行 git init 然后右键 git GUI
接着参考博客:
https://www.runoob.com/w3cnote/git-gui-window.html
github 配合picgo typora作为图床
github 作为一个服务端,虽然有所限制,但是基本上还是可以干服务器能干的事的,接下来介绍github如何搭配picgo形成自己的图床,这样就不用担心自己图片丢失了。
第一步 在github上新建仓库获取github的token
第二步 下载picgo安装 配置地址
第三步 在typora中进行偏好设置
这样就不用每次都上传图片了
参考链接:https://www.cnblogs.com/hshdexy/p/13590037.html
注意github现在的默认分支是main不是master
在github中只需要对本地图片进行上传操作
如果以前设置过图片显示比例之类的设置,上传之后图片可能会加载不出来需要删除相应css配置
github搭建个人博客
参考链接:https://zhuanlan.zhihu.com/p/91652100
暂时用不上,待更
4281

被折叠的 条评论
为什么被折叠?



