git基本概念
一 、什么是Git
Git是目前世界上最先进的分布式版本控制系统。
二、集中式和分布式的区别
集中式版本控制系统,版本库是存放到中央服务器上的。每次干活之前都需要从中央服务器获取最新的版本,然后开始干活,干完活之后,再把自己的内容推送到中央服务器上。
最大缺点是必须联网才能工作,如果中央服务器出现故障,版本库有丢失的风险。
分布式版本控制系统,版本库是存放在自己电脑上的,其中一人的电脑出现问题后,还可以从其他人哪里复制一个。
关于多人协助,分布式版本控制可以让其中一个来充当“中央服务器”,其他人可以从这里拉取最新的修改,也可以提交自己的修改。
注意:没有这个中央服务器也照样可以干活,实现版本控制,只是交换修改不方便而已。
git是作为版本控制工具,而不是团队协助工具,虽然git也可以团队协助,但是主要功能是版本控制。
这个问题困扰了好久,老想着git和svn都要往远程提交代码,不是一样的吗???
git是作为版本控制工具,版本控制工具,版本控制工具,作用是版本控制。
三、文件状态和工作区
使用git操作时,必须了解git的文件状态和工作区,这样才能清楚的对文件进行版本控制。
四个文件状态
未跟踪 ( Untracked )
未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged
未修改( Unmodify )
文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
已修改( Modified )
文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
暂存状态( Staged )
暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
四个工作区域
工作区 (Working Directory)
工作区,就是平时存放项目代码的地方。
暂存区 (Stage/Index)
暂存区,用于临时存放文件的改动,事实上它只是一个文件,保存即将提交到文件列表信息。
存放需要提交到版本库的文件,可能有些文件只是临时修改,不想提交到版本库。
本地仓库(版本库)( Local Repository 或 Git Directory)
就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本 。
你的所有提交都会存放到这里,并且可以看到每次提交的修改内容。
远程仓库(Remote Repository)
目前主要的远程仓库有:GitHub,GitLab,Coding。
托管代码的地方,这样只要有网络,就可以将自己的版本库下载到任意一台电脑上。
当然,也可以用来团队协助。