一、Git版本控制
1、集中式版本控制工具:SVN(版本控制集中在服务器端,会有单点故障风险);
2、分布式版本控制工具:Git;
3、Git简史
Talk is cheap, show me the code.(Linus)
4、https://git-scm.com/ 官网下载安装git
(后面均使用默认设置);
二、Git&GitHub简介
1.Git的结构与GitHub的关系
2、Git&GitHub---本地库与远程库的交互方式
(1)团队内的合作
(2)跨团队协作
三、Git命令行操作
1、添加,提交
(项目级别信息保存位置显示)
(系统用户级别信息保存的位置);
(第二句表示本地库中没有东西,第三句表示暂存区中没有什么可提交的。);
(用vim thy.txt新建了一个文本文件)
(行末换行符进行改变,将文件添加到缓存区);
(文件已经添加至缓存区了,可用提示命令从缓存区撤回);
(git commit thy.txt提交之后,要求对这次改变输入提交信息);
(master根提交,“版本号”,一个文件,一行增加,创建了文件)
(缓存区中没什么提交的,工作树是干净的);
(对thy.txt进行了修改,用add命令更新到暂存区,或用checkout在你的工作目录里取消修改,暂存区中没没有可提交的修改,用add和commit添加到暂存区并提交,或直接提交);
(使用add后显示status,然后提交,加上-m可以不用进入vim编辑器写提交信息);
2、版本穿梭
(commit后面是这次提交的索引,经过哈希算法算出来的,head是指针,指向当前版本,版本穿梭就是移动改指针)
(三种查看历史记录,reflog能显示所有版本,oneline只能显示过去版本,索引号选中自动复制)
(前进后退都用这个命令)
(一个^表示后退一个版本,2个后退两个,一次类推,太多了可以用~3表示后退三个版本)
(用HEAD命令使三个区保持一致)
(找回永久删除的文件,回退到过去版本)
(冲突,当合并时,发现合并的两个分支被修改了同一个文件的相同位置,就会产生冲突,git不知道要保留哪一个,所以会产生人工合并取舍);
(哈希算法可以用来检验文件传输是否有损,哇,以前不知道还有这作用0.0);
(版本管理是用哈希将每次的提交生成相应的哈希值,然后版本的管理就是一条链表,然后指针在上面移动。)
(创建分支其实是创建一个指针,而不是真的将文件再复制一遍,分支的切换是移动head指针,所以效率很高!)
原文地址:https://www.cnblogs.com/Cloud-king/p/10320403.html