最近经常用到git和GitHub,但是命令很多都忘记了。故写一篇博客回顾并总结一下
git介绍
git是目前世界上最先进的分布式版本系统。
git的两大特点
版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题
分布式:git是分布式版本控制系统,同一个git仓库,可以分布到不同的机器上,首先找一台电脑充当服务器的角色。每天24小时开机,其它每个人都从这个“服务器”仓库克隆一份自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交,可以自己搭建服务器,也可以使用github网站。
git的安装就不赘述了,直接下好安转包。一路next就完事了(不用改安装路径)。
git基本操作
初始化
通过git我们可以管理一个目录下的代码,首先我们通过git init创建一个版本库
随机切到一个目录,点击空白区域。点击Git Bash Here,如图中所示:
这样我们就有一个格式为 .git 文件
版本创建
首先,git add 文件名.文件格式:添加某个特定的文件
或
git add . :将目录上所有的文件添加到仓库
接着,git commit -m “对这个版本的说明信息”
查看版本记录
使用 git log
图中的commit 12c6a……代表版本序列号
随便放了一张图片进项目,第二次提交项目
如果版本记录过程,以简短形式显示:
版本回退
在git中,有个HEAD指针一直指向当前的版本。用HEAD^代表HEAD前一个版本,HEAD^^代表前两个版本。其它版本类推。那前一百个要写100个^吗?答案当然是不用的,用HEAD~100。HEAD~1 等价于 HEAD^。
git reset —hard HEAD
git reset —hard 版本号:这里的版本号就是commit后的版本序列号
版本号不需要写完,写完前几个号码就好了。
查看操作记录
git reflog
工作区和暂存区
工作区就相当于我们的目录
在工作区中,有一个隐藏目录 .git,这个不是工作区。而是git的版本库。其中存了很多东西,其中最重要的是称为stage(或者叫index)的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针HEAD。
前面讲了我们把文件往git版本库里添加进去,是分两步执行的:
第一步是git add把文件添加进去,实际上就是把文件添加到暂存区
第二步是git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
用git status查看当前的状态。如果有新的文件或有文件在修改之后、在add之前,会出现以下情况:
把新的文件add之后,得出以下情况:
经历add和commit后使用status:
git管理文件的修改,它只会提交暂存区的修改来创建版本。也就是说,在修改或创建一个新文件后,不add到暂存区而直接commit,git也会说文件被修改。
撤销修改
git checkout —文件名.文件格式
如果是add后,先利用reset取消暂存的变更重新回到工作区:
接着用git checkout —文件名.文件格式 丢弃工作区的改动
如果是commit了,就版本回退
对比文件的不同
对比工作区和某个版本中文件的不同
git diff 某个版本库 — 比较的文件
对比两个版本间的不同
git diff 某个版本库 某个版本库 — 比较的文件
两个版本交换位置,得出的效果是不同的
删除文件
如果是add到暂存区,也是和之前一样,先reset,再checkout。