工作原理
Git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。
对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。
由此我们看到 Git 管理项目时,文件流转的三个工作区域:Git 的工作目录,暂存区域,以及本地仓库。
每个项目都有一个 Git 目录(如果 git clone 出来的话,就是其中 .git 的目录;如果 git clone --bare 的话,新建的目录本身就是 Git 目录。),它是 Git 用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。
从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录。这些文件实际上都是从 Git 目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对这些文件进行编辑。
所谓的暂存区域只不过是个简单的文件,一般都放在 Git 目录中。有时候人们会把这个文件叫做索引文件,不过标准说法还是叫暂存区域。
基本的 Git 工作流程如下:
1.在工作目录中修改某些文件。
2.对修改后的文件进行快照,然后保存到暂存区域。
3.提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
所以,我们可以从文件所处的位置来判断状态:如果是 Git 目录中保存着的特定版本文件,就属于已提交状态;如果作了修改并已放入暂存区域,就属于已暂存状态;如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。
GIT优点
•更顺畅的工作流程,开发过程中,完全可以离线操作
•快速,Git分布式架构使得本地仓库包含所有的历史版本信息,你可以在不同的版本之间快速切换
•弹性的本地分支,在svn下,你建一个分支需要把源代码复制到另外一个文件夹,而在Git下,创建分支的代价是非常小的,只需一条命令
•仓库目录结构简洁,用Git复制一个项目,只会在项目根目录创建一个.git的目录,而其他目录很干净
•内容按元数据方式存储,所有的版本信息都位于.git目录下
•完整性好,更易于协作开发
•用户群大,现在已经有成千上万个开源项目采用Git来做项目管理,github上更是有无数个代码仓库
Git使用方法
git init here // 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息、标记等内容
git remote add origin git@github.com:winter1991/helloworld.git //把本地仓库和远程仓库关联起来。如果不执行这个命令的话,每次 push 的时候都需要指定远程服务器的地址
git add // 从本地仓库增删,结果将会保存到本机的缓存里面
git commit -m "注释" //提交,把本机缓存中的内容提交到本机的 HEAD 里面
git push origin master //把本地的 commit push 到远程服务器上, origin 也就是之前 git remote add origin 那个命令里面的 origin,origin 替代了服务器仓库地址:git push git@github.com:winter1991/helloworld.git master
git pull origin master //从远程服务器 pull 新的改动
git status //查看状态
git add -A //提交全部修改
git config --global user.name "xxx" //配置用户名,上传本地 repository 到服务器上的时候,在 Github 上会显示这里配置的上传者信息
git config --global user.email "xxx" //配置邮箱
git config --list //查看配置列表
git rm xxx //从本地仓库中删除指定文件
git rm -r xxx //从本地仓库中删除指定文件夹
git commit -m "注释" //把本机缓存中的内容提交到本机的 HEAD 里面
git push origin master //把本地的 commit push 到远程仓库中
使用 .gitignore 文件忽略指定的内容:
git中文使用文档
使用github来提交代码
使用流程在github官网。
来源:oschina
链接:https://my.oschina.net/u/4461105/blog/3210156