一眼就懂,带你学会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.前进后退
-
基于索引操作[推荐]:
git reset --hard 索引值
git reset --hard a6ace91
先查看状态
-
使用^符号: 只能往后退
git reset --hard HEAD^
注意 一个^表示后退一步,n个表示后退n个
-
使用~符号:只能后退
git reset --hard HEAD~n
注意表示后退n步
6. reset命令三个参数对比
-
–sort 参数
仅仅在本地库移动HEAD指针
-
–mixed参数
在本地库移动移动HEAD指针
重置暂存区
-
–hard参数
在本地库移动HEAD指针
重置暂存区
重置工作区
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:解决冲突
什么叫冲突: 同时修改两个版本的内容;
冲突的表现:
冲突的解决:
-
第一步: 编辑文件,删除特殊符号;
-
第二步:把文件修改到满意为止,保存退出;
-
第三步:git add 文件名
-
第四部: git commit -m " 文件提示信息"
注意:此时commit 一定不能带具体的文件名
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