- 1.分布式版本控制和集中式版本控制区别
- 2.工作区和暂存区
- 3.常用命令
- 3.1冲突解决
- 3.2分支学习
- 3.3其它
- 4.码云连接配置
集中式版本控制系统,版本库是集中存放在中央服务器的,你干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。集中式版本控制系统最大的弊端就是必须联网才能工作,如果在局域网内还好,速度够快,可如果在互联网上,遇到网速慢的话,可能提交个10M的文件就需要5分钟,这还不得把人给憋死啊。
分布式版本控制系统,根本没有“中央服务器”,每个⼈的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个认电脑上都有个完整的版本库,那多个人如何协作呢?比如说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到 对方的修改了。和集中式版本控制系统相比,分布式版本控制系统的安全性要好很多,因为每个电脑里都有完整的版本库,某个人的电脑坏掉了不要紧,而集中式版本控系统的中央服务器要是出了问题,所有人都没法干活了。
2.工作区和暂存区工作区(Working Directory):就是你在电脑⾥能看到的目录。 版本库(Repository):工作区有个隐藏目录“.git”,这个不算工作区,而是Git的版本库,Git的版本库存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们主动创建的第一个分支master,以及指向master的一个指针叫HEAD。 我们把文件往Git版本库中添加的时候,是分两步执行的:第一步是用“git add”把文件添加进去,实际上就是把文件修改添加到暂存区;第二步 是用“git commit”提交更改,实际上就是把暂存区的所有内容提交到当前分支。因为我们创建Git版本库时,Git主动为我们创建了唯一一个master分支,所以,现在commit就是往master分支上提交更改。你可以简单理解为,需要提交的⽂件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
3.常用命令创建hi.txt
$ git add hi.txt #暂存单个文件
$ git add ./* #批量暂存当前目录下所有内容
$ git status #查看文件状态
$ git commit -m "test" #提交
[master (root-commit) e522732] test
1 file changed, 1 insertion(+)
create mode 100644 hi.txt
$ git status #查看文件状态
$ git diff hi.txt #更新文本呢内容
3.1冲突解决
a和b同时修改同一个文件的同一行代码就会产生冲突,如果a先push,那么b在push的时候就会报错。所以,为了保险起见,只要想向服务端push内容,首先需要pull内容,pull下来之后就会将服务端的代码和本地的代码进行合并,如果有冲突,就会显示冲突(git diff),如果没有冲突,那就合并成功,然后再push上去即可,如果有冲突,商量解决冲突即可
git pull #下拉文件
git diff #查看冲突
3.2分支学习
主分支:master,默认分支
新建分支: git branch 分支名
查看分支: git branch
切换分支: git checkout 分支名
(实际项目中,每个人都要在自己的分支上工作,最后再合并到如果要在master
上面合并分支,需要先切回到master(master是默认的主目录)
合并分支: git merge +分支名字
删除分支:git branch -d +分支名
(如果分支没有合并不能删除)
强制删除: git branch -D +分支名字
(如果分支没有合并要删除可以使用)
3.3其它
git init ===== 建仓库, 初始化Git仓库
git add 说明.txt ===== 把文件(这里指“说明.txt")纳入暂存区(还没有真正纳入版本控制,需要再一步确认)
git status =======查看暂存区状态
git commit -m '...' 提交纳入仓库(要写原因所以要加 -m)====git commit -m "说明内容"
注意:第一次提交需要先提交姓名和邮箱,否则会报错
git log ===== 查看提交日志
git checkout - - ====删除文件还原:
git reset -- hard =====版本号码(至少写五位) 回到历史版本号版本
git reflog ======= 回到删除的未来版本(过去将来时)
git rm --cashed +文件名 撤销删除文件( 内容已经放到暂存区了,把删除的文件撤销删除,从暂存区拿回)
git checkout – hello.txt 工作区写的文件b还没有放到暂存区,把暂存区文件a拿回来回到工作区,用暂行区内容a覆盖工作区内容b(注意双连接线两侧的空格)
4.码云连接配置
https://www.cnblogs.com/hebau-may/p/6382743.html