| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Git 代码托管平台及GitHub使用 -> 正文阅读 |
|
[开发工具]Git 代码托管平台及GitHub使用 |
1. Git 托管平台简述????????在前面的文章《Git的分支策略及工作流》中提到的场景是单人单机开发模式下Git的应用。下面扩展场景为单人(多机)多地开发:比如在家和在公司同时开发项目,这是就需要用到远程仓库来统一管理代码。我们说的远程仓库通常是通过第三方的Git代码托管平台来实现的。 Git代码托管平台有很多,比较流行的有三个:GitHub、Bitbucket和GitLab GitHub: 使用人数最多,可以免费托管,很多开源项目,如果创建私人仓库需要付费。 Bitbucket: 使用人数仅次于GitHub,免费的私有仓库和分支持有的权限控制。 GitLab:一般用于大企业项目,通过安装到企业内部服务器,实现项目的内部自治。 Bitbucket 托管平台可以查看相关文章: SourceTree 安装配置及关联Git和Bitbucket GitLab 托管平台安装配置将在后续文章中讲述,本文主要关注GitHub。 2. GitHub 使用????????Git 并不像 SVN 那样有个中心服务器。目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。GitHub是当今世界上最大的代码托管平台。? GitHub 使用一般步骤: 1. 注册账户 2. 创建远程仓库 3. 本地代码推送到远程仓库 2.1 注册账户访问官网:https://github.com , 依次如下: 填写完注册信息后,点击下面的“Create account” 按钮创建账户: 你的邮箱回收到一个验证码,输入验证码即可访问GitHub。 ? ?点击该页面下面的“Skip...” 跳过右边的文件,可以直接进入。 ?来到这个界面,账户注册成功。 2. 2 创建远程仓库选择右上角的“+”号,点击“New repository” 选项创建仓库: ? ?进入远程仓库创建页面: 简要说明: Repository name: 项目名称,尽量与实际项目同名,方便以后管理。 Description: 对该项目的描述 Public/Private: 默认是Public免费开源的,如果你不想公开你的项目,选择Private,但需要付费。 Add a README file: 如果勾选,则创建仓库的同时会创建README文件。 Add .gitignore: 如果勾选,则创建仓库时会生成ignore文件,ignore文件可以配置哪些文件应该被git忽略掉,不需要管理。 Choose a license: 如果勾选,则可以说明一个证书,比如写上该项目可以被使用但不能商业的声明信息。 本次实践采用上面截图的选择,点击“Create repository” 创建一个空的仓库: 远程仓库创建成功,上面HTTPS的地址就是我们创建的远程仓库的地址,以后我们就可以通过访问这个地址来访问这个远程仓库。(该页面中也有提供接下来的一些推送代码的步骤命令) ? ?因为我本机已经存在本地仓库了,所以直接选择推送方式就可以。 2.3. 本地代码推送到远程仓库这里直接copy上面的命令,到本地执行推送: git remote add origin https://github.com/***/GitLearnDemo.git git branch -M main git push -u origin main ?但是我本地的分支叫 “master”,命令“git branch -M main” 是将当前分支改名为“main”后,再推送,我不想改分支名称,所以直接执行下面两个命令: git remote add origin https://github.com/***/GitLearnDemo.git git push -u origin master 说明:origin其实是URL(https://github.com/***/GitLearnDemo.git)的别名,即时指远程仓库。 依次执行上两个命令: ?发现执行“git push -u origin master”命令时报错。 首先造成这个错误很可能时网络不稳定,连接超时导致的。如果再次尝试后依然报错,可以执行下面的命令,解除ssl验证。 解除办法:打开git bash执行下面命令: git config --global http.sslVerify "false" 解除后再次执行“git push -u origin master”命令,弹出如下登录验证: ?一路操作后来到这里,表面权限认证成功。 查看git命令行窗口,发现代码已经推送到远程仓库: ?再回到远程仓库页面,刷新页面后如下: ?发现本地仓库的代码已经推送到远程仓库了。 同时,查看本地中远程仓库地址的重命名情况: 但是,这里有个问题,我们看到远程仓库中现在只有master分支,而本地是有master 和 dev 两个分支: ? 所以,接下来同样的方式把本地仓库的dev分支也推送到远程仓库,如下: ?推送失败,又出现ssl验证问题。(经常出现这个问题,每次都要执行前面的解除ssl命令,比较麻烦,暂时没找到永久性解决办法,后续探索,这里先用前面的命令方式暂时解决。) 该问题原因:当通过HTTPS访问Git远程仓库,如果服务器的SSL证书未经过第三方机构签署,那么Git就会报错,这是十分合理的设计。 接下来执行命令解除ssl验证,并再次尝试推送dev分支到远程仓库: ?刷新远程仓库页面,发现dev分支已经被推送成功: 3. 从GitHub克隆代码到公司文章开头提到的场景:在家和在公司同时开发一个项目。大概交互结构如下: 前面,我们在家里的git里已经开发了代码,并已经完成推送到GitHub远程仓库,接下来了,实践一下上面的场景。 第一步是,到公司将GitHub中的,家里推送的代码克隆到公司的电脑中。这里新建个空的文件夹代表公司电脑中的git仓库,如下: ?找到GitHub仓库中的地址: 复制地址,执行“git clone 仓库地址”命令克隆: ? ?查看刚刚新建的代表公司的GitOfficeDemo文件夹(模拟公司电脑中的git本地仓库),发现已经克隆成功: ?接下来,看一下公司的本地仓库情况: 可以发现一个问题:查看到公司本地仓库只有master一个分支,dev仓库那里去了?( 远程有master和dev仓库) 其实不是这样的,虽然我们只看到了一个分支,但其实dev分支也克隆下来了,可以直接切换到dev分支看一下: 确实可以看到,dev分支实际上已经克隆到公司的本地仓库了。? 至此,完成了家里git推送代码到GitHub,公司git从GitHub克隆代码。 4. 实践在家里和在公司同时开发回顾《Git 的分支策略及工作流》中的开发流程如下: ?上面的分支流程实践全部是在家里开发的,代码也已经推送到GitHub,并且已经从GitHub上将代码克隆到公司的本地仓库了。接下来,基于这个场景,接着实践家里git和公司git通过GitHub交互过程。 场景模拟--如下文件夹和命令窗口表示家里: ? ?场景模拟--如下文件夹和命令窗口表示公司: ? 交互开始,首先从家里开始,开发新功能,切换到dev分支,把master的代码拉到dev(因为基于上面最终场景,dev上没有bug修复内容,在master有最新的代码),如下: ? 可以看到,现在家里的dev分支是最新的代码了,接下来可以基于这个分支开发了,假如新增了新功能D(新文件),如下: ? ?先开发了30%,提交到家里的本地仓库: ? ?推送到GitHub平台: ?注意: “git push -u origin master” 命令中的“-u”是指默认情况下“git push” 命令是将代码推送到 origin 的 master 分支。所以,这里可以直接用“git push origin dev”,不用指定默认。 ? 代码已经推送到GitHub的dev分支,接下来,来到公司的电脑,继续接着开发功能D,如下: ? ?到公司的电脑里,发现没有在家已经开发的代码,所以在公司开发前,要先从GitHub的dev分支中把代码拉下来。(注意:这里不是第一次,所以用pull,不用clone) 拉下来了,查看文件: ? 在公司继续开发如下: ? ?公司开发到了80%,准备下班,提交代码到公司本地仓库,然后推送到GitHub: ? 回到家,继续加班完成剩下的部分,开发前先拉取: 家里开发: ? ? 开发完成,提交到家里的本地版本,再提交到Github: ?由于网络原因,多次推送都失败了,但几次尝试后,总算成功了。 至此,开发完成,也全部代码提交到GitHub了。 接下来,把开发好的dev代码合并到master分支,并提交到远程仓库的master: 现在远程仓库中master 和 dev 分支都是最新的代码。 然后再去到公司的电脑,把远程的master和dev分支的最新代码都拉到公司的本地仓库: ? 本文实战完成。 总结前面用到的命令: 1. 给远程仓库取别名(origin实际上是地址的别名,也可以用其它名字,默认一般用origin,): git remote add origin 远程仓库地址 2. 给本地当前分支改名称: git branch -M 新分支名称 3. 向远程仓库推送代码: git push -u origin 分支名称 4. 推送代码前,解除ssl验证(推送报错时可能需要): git config --global http.sslVerify "false" 5. 克隆远程仓库代码: git clone 远程仓库地址?? (该命令执行后,内部已经实现“git remote add origin 远程仓库地址”,下次用时直接用“origin”别名) 6. 切换分支: git checkout 分支名称 7. 从远程仓库拉取代码: git pull origin 分支名称 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 6:52:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |