Git-study

 · 2019-11-17 · 次阅读


Git

简介

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
Git与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git不仅仅是个版本控制系统,也是一个内容管理系统(CMS),工作管理系统。

作用

1.记录历史版本信息(记录每一次修改的记录)
2.方便团队相互之间协作开发
……

Git工作流程

一般工作流程如下:
1.克隆Git资源作为工作目录。
2.在克隆的资源上添加或修改文件。
3.如果其他人修改了,你可以更新资源。
4.在提交前查看修改。
5.提交修改。
6.在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

Git工作区、暂存区和版本库

工作区:就是你在电脑里看到的目录 暂存区:英文叫stage,或index.一般存放在.git目录下的index文件红,所以把暂存区有时也叫做索引(index). 版本库:工作区有一个隐藏目录.git,不算工作区,而是Git的版本库

常用的版本控制系统
cvs/svn:集中式版本控制系统
git:分布式版本控制系统

集中式的版本控制系统=>必须有一个中央总控的服务器(用来记录存储历史版本和源代码信息)
从中央服务器上获取某个版本信息,回滚一下,让对应的版本中的代码覆盖本地的代码。

SVN弊端
1.需要连网才能回退或查看历史版本信息
2.中央服务器毁坏的话,一切OVER
3.所有的上传和下载都是基于文件传输方式完成的,速度会慢

Git分布式
=>每个开发者本地就是一个代码管理仓库

创建本地项目仓库:$ git init

工作区:写代码的地方
还有两个看不见的区域:暂存区与版本区
从本地仓库的版本区,基于命令,把某个版本信息回退到工作区
Git也有一个中央服务器(中央仓库),用来团队协作
每一个个体开发程序员只需要把自己的版本区信息同步到中央仓库上。(这个过程叫推送)
如果团队中的人员想要看其他人代码,就直接把远程仓库的信息拉取到版本区中(信息同步)
git好处:
1.无需连网也能记录和查看历史版本信息
2.无需过多依赖中央仓库,每个人本地也有全部的信息
3.向中央仓库传输内容依托的是文件流传输,速度比SVN快N倍

工作原理

工作区:我们能看到的,并且用来写代码的区域
暂存区:临时存储用的
版本区:生成历史版本
git add -A 把工作区的内容提交到暂存区
git add -m 把暂存区内容提交给版本区
git push origin master
git pull orgin master(版本区与中央仓库间的操作)

Git使用

Git的全局配置

第一次安装完成git后,我们在全局环境下配置基本信息:我是谁?
git config -l 查看配置信息
git config –global -l查看全局配置信息
配置全局信息,用户名和邮箱
git config –global user.name=’xxx’
git config –global user.email=’xxx@xx.xx’
2.创建仓库完成版本控制
创建本地git仓库
git init
会生成一个隐藏文件夹,.git文件夹千万不能删,因为暂存区和历史区还有一些其他的信息都在这里,删了就不是一个完整的git仓库

在本地编写完成代码后(工作区),把一些文件提交到暂存区
git add XXX 把某一个文件或者文件夹提交到暂存区
git add . 把所有最新修改的文件都提交到暂存区
git add -A 同上
git stattus 查看当前文件的状态(红色代表在工作区,绿色代表在暂存区,看不见东西证明所有修改的信息都已经提交到历史区)
git rm -cached 1.html 把刚传入到暂存区的内容删除

把暂存区内容提交到历史区
git commit -m’描述信息:本次提交内容的一个描述’
查看历史版本信息
git log
git reflog
从工作区提交到暂存区,从暂存区提交到版本区:是把内容复制一份传过去的,本区域中依然存在这些信息(只有这样才能对比出哪些文件在某个区)
git reset –hard 版本号 即可替换工作区的历史版本

Github

Github: http://www.github.com
一个开源的源代码管理平台,用户注册后可以在自己账户下创建仓库,用来管理项目源代码(源代码是基于Git传到仓库中)
我们所熟知的插件、类库、框架等都在这个平台上有托管,可以下载观看和研究源码等
1.Settings用户设置
Profile 修改自己的基本信息
Account 可以修改用户名
Security 可以修改密码
Emails 可以增加修改邮箱(必须进行邮箱校验)
。。。。。。
2.创建仓库
new Repository->填写信息->Create repostity

public 公共仓库作为开源的项目
private 私有仓库作为内部团队协作管理的项目
Settings->删除仓库Delete this repository
->Collaborators设置协作开发的人员

####基本概念####
仓库(Repository)
仓库用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库
收藏(Star)
收藏项目,方便下次看
复制克隆项目(Fork)
该fork的项目是独立存在的

Pull Request(发起请求)