Git是什么

Git和CVS及SVN比较

CVS和SVN是集中式的版本控制系统,文件的变化历史都保存在服务器端的,客户端是没有的,如果客户端想获取历史版本的话需要从服务器端下载下来,如果断网就获取不到了。
Git是分布式的版本控制系统,不仅在服务端有历史版本且在客户端也保留有历史版本。

下图是SVN版本控制的原理示意图
对于File A文件,内容发生变化了,就会记录产生新文件A1和原文件A的差异,而跨一个版本到A2由于Version 3没有改变A1所以只记录Version4和Version2的差异。
在这里插入图片描述
下图是Git版本控制的原理示意图
对于A文件发生变化成为A1文件,会保存一个A1文件的快照,而到Version3是没发生变化,就会对Version2中的A1文件产生一个链接,这样就节省了存储空间。
在这里插入图片描述
总结:

  1. SVN和CVS是记录不同版本之间文件的差异,因此如果要获取不同版本文件必须要在联网的条件下才能进行;
  2. Git是记录不同版本文件的快照,在客户端保存了各个版本的文件。

github账号注册-仓库的创建

安装好Git后并不能使用,还要在github.com注册账号,创建仓库
其中用户名和邮箱在下一步需要使用。

Git的简单配置

安装及创建好仓库后,需要配置一下自己的邮箱和用户名,这样提交的代码如果有错误,别人可以联系到你。

在一个文件夹中点击鼠标右键
在这里插入图片描述
选择Git Bash Here,打开一个命令行窗口,输入如下命令设置自己的用户名和邮箱
在这里插入图片描述

从Git库中下载代码

如果远程Git库已经创建,那么就可以下载了到本地

首先在本地新建一个用于存储下载代码的版本库,然后再该文件夹中打开bash shell

分别执行如下代码

git init

此时本地文件夹中会多一个.git文件夹
然后执行以下命令

 git clone 远程版本库地址

即可将远程的代码库里的代码下载都本地了
在这里插入图片描述

Git大致工作流程

1. 查看状态

在版本库中建立一个文件hello.txt,查看状态
在这里插入图片描述
由上图可知此时有Untracked files(未追踪文件)

将新增文件添加到缓存区

通过git add “文件名”或git add . (此时是将工作目录中所有文件提交)命令将 文件提交至缓存区
在这里插入图片描述
由上图可知,此时是 Changes to be committed状态

将缓存区文件提交至本地仓库

输入 git commit -m “描述信息” 文件名或 .将文件提交至本地仓库
在这里插入图片描述
如上图所示,此时 “nothing to commit, working tree free”表名暂存区中没有内容提交且工作目录也没有内容添加至缓存区中。

改变文件内容

在hello.txt中添加了新内容,再看Git的状态
在这里插入图片描述
此时是“Changes not staged for commit”和"no changes added to commit"
表名此时工作目录中有文件没有提交至缓存区进行commit且缓存区中没有需要commit的文件。

接下来将文件提交至缓存区
在这里插入图片描述
此时状态是缓存区中有需要提交到本地仓库的已经改变内容的hello.txt文件

而现在如果我们再在文件目录中再次改变hello.txt文件内容会处于什么状态呢?
在这里插入图片描述
可以看到此时“Changes to be committed”和“Changes not not staged for commit”表名此时缓存区中有改变的hello.txt 没有commit同时工作目录中还有再次改变的hello.txt文件没有添加到缓存区中。

在将缓存区内容提交(commit)到本地仓库时,可以使用两种方法:

  1. 执行git commit -m “提交内容的描述” 文件名或 .
  2. 执行git commit 文件名或. ,这样会进入命令行模式文本模式,在这里写入提交的描述信息
    关于使用到的命令总结:
    a. 跳转到最后:shift+g
    b. 下面新加一行:o
    c. 编辑内容:此时可以写描述信息了
    d. 退出vi编辑模式:esc
    e. 保存退出: shift+zz

将文件提交至远程仓库

将本地仓库中的文件提交至远程仓库使用git push即可。
在这里插入图片描述

将远程文件下载到本地

在远程仓库中建立了新的文件怎么下载到本地呢?
直接输入 git pull 命令即可
在这里插入图片描述
总结:

  1. git有四种状态:工作目录、缓存区、本地仓库、远程仓库;
  2. 工作目录-》缓存区:git add 文件名或 .(相当于当前目录中所有文件都提交)
  3. 缓存区-》本地仓库:git commit -m “描述信息” 或git commit 然后进入vi编辑器填写描述信息;–更正一下git commit后面可以不用指定文件夹
  4. 本地仓库-》远程仓库:git push
  5. 远程仓库-》工作目录:git pull

更具体的学习可以参考:
很全面及详细的学习资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值