其他分享
首页 > 其他分享> > 一眼就懂,带你学会git

一眼就懂,带你学会git

作者:互联网

Git命令行操作

git的整个流程:

git add: 从工作区提交到暂存区

git commit -m ‘需要的名字’ 文件名字 将暂存区提交到本地库

1.本地库初始化

1-1 :命令: git add: 从工作区提交到暂存区

​ git init 初始化一个git仓库

​ ll 检测有哪些目录

​ ls -lA 检测隐藏目录(以. 生成的目录是隐藏目录)

​ cd 文件夹名 进入那个文件夹

​ mkdir 文件名 新建一个文件

​ pwd 检测自己在哪个目录

​ ls -l | less 分屏

​ cd d 切换到d盘

​ cat 文件名 查看文件里面有什么内容

​ cd …/ 退出到上一级目录

​ rm -rf 文件名 删除文件

1-2效果:在这里插入图片描述在这里插入图片描述

注意:.git目录中存放的是本地库相关的目录和文件,不要删除,也不要修改

注意:以.生成的目录都是隐藏目录

2.设置签名:

2-1:形式

​ 用户名:aa

​ Email:goodmoring@atguigu.com

​ 2-2:作用:区分不同开发人员的身份

注意:Email里的地址和用户名没关系,email地址也可以不存在

​ 2-3 :辨析:这里的设置的签名和登录远程数据库(代码托管中心)的账号,密码没有任何 关系

​ 2-4:命令:

​ 项目级别/仓库级别 :仅在当前本地库范围有效

​ 用户名:git config user_name tom_go

​ Email:git config user.email goodMorning_pro@atguigu.com

​ 查看信息保存位置: cat ./.gitconfig文件

​ 图例:

在这里插入图片描述

​ 系统级别签名:

​ 系统用户级别:登录当前操作系统的用户范围(电脑用户)

​ 用户名:git config–global user_name tom_glb

​ Email:git config - -global user.email goodMorning_pro@atguigu.com

​ 查看信息保存位置: cat ~/.gitconfig 文件

​ 图例:
在这里插入图片描述

2-5:级别优先级:

就近原则:项目级别优于系统用户级别,二者都有采用 项目级别签名;

如果只有系统用户级别的签名,就以系统用户级别的签名为主;

注意:两者都没有这是不允许的,只要有一样存在;

3.创建一个文件

3-1.通过vim 文件名 或者touch 文件名 创建文件/修改文件

注意:如果已经建了这个名字再次vim就是修改文件,想要修改里面的内容要按i 才能修改
在这里插入图片描述

通过 按键esc : w q enter键就可以保存,并返回到git页面;

5-2通过 git status 查看工作区.暂存区状态

在这里插入图片描述

这里红色表示"“未追踪文件”"也就是没有提交到暂存区,只是在工作区

5-3:通过git add 文件名 将工作区的"新建/修改" 添加到暂存去

在这里插入图片描述

表示添加到暂存区

5-4: 通过 git status 再次查看当前状态

在这里插入图片描述

表示已经放到了暂存区;

3-5 通过 git restore --staged 文件名

在这里插入图片描述

表示从暂存区撤回来;

3-6 通过 git status 查看状态

在这里插入图片描述

表示又变成未提交状态;

3-7通过ll查看

在这里插入图片描述

表示只是从暂存区删除,并不是把工作区的文件删除

3-8 在通过git add 文件名 git status 查看状态和上面一样,看上面的

3-9 通过git commit -m ‘对文件的描述’

在这里插入图片描述

把文件从暂存区提交到对象区

3-10.通过 rm -rf 文件名 删除文件

3-11. 通过 cd …/ 退出到上一级目录

4查看历史版本:

4-1.通过 git log 查看提交了多少次以及提交的日志的内容

在这里插入图片描述

我们可以看到提交了两次,以及里面的内容(内容详细)

​ 多屏显示控制方式:

​ 空格 向下翻页

					b  向上翻页

​ q 退出

4-2 通过git log --pretty=online 多个文件提交

在这里插入图片描述

多个日志提交,占得屏幕多,这样只显示在一个屏幕

4-3.通过git log --oneline

在这里插入图片描述

这个命令跟简洁;只显示一部分信息

4-4.通过 git reflog

在这里插入图片描述

比 git log --oneline 多一些内容

HEAD@{移动到当前版本需要几步}

5.前进后退

在这里插入图片描述

6. reset命令三个参数对比

在这里插入图片描述

在这里插入图片描述

7.删除文件并找回

7-1.删除文件: rm 文件名

7-2.找回: git add 文件名 git status 查看状态 git commit -m ‘文件描述’ 再重新提交一遍

7-3.前提:删除前,文件存在时的状态提交到了本地库;

7-4.操作: git reset --hard 指针位置

​ 删除操作已经提交到本地库:指针位置指向历史记录

​ 删除操作尚未提交到本地库:指针位置使用HEAD

8.比较文件差异:

​ 8-1:git diff 文件名

​ 比较两个版本的文件差异:红的为删除,绿的为添加;

​ 将工作区中的文件和暂存区进行比较

​ 8-2:git diff 文件名

​ 将工作区中的文件和本地库历史记录比较

8-3:不带文件名比较多个文件

9.修改默认编辑器:

9-1:把你安装的git存放那个文件里找到bin文件夹并把他的路径复制,在电脑的环境变量里添加进去;

