Git 学习笔记(一)—Git基础

1、版本控制器:是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。记录文件内容变化,已达到可以回到到提交前某一版本的目的。

2、集中化版本控制器(svn)与分布式版本控制器(git)区别:

svn:都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问您将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。

git:客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。要浏览项目的历史,Git 不需外连到服务器去获取历史,然后再显示出来——它只需直接从本地数据库中读取。 你能立即看到项目历史。

3、Git三种状态

已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

4、Git未提交前的文件状态与工作空间关系

Git在未进行commit操作之前,存在三种状态:

Untracked files:未被Git接管的文件。如果为不需要提交的文件,可以放入.gitignore文件进行忽略。

Changes to be committed:已提交到本地仓库,但为同步到远程仓库。

Changes not staged for commit:远程仓库或本地仓库中的文件在工作空间已被修改,但未提交。

将项目clone到本地,此时服务器上的代码为远程仓库,本地可以看到的代码为工作目录,在本地存在一个暂存区域和本地仓库。新建一个文件,查看项目状态(git status)变为Untracked files,会提示你使用git add命令将文件加入暂存区域,add后查看项目状态则变为Changes to be committed,表示文件暂存区域生成了快照,等待被提交。执行命令git commit <文件名> -m (备注),将暂存区的文件提交到本地仓库,未被提交到暂存区的文件不被commit命令识别不会提交到本地仓库。如果一个文件修改一部分提交到暂存区,另一部分没有提交到暂存区此时应该是所有的更改都会被提交,即一个文件存在两种状态Changes to be committed和Changes not staged for commit此时commit此文件加入暂存区的修改和未加入暂存区的修改都会被提交,网上有很多私人的博客写只有暂存区的修改会被提交这个结果没有出现,这个问题一般不会出现,只要记住提交之前将文件add一下就OK了。这里的三种状态是可以互相切换的。




猜你喜欢

转载自blog.csdn.net/renl123470/article/details/80427224
Git