| |
|
开发:
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图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/20 7:44:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |