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-2:推送(提交到远程数据库)
注意分支名可以设置为main或者master
git push 别名 分支名
注意:别名:指的是为了把那个网址简化起的名字
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 远程库操作的最新版所做的修改, 不能推送,必须先拉去
拉取下来后如果进入冲突状态,则按照’"分支冲突解决"操作解决即可’;
总结:
学了github ,以及如何进行算送数据,怎样拉取,推送;
怎样进行团队合作,邀请队友;
git功能强大,提高了开发效率;