git 笔记

文章目录

前言

自己之前搭建自己的网站的时候,有使用过 git ,但是没有系统的学习过,现在终于可以系统的学一遍了

刚好自己现在的 git bash 出现了一些问题,早一段时间,我想要在个人博客网站上面更新一些内容,然后发现更新不了,不知道是因为更新了一些文件还是啥原因

所以上一次更新还是差不多一个月之前

一些代码托管仓库

gitee
github

要是想自己搭建一个类似于 github 的平台,可以参考这个开源项目 gitlab

初步的一些理解

git 是一个版本管理工具,就是可以支持多人协同开发,然后迭代开发,有三个部分,工作区,暂存区,版本库

工作区把代码存到暂存区,再存到版本库,相当于中间有一个缓存的一个作用

设置个人信息

git config --global user.name tzs设置自己的名字

git config --global user.email tian_zishen@qq.com设置自己的邮箱

虽然我知道这个有直接的命令可以复制,但是我还是老老实实自己手敲一遍,因为自己是一个初学者,老老实实,扎扎实实学一遍肯定是有一些好处的

创建自己的仓库

git init

进入创建的这个隐藏的文件夹,可以发现里面一堆文件

感觉后面任重道远,还有很多很多东西要学,但是没有关系,进一步有进一步的欢喜,不要太着急,慢慢来

今天是 12 号,今天能把 git 学完,把十个作业写完就算胜利,加上干各种事情,还有 10 个小时的时间

查看仓库的状态

git status

添加文件到暂存区

git add readme.txt

可以发现前面红色的文件名变成绿色了,之前添加可执行文件的权限的时候,也会发生颜色的变化

git add .表示把所有的文件加到暂存区里面

把暂存区的文件添加到版本库

git commit -m "no.1"注意空格,然后双引号里面的内容相当于注释信息

另外笔者发现 git 敲击 tab 键没有代码补全,所以一些英文可能需要自己把它记清楚

commit 之后,暂存区会清空

查询两个文件之间的区别

git diff readme.txt ,其实就是 difference 的英文缩写

出现一堆估计只有机器能够明白的东西,因为我修改的文件全是中文(修改之前全是中文,修改是又加了一些中文上去)

有很多很多命令,可能最后常用的也不算多,自己先全部敲一遍,留一个印象,然后常用的敲的多了肯定就记住了,所以完全不需要有任何压力

我使用的终端,输入的时候虽然不支持中文,但是在查看文本文件的时候,还是可以显示中文的

查看版本迭代信息

git log

这个是从下往上看,最下面是最原始的版本,最上面是最新的版本

或者用这个命令,一行显示一个版本信息,可能更加清晰
git log --pretty=oneline,很多命令后面空格,加上 --,其实笔者感觉这个非常接近英文的一些自然语言,pretty表示的是美观的,然后一行,用一行美观的显示,一眼看过去就知道是啥意思了

这些命令不需要背,只需要大概知道是啥意思,然后一边用一边查就好了,熟练了就可以了

版本回滚

git reset --hard HEAD^,表示回滚一个版本,要是有两个 ^ ,表示回滚两个版本
git reset --hard 06de12e表示的是跳转到这个版本号,最后七个数字字母表示的是版本号,通过 git reflog可以查询到版本号

现在笔者发现学习这个东西最难的地方在哪里了,就是繁杂,然后没有一定的自驱力或者外在的压力,很有可能偷懒,就学得很慢很慢

这个操作其实挺厉害的,像是恢复历史记录一样,我在当前目录下打开项目里面的文件,因为跳转到了第一次编辑的时候的文件,所以文件只有一行话

