| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> git的理论、使用以及项目搭建 -> 正文阅读 |
|
[开发工具]git的理论、使用以及项目搭建 |
Git学习git之前,我们先需要明白一个概念,版本控制! 版本控制
版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
简单说就是用于管理多人协同开发项目的技术。 没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性、以及软件的整合等问题 无论工作还是学习,或者是自己做笔记都经历过这样一个版本迭代阶段!此时我们就迫切需要一个版本管理文件! 主流的版本控制工具
除了这些主流的产品,还有一些其他的产品:
SVN 由于其局限性,近年来的地位已经慢慢被 Git 所取代,现在 Git 是世界上最先进的分布式版本控制系统。 分类本地版本控制 记录文件每次的更新,可以对每个版本做一个快照,或者是记录补丁文件,适合个人用。 代表产品:RCS。 集中版本控制 所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。 所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本。 如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。 而且,所有数据都保存在单一的服务器上,如果这个服务器损坏,就会丢失所有的数据,需要定期备份。 代表产品:SVN、CVS、VSS。 分布式版本控制 所有版本信息仓库全部同步到本地的每个用户(每个人都有全部的代码,有安全隐患!),这样就可以在本地查看所有版本历史。 在没有网络的情况下,可以离线在本地提交,只需在连网时推送到相应的服务器或其他用户那里。 由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据。 不会因为服务器损坏或者网络问题,造成不能工作的情况,极大的降低了风险。 代表产品:Git。 Git 与 SVN 区别
工作的时候,首先要从中央服务器得到最新的版本,完成工作后,需要把自己做完的活推送到中央服务器。 集中式版本控制系统是必须联网才能工作,且对网络带宽要求较高。
工作的时候不需要联网,因为版本都在自己电脑上。 待有网络后,把本地的版本推送到远程即可。 Git的历史同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。 一切始于 Linux 的维护,众所周知,Linux 内核开源项目有着为数众多的参与者。 1991-2002 年间,绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上。 由于提交的内容繁多,这些工作是非常痛苦的。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。 在这期间,Linux 社区中很多的大佬破解研究 BitKeeper。 到 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用的权力。 这就迫使 Linux 开源社区开发出自己的版本系统。 Linux 的缔造者 Linus Torvalds 花了两周左右的时间,开发出了 Git。 Git环境配置软件下载和安装打开Git官网,下载git对应操作系统的版本。 由于国内网络限制,一般下载会很缓慢。 下载对应版本安装,无脑下一步,当然存放路径可以修改一下,安装完毕就可以使用了!
启动安装成功后在开始菜单中会有Git项,菜单主要有3个程序,在任意文件夹下邮件也可以看到对应的程序!
配置
设置用户表示标识
每次 Git 提交都会使用该信息,它会被永远的嵌入到操作记录中。 设置用户名
设置邮箱
查看配置
查看系统配置
查看当前用户配置
命令查询结果与文件内容完全一致,只是写法不同。 Git的理论(核心)四个区域
工作区(Workspace):存放项目代码的地方。 暂存区(Stage):存放临时的改动,事实上它只是一个文件,保存即将提交到文件列表信息。 资源库(Repository):安全存放数据的位置,这里面有提交到所有版本的数据。其中 HEAD 指向最新放入仓库的版本。
远程库(Remote):托管代码的服务器,可以简单的认为是项目组中的一台电脑,用于远程数据交换。
工作流程
Git项目搭建
可以是项目的目录,也可以是一个空目录,建议不要有中文。
设置公钥(gitee)国内目前主流的远程仓库有两个:Github 和 Gitee。 Github 是目前最大的代码托管平台,但由于其服务器在国外,国内访问非常缓慢。 Gitee 正是基于 Github 在国内使用不方便的背景推出的国产代码托管平台,也被称为码云。 Gitee 目前发展迅速,很多 Github 上的项目都在搬移到 Gitee。 Gitee 没有网络限制,且功能更加符合国人操作习惯,推荐使用。 注册账号
设置公钥
若返回
远程仓库搭建(gitee)
克隆远程仓库
本地仓库搭建
Git文件操作文件的四种状态
要对文件进行修改、提交等操作,首先要知道文件当前在什么状态。 不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。 Git 管理的文件有四种状态:
此文件没有加入到 Git 库,不参与版本控制。 通过
文件加入了 Git 库,未修改。 版本库中的文件快照内容与文件夹中完全一致。 这种类型的文件有两种去处:
仅仅是修改,并没有进行其他的操作。 这个文件也有两个去处:
执行 这时库中的文件和本地文件又变为一致,文件为 Unmodify 状态。 执行 查看文件状态
忽略文件有时候我们不想把某些文件纳入版本控制中,比如数据库文件、临时文件、设计文件等。
IDEA中集成Git
Git分支概述
分支类似于科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那就没什么影响。 如果在某个时间点,两个平行宇宙合并了,就需要处理一些问题了。 常用指令
冲突解决
解决的办法是我们可以修改冲突文件后重新提交。 这里就要做出选择,保留别人的代码还是自己的代码。
工作一般情况下在新建的 dev 分支上工作,工作完成后,如需上线发布,dev 分支代码可以合并到主分支 master 上来。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:48:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |