内容提炼:
Git简介
Git的功能特性
从主开发者的角度看git的功能
git相关名词解释
git镜像网址
git实际操作
将本地项目添加到gitee仓库
一、Git简介
由于网络原因、使用了gitee作为远程仓库
git技术是用来做版本控制的
版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
实现跨区域多人协同开发
追踪和记载一个或者多个文件的历史记录
组织和保护你的源代码和文档
统计工作量
并行开发、提高开发效率
跟踪记录整个软件的开发过程
减轻开发人员的负担,节省时间,同时降低人为错误
简单说就是用于管理多人协同开发项目的技术。
知名工具除了git还有svn、但现在比较流行的还是git
so choose git!
git属于分布式版本控制
每个人都拥有全部的代码、所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在联网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。
不会因为服务器损坏或者网络问题,造成不能工作的情况!
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
下图是经典的git开发过程。
二、Git的功能特性
从一般开发者的角度来看,git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
三、从主开发者的角度看git的功能
从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。
优点:
适合分布式开发,强调个体。
公共服务器压力和数据量都不会太大。
速度快、灵活。
任意两个开发者之间可以很容易的解决冲突。
离线工作。
缺点:
资料少(起码中文资料很少)。
学习周期相对而言比较长。
不符合常规思维。
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
四、git相关名词解释
解释下几个名词
Workspace:工作区,其实就是咱们写代码的地方
Index / Stage:暂存区,执行git add命令就把工作区内容提交到了暂存区
Repository:仓库区(或本地仓库),执行git commit命令就会把暂存区的内容提交到本地仓库
Remote:远程仓库,执行git push命令就可以把本地代码推到远程分支
来一张经典图片以供李姐
五、git镜像网址
http://npm.taobao.org/mirrors/git-for-windows
安装略
安装成功后:
Git Bash:linux风格命令行
Git CMD:windows风格命令行
Git GUI:图形化
六、git实际操作
git clone
git clone + url
七、将本地项目添加到gitee仓库的操作流程
码云上创建一个项目,例如 springcloud-config
本地创建一个文件夹D:/git/springcloud,然后鼠标右击选择git bash here
使用 git init 命令,初始化一个git本地仓库(项目),会在本地创建一个 .git 的文件夹
使用git remote add origin fighting的git克隆地址 //添加远程仓库
// 示例:git remote add origin https://gitee.com/xxxx/springcloud-config.git
使用 git pull origin master 命令,将码云上的仓库pull到本地
将要上传的文件,添加到刚刚创建的文件夹springcloud-config里
使用git add . 或者 git add + 文件名 (将文件保存到缓存区)
使用git commit -m ‘描述新添加的文件内容’ (就是提交代码的注释) (文件保存到本地仓库)
使用git push origin master,将本地仓库推送到远程仓库