前言
本文根据B站尚硅谷视频教程所记录的git常用命令用法,该文用图文并茂的形式展示,方便读者学习并使用git
一、git常用命令
安装成功后,可以查看一下版本 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c10def23411f49f39fa5abea1fb9058b.png)
1.设置用户签名
命令:git config --global user.name 用户名
![在这里插入图片描述](https://img-blog.csdnimg.cn/f19fdf8866c34ca6bde29ece5a6614bd.png)
2.设置用户邮箱
git config --global user.email 邮箱
3.初始化本地库
git init
创建一个git的空间,专门用来放项目代码 D:\Git-Space\git-demo 在这个路径,初始化本地库。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7d6c795144fc40f5aae13748601e8fa5.png) 就会出现一个.git文件夹,这里windows系统会默认隐藏 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7625bdff551a4d00b6f8405d1147d334.png) 用命令也可以查看 ![在这里插入图片描述](https://img-blog.csdnimg.cn/01eb247b58da4519a9143c0df39a9249.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16)
4.查看本地库状态
git status
![在这里插入图片描述](https://img-blog.csdnimg.cn/a33c19f923fa4dccbd04687acb12ac93.png) On branch master:在master这个分支 No commits yet : 当前还没提交过任何东西 nothing to commit:没有东西可以提交
在当前目录新建一个hello.txt文件:vim hello.txt ![在这里插入图片描述](https://img-blog.csdnimg.cn/5cf0094134aa4fdfac1ca2ab455a7515.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) (i是编写,esc退出编写模式,yy是复制,p是粘贴 然后再输入:wq 保存并退出) ![在这里插入图片描述](https://img-blog.csdnimg.cn/2e880c940c984518b31574f59d7641fc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) 再次查看状态 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b2cac262ad174a40818e1a9e37abaed2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) hello.txt:没有被追踪的文件,但可添加 hello.txt目前在工作区
5.添加到暂存区
git add 文件名
![在这里插入图片描述](https://img-blog.csdnimg.cn/f0d4f4ea221e4e3d80a0d271f471a16f.png) 此处的警告意思是:文件的LF换行符被替换成CRLF换行符
再次查看git status ![在这里插入图片描述](https://img-blog.csdnimg.cn/da32c7643e104e9b821c26d6d1446a1d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) hello.txt文件已经被追踪,已经被放在暂存区中。 如果想要把暂存区的文件删除,命令是:git rm --cached ![在这里插入图片描述](https://img-blog.csdnimg.cn/a4a557e7a9a84ba1bf8bd54b35bf4287.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) 这时候,hello.txt文件已经从暂存区中被删除。但是,工作区的hello.txt依然存在,没有被删除。
6.提交到本地库
命令:git commit -m “日志信息” 文件名 描述:将暂存区的文件提交到本地库,形成一个历史版本 ![在这里插入图片描述](https://img-blog.csdnimg.cn/42526be7b1364d88afe42d2bc2afa0be.png) 其中:cdf759d是版本号
再次查看本地库状态 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1e442208a07b47059986c2ebda3219bd.png) 表示提交成功
7.查看历史记录
倘若你不知道版本号,如何查看? 使用git reflog命令 ![在这里插入图片描述](https://img-blog.csdnimg.cn/fb64895c85eb448993794703749c04e4.png) 想要查看更具体的信息,如是谁提交的 使用git log命令 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e5fe464ed530417dbe54eef9e03e8333.png)
8.修改文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/32b28eecc29a454b8e68c0ca9ccae9ca.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/a6452f925a844608a7e184f9fcf36d07.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16)
9.版本穿梭
命令:git reset --hard 版本号 ![在这里插入图片描述](https://img-blog.csdnimg.cn/bc77ebd8a80649dcbb3b4c88db2b9742.png) 首先,我这里有三个版本 当前指针指向我第三个提交的版本
现在,我想要把hello.txt的内容回到第二次提交的版本 当前hello.txt内容是 ![在这里插入图片描述](https://img-blog.csdnimg.cn/babfafe0587c43ecae880f5b0513e70f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) 返回第二个版本后的内容是 ![在这里插入图片描述](https://img-blog.csdnimg.cn/45e686a678e1466f9c6a884aaf228edf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16)
二、git分支操作
1.什么是分支
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
2.分支好处
同时并行推进多个功能开发,提高开发效率。 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d3376e2fdaff452981db516a82d2f103.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) master分支是主线分支,给用户用的。而其他分支是给其他开发者使用的。 hot-fix:紧急抢救分支
3.分支命令
1.创建分支
命令如下
git branch 分支名
创建一个hot-fix分支 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b47b75e25cb94ee49803b8e2e1f56dba.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16)
2.查看分支
命令如下
git branch -v
3.切换分支
命令如下
git checkout 分支名
![在这里插入图片描述](https://img-blog.csdnimg.cn/f54d75d3abff4ec48902f7b6204164b9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16)
在切换后的分支上,修改文件 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2c47ef4b4ebe41c5a6ecbcf62de65392.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/fbfc1135824e4b698466b1fee28a3040.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) 注意:但是主线的内容还没有被修改,发行版本是旧版本,还没将hot-fix最新的内容更新到主线 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3c1ae21a4c9e4668ab5360e8823ebefe.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_18,color_FFFFFF,t_70,g_se,x_16)
4.把指定的分支合并到当前分支上
命令如下:
git merge 分支名
结果:合并没有发生冲突,将分支hot-fix的hello.txt合并到主线master上 ![在这里插入图片描述](https://img-blog.csdnimg.cn/0422fb3d31aa454e802ced61bc1e42fc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) 合并出现冲突情况: ①、首先在master主线上,修改hello.text ![在这里插入图片描述](https://img-blog.csdnimg.cn/b8e069e03d914ddfa23267e1c3366cd3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/77757849027548dcae54e092597dad2d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) ②、切换分支,在分支hot-fix上修改hello.txt,并提交。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d8c88bc70c1f4d589da32625b6ae1fc8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) ③、切换回master主线上,合并hot-fix的hello.txt版本,这时候会出现合并冲突 ![在这里插入图片描述](https://img-blog.csdnimg.cn/721ece08c1664010a2fd6cb5b6b8501a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) ④原因是:两个分支都发生了修改,所以合并失败![在这里插入图片描述](https://img-blog.csdnimg.cn/84fc5573dbbd48629aafd6b785995358.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) ⑤通过vim hello.txt手动合并hello.txt文件 ![在这里插入图片描述](https://img-blog.csdnimg.cn/50a74f90d8534ea48549cf6b6c11376c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16) ⑥添加到暂存区后,上传本地库版本就不能带文件名,否则会发生致命的错误。因为master和hot-fix都修改了hello.txt,合并的时候,都是同样一个名字,当我们手动合并修改hello.txt,将是一个新的”hello.txt“,但不能用hello.txt指示它。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/44ed5588e66c400b9f24bdfac315a05a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZnJlZShtZSk=,size_20,color_FFFFFF,t_70,g_se,x_16)
教学视频地址
https://www.bilibili.com/video/BV1vy4y1s7k6p=20&spm_id_from=pageDriver
|