IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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 托管平台可以查看相关文章:

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 分支名称

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:45:36  更:2022-03-08 22:46:34 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码