版本控制服务器-git介绍

目录

一、简介

1、Git 与 SVN 区别

2、什么是Git

3、关于版本控制

4、git内文件的三种状态

5、Git工作流程:

二、Git命令

1、git配置文件

1.1、git的配置文件位置

1.2、查看配置git config --list

 1.3、修改配置文件

2、git基础命令

2.1、clone现有仓库

2.2、查看git仓库中各文件的状态

2.3、初始化仓库

2.4、追加文件(将文件追加到暂存区)

2.5、取消暂存

2.6、删除文件

git远程仓库

1、查看远程仓库

2、新建远程仓库

3、修改远程仓库

4、删除远程仓库

5、拉取数据

6、推送数据


一、简介

1、Git 与 SVN 区别


Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

Git 与 SVN 区别点:

Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等最核心的区别。

Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn .cvs 等的文件夹里。

Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
 

2、什么是Git

Git是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器

3、关于版本控制

 什么是版本控制?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本文所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制。
 我们用word写文档会遇到一下问题:

 1、想删除一个段落,又怕将来想恢复找不回,然后把文件另存为,最后在windwos下生成好多的文档。
 2、过段时间想找回被删除的文字,已经不知道删除前保存在哪个文件
 3、想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删
 4、有些文档需要别人帮助填写,你传给同事以后,你又更新了文档,然后同事填完文件又传给了你,怎么去合并文档。

 采用版本控制系统就可以解决上面遇到的所有问题。它可以统一进行版本控制,自动帮我们记录每次文件的改动,进行代码合并,不需要把文件传来传去,如果想查看某次改动,只需要在软件里瞄一眼就可以。
 有了版本控制你就可以将某个文件回滚到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而导致出现怪异问题,又是谁在何时报告了某个功能缺陷等等。使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改,删的删,你也照样可以轻松恢复到原先的样子。但额外增加的工作量却微乎其微。

4、git内文件的三种状态

对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。 

已提交表示该文件已经被安全地保存在本地数据库中了;

已修改表示修改了某个文件,但还没有提升保存;

已暂存表示把已修改的文件放在下次提交要保存的清单中。

由此我们看到Git管理项目时,文件流转的三个工作区域:Git的工作目录,暂存区域,以及本地仓库。 

  •  工作目录:

从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录。这些文件实际上都是从 Git 目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对这些文件进行编辑。所以工作目录就是写代码的地方,如果有新增、修改、删除文件都是在工作目录发生变化。工作目录的文件可以通过git add 命令将文件提交到暂存区。

  • 暂存区:

所谓的暂存区域只不过是个简单的文件,一般都放在 Git 目录中的index文件(.git/index)中。有时候我们会把这个文件叫做索引文件,不过标准说法还是叫暂存区域。暂存区就是用来临时存储代码的一片区域,是已经修改了但是还没有提交,将来可以提交到本地库也可以撤回来。通过git commit 命令可以将暂存区的文件提交到本地仓库。

  • 本地库

每个项目都有一个 Git 目录(注:如果 git clone 出来的话,就是其中 .git 的目录;如果git clone --bare 的话,新建的目录本身就是 Git 目录。),它是 Git 用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。本地库就是存储的实实在在的历史版本,可以通过git push命令来将本地库的文件推送到服务器。

5、Git工作流程:

 1.在工作目录中修改某些文件。
 2.对修改后的文件进行快照,然后保存到暂存区域。
 3.提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
 所以,我们可以从文件所处的位置来判断状态:如果是 Git 目录中保存着的特定版本文件,就属于已提交状态;如果作了修改并已放入暂存区域,就属于已暂存状态;如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。

  已提交(committed):表示数据文件已经顺利提交到Git版本库中。
 已修改(modified):表示数据文件已经被修改,但未被保存到Git版本库中。
 已暂存(staged):表示数据文件已经被修改,并会在下次提交时提交到Git版本库中。

二、Git基础命令

1、git配置文件

1.1、git的配置文件位置

针对所有用户:/etc/gitconfig
针对当前用户: ~/.gitconfig 

1.2、查看配置git config --list

git config --list

 1.3、修改配置文件

针对所有用户:/etc/gitconfig
针对当前用户: ~/.gitconfig

2、git基础命令

2.1、clone现有仓库

git clone URL

2.2、查看git仓库中各文件的状态

git status

2.3、初始化仓库

git init

注:如果 git clone 出来的话,就是其中 .git 的目录;如果git clone --bare 的话,新建的目录本身就是 Git 目录。

2.4、追加文件(将文件追加到暂存区)

git add aaa.txt

2.5、取消暂存

git reset aaa.txt

2.6、删除文件

从git仓库和磁盘上删除文件

git rm aaa.txt  (当前目录中删除了test.c,在git仓库中暂时删除了test.c,相当于staged状态)

从git仓库中删除test.c

git commit -m "my message"  (git仓库以后不再维护test.c)

回滚刚刚的删除操作

git reset HEAD aaa.txt  (恢复到删除前的状态,当前目录中已删除的test.c也恢复了,test.c仍文commited状态)

仅从git仓库中删除文件

git rm --cache aaa.txt (当前目录中没有删除了test.c,仅在git仓库中暂时删除了test.c,相当于staged状态)

git远程仓库

1、查看远程仓库

git remote -v 

2、新建远程仓库

git remote add [shortname] [url]

3、修改远程仓库

git remote rename [oldnanme] [newname]

4、删除远程仓库

git remote rm [remote-name]

5、拉取数据

git pull

6、推送数据

git push [remote-name] [branch-name]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值