tmux 里面,用 insert 相关的键复制粘贴比 [ 这种复制粘贴要简单一些,按住 shift 选中文本即可

我发现自己总是被浏览器首页的一些新闻吸引,不用那个浏览器了,换一个浏览器算了

查看所有的历史版本

git ref,这个的意思就是,查看所有的历史版本,包括指针的一些移动,指针的移动是指前面说的版本回滚,就是一些操作都是可以查询到的

快捷切换应用

看到教程的老师快速切换不同的软件,感觉开发效率比较高,搜了一下

alt + tab 是最好用的快捷键

现在感觉都非常好用,比如说,我现在需要看网课,也需要命令行编辑器,有朋友找我我需要使用 qq ,还需要 csdn 编辑器做笔记,我可以这样安排,

1.桌面1:网课,qq

2.桌面2:终端

3.桌面3:云端

4.桌面4:csdn 编辑器

每一个程序可以全屏,沉浸式体验,感觉非常棒

在不打开社交软件的情况下,win+ shift+ s可以截屏

感觉操作一些快捷键,脱离鼠标,会给自己的开发效率质的提升,比如说点击 F5 刷新网页,点击空格开始输入文字,所以笔者准备尽可能多的使用快捷键

所以难怪那么多朋友热衷于机械键盘,确实可能可以带来不一样的编程体验和游戏体验

操作终端很有成就感,同一个浏览器新建窗口相当于新打开了一个程序,也比较好用

感受

自己在本地修改一些文件,然后用一套丝滑小连招,就可以把文件同步到云端

1.修改文件

2.git add .

3.git commit -m "描述信息"

4.git push

确实比较简单

上面是主分支的情况,假设我们是创建一个分支,然后再上传到云端,是下面的操作步骤

1.创建分支并切换到这个分支 git checkout -b dev7dev7 表示的是,这个分支的名字,可以随便选择

2.修改文件

3.git add .

4.git commit -m "描述信息"

5.git push --set-upstream origin dev7,相当于是在云端创建一个分支,因为现在云端没有对应的分支,直接 git push 不太合适,使用这个命令云端没有任何反应,origin表示的是云端

分支的一些相关的操作

1.创建一个新的分支并跳转到这个分支,git checkout -b devdev就是分支的名字,可以自己随便修改,-b 表示的是 branch分支的意思

2.跳转到某个分支,git checkout dev,和上面一样,dev表示的是,分支的名字

通过上面两个命令可以看出来,checkout表示的是跳转的意思,branch或者-b表示的是创建一个新的分支,一般是创建一个新的分支就直接跳转到该分支,所以直接创建分支的语句可能用的概率非常小,这里还是列出来,git branch dev

假设新建一个分支并跳转到这个分支之后

我们想要在云端也新建一个相同的分支,前面写了一个比较长的命令,其实我们用 git push 就好了,我们输入这个命令之后,会提示一个命令,复制这个命令就好了

代码仓库

不一定要开源,可以设置成私有的,只有自己可以看到

web 前端开发

其实自己花了很多的时间和精力去做这件事情,但是最后成绩,貌似很一般(平时分 81 占比 40% 总分 77),感觉完全和自己的付出时间不成正比,我感觉主要原因是,一方面当时上课的时候,没有扎扎实实按照要求来做,另一方面,文档写的不够好,因为最后的大作业可能我是用框架写的,讲解代码的时候我说不了啥实质性的东西,因为我主要的工作就是做了一些配置文件的修改,顺便学了一下 git 怎么使用之类的,和 web 前端开发的差距可能还是有一些,大部分还算是自己的原因吧,就像王者里一个角色说的,错了就得认,挨打要立正,确实有点无奈

虽然我知道这个成绩对自己的未来的影响不算很大,但是要是我在一些课程里面取得高分,对我的自信心还是有一些好处的,我很好奇,要是自己竭尽全力,在整个专业大概可以排到一个什么样的位次(扎扎实实听课写作业,看一些网课,做一些笔记,做一下期末考试试卷,大概这样子)

tmux 全屏和缩小

笔者知道 tmux 全屏是 ctrl + a + z ,但是这个快捷键需要一定的先后顺序,先按前面两个松开之后按第三个,全屏之后缩小就是再按一遍

把本地项目创建到云端的步骤

1.在代码托管平台创建一个项目

最好是项目名字和终端的文件夹名字一样

创建好之后如上图所示

2.输入mkdir project1创建一个名字叫做 project1 的文件夹,进入这个文件夹

shell 复制代码
git config --global user.name tzs
git config --global user.email tian_zishen@qq.com

注意这里的 tzs是用户名,另一个是邮箱,这个是一些信息,貌似是必须的,然后输入 git init,初始化这个文件夹,也是必须做的

3.在 github的项目首页找到这个部分

输入这条命令
git remote add origin git@github.com:t-zs/project1.git ,把本地和云端仓库连接起来

4.然后创建文件,add commit push,触发连招,和前面讲的是一样的,就可以把本地的文件传到云端代码仓库了,像是这样子

还需要注意,在一切开始之前,需要把公钥文件里面的内容上传到自己代码仓库里面,我之前操作过一次,现在重新在 tmux 里面打开自己的云服务器,假装自己是一个新的小伙伴,再来生成一个密钥

ssh 生成密钥

1.输入ssh-keygen,然后一直按回车,进入到 .ssh文件夹下面可以看到一个私钥文件和一个公钥文件,pub后缀的是公钥文件

打开这个文件,把公钥的内容复制到代码仓库里面(还是用一个桌面方便操作一些,浏览器就打开不同的窗口就好,相当于不同的程序)

ssh的名字可以随便取一个,点击保存即可

总结

终于学完了,还算比较简单,之后有时间再操作一下自己的博客网站(github.io)git主要就是进行版本管理,可以把自己的代码存到云端,学的主要是一些命令,通过这些命令和计算机进行交互,实现自己的需求

相关推荐
晨犀1 小时前
超详细Git基本命令使用(二)
大数据·git·elasticsearch
欣慰的三叶草(● ̄(エ) ̄●)1 小时前
Tower for Mac Git客户端管理软件
git·macos·svn·git客户端·tower
Cosmos复调2 小时前
黑马JavaWeb开发笔记07——Ajax、Axios请求、前后端分离开发介绍、Yapi详细配置步骤
java·前端·笔记·vscode·ajax·yapi·软件工程
犬余2 小时前
Kafka入门:从零开始了解分布式流处理平台
笔记·分布式·学习·kafka
mit6.8242 小时前
[Linux#47][网络] 网络协议 | TCP/IP模型 | 以太网通信
linux·运维·网络·笔记·网络协议
speop2 小时前
【笔记】数据结构——8月27日
数据结构·笔记·算法
兴焉2 小时前
【Python学习手册(第四版)】学习笔记22-模块代码编写基础
笔记·python·学习
mit6.8242 小时前
[Linux#46][线程->网络] 单例模式 | 饿汉与懒汉 | 自旋锁 |读写锁 | 网络基础 | 书单
linux·运维·服务器·开发语言·笔记·单例模式
honey ball4 小时前
CH340K的一个小bug
网络·笔记·stm32·单片机·嵌入式硬件·学习·bug
tebukaopu1484 小时前
elasticsearch快照存储到linux本地路径或分布式存储系统mioio
linux·elasticsearch·快照