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