GitHub的创始人是Linus,使用C语言编写,也是最初的Linux开发发起人。
集中式和分布式的版本控制不同:
集中式:版本库是放在中央服务器中的,工作的时候要从服务器取得最新版本之后才开始工作,工作完之后,在提交的中央服务器。必须要有网络。
分布式: 没有中央控制系统,每个人的电脑都有完整的版本库,中央服务器只有来大家交换修改的文件,
git在不同系统上的安装,自行百度。(我现在觉得Kali 系统做的越来越好了,之前在物理机上安装的时候兼容性不是很好)
git - config 命令的 --config 参数,表示这台机器上的所有的仓库都使用这个配置,当然也可以对某个仓库指定不同的用户名和Email
创建一个空的仓库 我实在 opt目录下创建了一个叫做learnGit的仓库 (pwd是用来显示当前的目录) 注:创建完后当前目录下生成一个 .git文件 通过命令:ls -ah 可以查看隐藏文件
注:Git只能跟踪文本文件的控制,没有办法控制图像视频文件。另外一点 Word文件时Microsoft的一种二进制文件,因此没有办法跟踪Word上的改动文件。这里也不推荐使用记事本来写代码,最好使用notepad++(默认编码设置是UTF-8.)
将新建的文本添加到仓库中: 使用 git add 提交文件 ,使用 git commit -m "备注“” 提交的跟踪信息
git status 命令可以帮助我们时刻掌握仓库当前的状态, 下载我们先将readme文件修改 ,然后使用该命令 git status (这个命令跟 linux 下 service status 类似)
上面的显示 readme文件修改了但是没有提交 ,如果我们不知道修改了什么地方 可以使用git diff 来查看修改的地方
可以看我们之前添加了一行,知道修改了之后我们就就将它提交一遍(为了放心,我们在 git commit之前再次 git status一下)
最后提交 备注一下
可以使用 git log 命令查看版本的历史记录
现在来看斑斑的回退 使用命令 git reset -- hard 参数 (在 Git 很重 HEAD 表示当前的版本, 上一个版本是 HEAD^ ,上上一个版本是 HEAD^^ ,如果回退的较多可以写成这样 HEAD ~100 表示第一百个版本)
使用 git log 看看,发现之前的一个记录没有了,
如果想撤销之前的操作,不要关闭窗口,继续 git reset --hard 加上前面的 一串记录数据
git 提供了一个记录每次使用命令 命令 : git reflog
总结 使用 git 回退版本 使用命令 : git reset --hard commit_id
git的目录理解:
工作区: 就是我们刚才建立的一个文件 leanGit。在之前我们创建仓库的时候就产生了一个 .git 文件, 他是git的版本控制文件, git版本仓库中有很多东西,其中最重要的是称为stage的暂存区,还有git创建的第一个master,以及master的一个指针 HEAD,(这里我使用廖老师的图)
在前面回顾一下 : 把文件添加到仓库分成了两步:第一步第 使用 git add 把文件添加进去I(实际上是将文件修改添加到暂存区)--------第二步git commit 将暂存区的所有文件添加到当前分支,因为我们在git版本库的时候创建了唯一的一个master分支,所以 git commit就是往 master分支上提交更改。具体的提交变换工程图解
git管理的是修改,而不是文件 ,为了说明这个做一个实验:
首先对readme问价添加一行 ,然后将他添加到仓库暂存区 ,查看
可以看到gitcommit 只负责对暂存区的修改,
所以再次提交之后才会看到结果,更新
如何撤销修改:
原文:https://www.cnblogs.com/xinxianquan/p/10989828.html