9-2:在终端中直接通过命令 code 调用 ‘编辑器’

注意:编辑器第一个字母大写

git config --global core.editor "Vscode"
git config --global core.editor "Vim"

9-3.保存退出,再重新创建文件;


1.分支管理

1-1.什么是分支?

​ 在版本控制过程中,使用多条线同时推进多个任务.

在这里插入图片描述

1-2.分支的好处?

1-3.分支操作

​ 1-3-1: 创建分支

​ git branch 分支名

​ 1-3-2:查看分支

​ git branch -v

​ 1-3-3:切换分支

​ git checkout 分支名

​ 1-3-4:合并分支

​ 第一步: 切换到接收修改的分支(被合并,增加新的内容)上

​ git checkout 接收修改的分支名

​ 第二步: 执行merge命令

​ git merge 要修改的分支名

​ 1-3-5:解决冲突

​ 什么叫冲突: 同时修改两个版本的内容;

​ 冲突的表现:

在这里插入图片描述

​ 冲突的解决:

2.Git基本原理:

​ 哈希算法的特点:

​ 1.不管输入数据有多少,输入同一个哈希,得到的加密结果长度固定

​ 2.哈希算法确定,输入数据确定,输出数据能够保证不变.

​ 3.哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很 大.

​ 4.哈希算法不可逆

3.Git保存版本的机制:

​ 3-1: 集中式版本控制工具的文件管理机制

​ 以文件变更列表的方式存储信息.这类系统将他们保存的信息看做是 一组基本文件和每个文件随时间逐步累积的差异;

​ 3-2:Git的文件管理机制

​ git把数据看作是小型文件系统的一组快照,每次提交更新时git都会 对当前的全部文件制作一个快照并保存这个快照的索引,为了高效, 如果文件没有修改,Git不在重新存储该文件,而是只保留一个链接指 向之前存储的文件,所以Git的工作方式可以称之为快照流

​ 4.GITHub

​ GitHub首页就是注册页

​ 网址: https://github.com/

​ 4-1.在gitHub注册账户

​ 4-2推送:

​ 4-2-1: 先建一个本地库

​ mkdir 目录名(AA); 创建仓库

​ cd AA ; 进入目录

​ vim aa.txt; 创建文件;

​ git add aa.txt; 发送到暂存区

​ git status; 查看状态

​ git commit -m “发送信息的描述” 文件名; 提交到本地库

​ 4-2-2:创建远程库

​ 登录 gitHub

​ 点击 new reporitory 创建一个新的仓库

​ 验证email 邮箱 (新账户需要)

​ 创建示例图:
在这里插入图片描述

​ 4-2-3:推送

注意:别名:是为了把那个网址简化起的名字

​ git remote add “别名” 建文件发送gitHub的网址; 简化 网址起别名

​ git remote add origin git@github.com:asdf12345678-m/-.git

​ git remote -v ; 查看状态

​ git push -u 别名 分支名; 推送

​ git push -u origin master:main

​ 推送成功示例图:

在这里插入图片描述

​ 4-2-3: 克隆:

注意:重新建一个同级的目录 然后直接git clone 数据库网址

​ mkdir 目录名(BB) ; 重建一个仓库

​ cd 目录名 ; 进入目录

​ git clone 仓库里AA的地址 ; 克隆AA远程数据库

​ ll 检测现在有AA 的目录

​ cd AA 进入AA目录

​ ll 可以看到AA里面的文件

​ ls -lA 可以看到有一个.git 的目录 代表本地库已经初 始化好了,不需要我们初始化

​ git remote -v 查看状态 我们给AA里面的远程数据库网址 起的别名也拿到了

​ 作用: 完成的把远程库下载到本地

​ 创建远程地址的别名

​ 初始化本地库

​ 4-2-4:加入团队:

​ vim AA里的文件名; 修改里面的内容

​ git add AA里的文件名; 放到暂存区

​ git commit -m “描述的内容” AA里的文件名; 提交到本地库

​ git push 别名 分支名 提交不了,因为不是一个团队

​ 怎样加入团队:

​ 第一步:
在这里插入图片描述

						第二步:

在这里插入图片描述

​ 第三步:

在这里插入图片描述

​ 第四步:

在这里插入图片描述

​ 第五步:

在这里插入图片描述

​ 接受后,他俩就是一个团队的成员

​ git push 别名 分支名; 再执行推送:

​ 执行成功图例:

在这里插入图片描述

4-3: 拉取(也可以直接算提交)

​ git push 别名 分支名

​ pull=fetch+merge

​ git fetch 远程库别名 远程库分支名; 把远程库的分支拉取下来;

​ git merge 远程库别名 远程库分支名

​ git pull 远程库别名 远程库分支名

​ cat 文件名 ; 查看文件,只是把远程库的数据下载下来

4-4:团队协作冲突:

​ 要点:

​ 如果不是基于GitHub 远程库操作的最新版所做的修改, 不能推送,必须先拉去

​ 拉取下来后如果进入冲突状态,则按照’"分支冲突解决"操作解决即可’;
总结:
学会了git 的指令git的分支,分支冲突,以及怎样解决的;
学了gitHub注册账户,怎样传送数据,克隆,拉取;
git的开发减轻了技术人员的压力

标签:文件,git,文件名,学会,暂存区,提交,一眼,分支
来源: https://blog.csdn.net/starry__sty/article/details/117818584