Git 代码托管平台及GitHub使用

1. Git 托管平台简述

        在前面的文章《Git的分支策略及工作流》中提到的场景是单人单机开发模式下Git的应用。下面扩展场景为单人(多机)多地开发:比如在家和在公司同时开发项目,这是就需要用到远程仓库来统一管理代码。我们说的远程仓库通常是通过第三方的Git代码托管平台来实现的。

Git代码托管平台有很多,比较流行的有三个:GitHub、Bitbucket和GitLab,Gitee(码云)

GitHub: 使用人数最多,可以免费托管,很多开源项目,如果创建私人仓库需要付费。

Bitbucket: 使用人数仅次于GitHub,免费的私有仓库和分支持有的权限控制。

GitLab:一般用于大企业项目,通过安装到企业内部服务器,实现项目的内部自治。

Gitee(码云):国内最大的托管平台,速度快。

Bitbucket 托管平台可以查看相关文章:

Bitbucket安装配置

SourceTree 安装配置及关联Git和Bitbucket

Gitee(码云)官网:Gitee - 基于 Git 的代码托管和研发协作平台https://gitee.com/

具体使用可以参考文章:(91条消息) gitee教程(超全,超详细,超长)_我要用代码向我喜欢的女孩表白的博客-CSDN博客_giteeicon-default.png?t=M276https://blog.csdn.net/qq_38403590/article/details/120907444?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164778515316780366590983%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164778515316780366590983&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-120907444.142^v2^article_score_rank,143^v4^register&utm_term=Gitee&spm=1018.2226.3001.4187

GitLab 和 Gitee 托管平台安装配置将在后续文章中讲述,本文主要关注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 分支名称

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值