Git版本控制理解(一)

一、集中式版本控制系统与分布式的区别
集中式:版本库集中存放在中央服务器(即存放版本库的服务器),必须先从中央服务器取得最新版本的,处理完后再推送到中央服务器(如SVN),缺点是必须联网。

分布式:没有所谓的“中央服务器”,每一个人的电脑就是一个完整的版本库,因此工作的时候不需要联网。协作的时候只需要把各自的修改推送给对方。和集中式相比,其安全性更高,由于每个人的电脑都有一个完整的版本库,若某人的电脑出现问题,可在他人的电脑复制一份即可继续工作,而集中式版本控制的中央服务器若出现问题,所有人都无法继续干活了。且开发者之间的冲突更容易得到解决。(实际使用时,通常也会有一台充当“中央服务器”的电脑,仅用来方便交换修改)

GIt版本控制的优势:1.不需联网;2.强大的分支管理;

二、Git的常用命令
git init:把当前目录变成git可以管理的仓库;
git add (filename):把文件添加到git仓库中;
git commit -m “xxx”:告诉git,将文件提交到仓库中,-m后面输入的是本次提交内容的说明,方便找到改动的记录;
git status:时刻掌握仓库的状态,是否修改等;
git diff:查看不同的地方,修改了什么;
git log:显示最近到最远的提交日志;
git log –pretty=oneline :显示版本号(conmmit id)+提交说明;
git reset –hard HEAD^:版本回退更改操作;(HEAD:当前版本,HEAD^:上一版本,HEAD^^:上上一个版本。使用版本号也可以进行回退。)
git reflog:记录每一次的命令操作。

reflog操作显示

三、Git工作区与暂存区的理解
工作区:就是工作的一个区域(目录)。
版本库:工作区中有一个隐藏目录.git,称为Git的版本库,里面存放了很多东西,包括最重要的一个概念:暂存区stage(或 index),同时使用git时会自动创建的第一个分支master,以及指向master的指针HEAD。
暂存区:可以理解为,需要提交的文件修改的存放区。
xx

理解往Git版本库添加文件时的流程:
1.git add:实际上就是把文件以及修改添加到暂存区中;
2.git commit:实际上就是把暂存区的所有内容提交到当前分支上;

理解点:Git跟踪并管理的是修改,而不是文件。故每次修改,若不add到暂存区中,那么就不会加入到commit中。

四、Git撤销修改以及删除文件
git checkout –file:把某文件名文件在工作区的修改全部撤销掉;
注意点,这里的撤销修改有两种情况,分别如下:
1.file文件自修改后还未放到暂存区中,即是撤销后让其回到和版本库一样的状态;
2.file文件已经添加到暂存区后,又进行了修改操作,即是撤销后要回到暂存区的状态。

git reset HEAD file:可以把暂存区的修改撤销掉,重新放回工作区中;
git reset:既可用来回退版本,也可以把暂存区的修改回退到工作区。

总结
场景1:当你改乱了工作区的某个文件时,向直接舍弃工作的修改时,使用git checkout –file命令。
场景2:当你改乱了工作区的某个文件的内容,且还添加进了暂存区中,此时想舍弃修改,分两步走,先用命令git reset HEAD file,回到场景1;再同场景1的操作进行。
场景3:已经提交了不合适的修改到版本库,向撤销本次修改,直接进行版本回退即可。(前提是没推送到远程库中)

git rm file:删除工作区的文件;

1.从版本库中删除该文件:git rm file命令删除,并且用git commit来提交;
2.将工作区误删的文件恢复:git checkout –file(用版本库里的版本替换工作区的版本)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值