Git&GitHub简介与入手(一)

一、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指针,所以效率很高!)

猜你喜欢

转载自www.cnblogs.com/Cloud-king/p/10320403.html