| |
|
开发:
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版本控制工具为什么要使用版本控制工具?【了解】 在公司中开发项目时通常是多人协同开发,经常会出现代码文件相互被覆盖、代码不同步、同一个文件在电脑中存在多份等情况,如果使用版本控制工具则上面这些问题都会被解决。 2.1 版本的概念(1)初指一种书籍经过多次传抄而形成的各种不同本子。随着时代的发展,版本也开始应用于软件上。 (2)软件版本编号制定是指为软件设置版本号码的方式。通常,版本号码会以数字订定。如:CTS3.3.5、QQ 2021 Beta 各版本的时间轴演变,每一次版本的改变,都会有功能的改变。 2.2管理版本2.2.1.传统管理方式问题:传统管理方式造成了本地电脑上有很多相同的文件,不容易维护,造成了非常混乱的局面。 2.2.2 版本控制方式介绍: 好处:使用版本控制以后,只需在本地保存一份,各个版本由版本控制软件来进行管理,常见的版本控制软件有git和svn。 2.3 git介绍2.3.1 定义:Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以高效地管理项目。 2.3.2 特点:项目越大越复杂,协同开发者越多,越能体现出Git 的高性能和高可用性!并且git有3个区域 2.3.3 git的三个区域【重点】
2.4 安装步骤2.4.1 下载2.4.2 安装一路回车 2.4.3 配置用户信息描述:安装完Git 之后,需要设置自己的用户名和邮件地址。进行管理的时候,Git 需要使用这些基本信息,来记录是谁对项目进行了操作 配置命令: git config --global user.name xxx git config --global user.email xxx git config --list ? ? // 查看git配置信息 注意:同一台电脑上面的git config命令只需要执行一次,执行完成的配置信息保存在:C:\Users\当前用户名.gitconfig文件中。 2.5 Git操作步骤(1)使用git初始化项目 (2) 编写代码 (3) 把工作区添加到暂存区 (4) 把暂存区添加到仓库区 2.6 Git命令git init: 使用git初始化项目,注意:同一个项目只需要初始化一次,初始化成功后会在当前项目目录中自动创建一个.git的隐藏目录,这个隐藏目录中的内容不需要我们手动修改 git add .或文件名及目录名称 将工作区中的代码提交到暂存区 git commit -m 备注信息 将暂存区中的代码提交到本地仓库 git status 查看git 状态 git log 查看git完整的日志[版本]信息 git log --oneline 查看git简短的日志[版本]信息 git reset --hard 版本号 git版本回退 git reflog 查看所有git日志[版本]信息,注意:当我们使用了git reset --hard进行版本切换后要使用git reflog来查看所有git日志信息。 2.7 文件忽略2.7.1 介绍:对于无需使用git进行管理的文件或文件夹使用此文件进行配置 2.7.2 使用步骤:第一步:在项目根目录中新建.gitignore文件; 第二步:在.gitignore文件中配置要忽略的文件或目录的规则; 2.7.3 常用配置规则:(1) /git-demo1/ 过滤整个文件夹 (2) *.txt 过滤所有.txt文件 (3) /git-demo1/a.html 过滤某个具体文件 2.8 分支2.8.1 介绍:git版本控制系统支持分支操作。可以从开发主线上分离开来,然后在不影响主线的同时继续工作。 2.8.2 什么是主分支?在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。我们把这个master 分支叫做主分支,主分支上的代码是功能好用、但不一定完整的代码。 2.8.3 主分支的问题:在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发 2.8.4 分支解决的问题:用来保存和记录整个项目已完成的功能代码。但是不允许程序员直接在master 分支上修改代码,这样做的风险太高,容易导致整个项目崩溃 2.8.5 分支相关命令git branch 查看git分支信息 git branch 分支名 创建分支 git checkout 分支名 切换分支 git merge 分支名 合并分支 注意:在合并分支时容易发生文件冲突。 什么是文件冲突?【重点】 当多个开发人员修改了同一个文件中的同一段代码时在合并到主分支时就发生文件冲突,文件冲突如下: 怎样解决文件冲突?【重点】 开发者自行手动解决文件冲突,也就是说要让开发者自己手动查看代码,然后手动处理发生冲突的代码,解决完文件冲突后再使用git add .及git commit -m 这些命令。 2.8.6 解决冲突介绍:如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法合并它们。 我们需要打开这些包含冲突的文件然后手动解决冲突。 2.9 远程仓库2.9.1 介绍:Git 命令都是在本地执行,如果想通过 Git 分享你的代码或者与其他开发人员合作。 就需要将文件放到一台其他开发人员能够连接的服务器上。这就是远程仓库的作用。 2.9.2 远程仓库分类:(1)github:github是一个基于git的代码托管平台,在国外,速度比较慢,在大陆的使用很受影响 (2)gitee:gitee是一个基于git的代码托管平台,国内使用频率较多 (3)公司自己部署,了解即可,强调不是前端人员部署的,使用步骤和命令都一样 2.9.3 操作流程注册 创建远程仓库 本地文件推送到远程仓库 克隆和同步远程仓库 2.9.4 相关命令remote add 本地别名 远程仓库地址 给远程仓库地址起个别名 git remote -v 查看本地别名信息 git push [-u] 远程仓库地址/别名 本地分支名称 将本地仓库代码推送到远程仓库 注意:如果使用了git push -u参数后则下次可以直接使用git push命令来将本地仓库中的代码推送到远程仓库,而不需要带远程仓库地址及本地分支名称。 注意:同一个远程仓库中只能放一个项目的代码,而不能将不同项目的代码推送到同一个远程仓库中。 git clone 远程仓库地址 克隆远程仓库地址中的代码到本地电脑中 注意:同一个远程仓库中需要克隆一次。 git pull 拉取远程仓库中的代码到本地电脑中 注意:拉取在同一个项目中可以多次使用 2.9.5 SSH访问简介:传统方式访问远程仓库的问题:传统方式本地和远程传输,需重复输入gitee的账号和密码,较为繁琐。 SSH好处:免登录身份认证、数据加密传输。而SSH实现本地仓库和gitee之间免登录的加密数据传输。更重要的原因是团队协同开发更加方便。 SSH组成: (1)id_rsa 私钥文件,存放于开发者的电脑中 (2)id_rsa.pub 公钥文件 。 生成密钥步骤: 1、打开Git Bash 2、执行下面的命令来生成ssh密钥: ssh-keygen -t rsa -b 4096 -C "你自己的邮箱" 注意:执行完上面的命令后连续敲击3 次回车即可; 3、将公钥放在远程仓库中: 1)单击码云网站上个人帐号头像然后选择“设置”菜单 2)单击左边的“安全设置”-->"ssh公钥": 3)输入生成的ssh公钥: 4、检查ssh认证是否成功: ssh -T git@gitee.com 上面的步骤输入yes后看到类似于下面的提示信息,就表示认证通过: 5、绑定远程仓库的ssh地址到本地别名: //语法: git remote add bendi 远程仓库的ssh地址 git remote add bendi ? git@gitee.com:best_coding/chongqing-web.git 6、推送本地仓库中的代码到远程仓库: git push bendi master 2.9.5.1相关命令ssh-keygen ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ssh: 验证远程仓库中的公钥配置是否成功: ssh -T git@gitee.com 2.9.5.2配置ssh2.9.5.3 使用ssh提交本地文件2.9.6 Git与SVN区别SVN:SVN是一个开放源代码的集中式版本控制系统,用于多个人共同开发同一个项目,实现共享资源。集中式版本控制系统:版本库是集中存放在中央服务器,开发者需要先从中央服务器获取最新的版本文件,然后开始干活,最后再把自己修改的文件推送到中央服务器。 Git:Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。分布式版本控制系统:没有“中央服务器”,每个人的电脑上都是一个完整的版本库,联网开发不是必须的。但两两开发者之间肯定不会以qq或U盘形式传送,也有一台充当“中央服务器”的电脑(gitee和github)。此服务器的作用仅是用来方便“交换”各开发之间的修改。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/15 23:03:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |