源代码管理工具

主流代码管理工具介绍

1.github

GitHub 是一个基于云端的代码托管平台,致力于帮助开发者协作、共享代码并管理项目。它为开发者提供了一个集中式的平台,在这里,他们可以存储、版本控制、协作开发和分享他们的代码。

主要特点包括

版本控制: GitHub 提供了强大的版本控制功能,使用 Git 作为其核心版本控制系统,允许开发者追踪代码的变更历史并轻松进行团队协作。

协作与共享: 开发者可以在 GitHub 上创建仓库(Repository),并与其他开发者共享代码、文档和资源。通过 Pull 请求(Pull Request)机制,他们可以参与项目贡献和代码审查。

社区和开源: GitHub 拥有庞大的开发者社区,用户可以在平台上发现和参与开源项目,学习其他开发者的经验,并与他们进行交流和讨论。

项目管理: GitHub 提供了问题跟踪、项目板(Project Boards)、里程碑(Milestones)等项目管理工具,帮助团队更好地组织和管理项目。

持续集成与部署: GitHub 与各种持续集成服务(如 Travis CI、CircleCI 等)集成紧密,允许开发者设置自动化的测试和部署流程。

扩展与生态系统: GitHub 提供了丰富的 API 和插件系统,允许开发者扩展平台的功能,并与其他工具和服务集成。

总的来说,GitHub 是一个开发者社区活跃、功能丰富的代码托管平台,为开发者提供了全面的工具和服务,助力他们更高效地进行软件开发和团队协作。

2.coding
https://coding.net/

当然,Coding.net 是一个类似于 GitHub 的代码托管平台,是中国的一家技术社区和开发者服务提供商。它提供了类似于 GitHub 的版本控制、协作开发、项目管理等功能,同时也有一些自身特色和优势。

简单总结 Coding.net 的特点

国内服务: Coding.net 是一家中国的技术公司,提供的服务在国内有一定的用户基础和影响力,同时也符合中          国用户对于稳定、快速访问的需求。

企业服务: Coding.net 专注于为企业提供代码托管、协作开发和项目管理等服务,针对企业用户提供了更多的定制化和专业化功能。

CI/CD 整合: Coding.net 提供了与持续集成和持续交付(CI/CD)工具的紧密整合,帮助开发者构建自动化的软件开发流程。

敏捷开发: Coding.net 提供了敏捷开发的项目管理工具,包括任务看板、里程碑、团队协作等功能,支持团队快速迭代开发。

安全和隐私: Coding.net 提供了严格的安全和隐私保护机制,保障用户的代码和数据安全,符合企业和组织的合规性要求。

扩展和定制: Coding.net 提供了丰富的 API 和插件系统,允许用户扩展平台的功能,并实现与其他系统的集成和定制化需求。

总的来说,Coding.net 是一个面向企业和团队的代码托管平台,提供了丰富的功能和服务,帮助开发者更高效地进行软件开发和团队协作。

3.阿里云效
https://www.aliyun.com/product/yunxiao

阿里云效(Aliyun CodePipeline)是阿里云推出的一款持续集成/持续交付(CI/CD)服务平台。它提供了完整的软件开发生命周期管理工具,旨在帮助开发团队更高效地进行代码管理、自动化构建、自动化测试和持续交付等工作。以下是对阿里云效的简要总结

CI/CD 功能: 阿里云效提供了强大的持续集成(Continuous Integration)和持续交付(Continuous Delivery)功能,支持自动化构建、测试和部署,帮助团队实现快速迭代和交付。

多语言支持: 阿里云效支持多种编程语言和开发框架,如Java、Python、Node.js等,使得不同类型的项目都能够在该平台上进行持续集成和交付。

多环境部署: 阿里云效支持在多个环境(如开发环境、测试环境、生产环境等)之间进行灵活的部署管理,帮助开发团队实现不同环境的代码发布和管理。

自定义流程: 用户可以根据自己的需求和流程定制 CI/CD 流程,包括构建任务、测试任务、部署任务等,灵活适应团队的开发实践和规范。

与阿里云生态整合: 阿里云效与阿里云其他产品和服务深度整合,如云服务器 ECS、容器服务 Kubernetes、日志服务等,为开发团队提供全面的云端解决方案。

安全和稳定性: 阿里云效注重安全和稳定性,提供了严格的权限控制、代码保护机制和监控报警功能,保障用户的代码和数据安全。

实时监控与报告: 阿里云效提供实时的任务执行监控和报告功能,帮助用户及时发现和解决构建或部署过程中的问题,提高项目的质量和稳定性。

总的来说,阿里云效是一款功能全面、易用高效的 CI/CD 服务平台,为开发团队提供了完整的代码管理和持续交付解决方案,助力团队在云端快速、安全地进行软件开发和发布。

4.码云
https://gitee.com/chinaio

码云(Gitee)是中国领先的基于 Git 的代码托管平台,类似于全球知名的 GitHub。以下是对码云的简要总结

代码托管: 码云提供了基于 Git 的代码托管服务,开发者可以在平台上创建仓库、上传代码,并进行版本控制和协作开发。

社区和开源项目: 码云拥有庞大的开发者社区,众多开源项目选择在码云上进行托管和协作,用户可以轻松发现、贡献和参与各种开源项目。

企业服务: 码云也为企业提供了专业的代码托管和协作解决方案,支持企业内部代码管理、团队协作、权限管理等功能,满足企业级开发需求。

项目管理: 码云提供了项目管理功能,包括任务管理、问题跟踪、Wiki 文档等,帮助团队进行项目管理和协作。

CI/CD 整合: 码云与常见的 CI/CD 工具(如 Jenkins、Travis CI 等)和云服务(如阿里云、腾讯云等)进行了集成,支持持续集成和持续交付流程。

安全和隐私保护: 码云注重用户数据安全和隐私保护,提供了严格的权限控制和数据加密机制,保障用户的代码和数据安全。

多语言支持: 码云支持多种编程语言和开发框架,包括但不限于 Java、Python、JavaScript、Go 等,适用于各种类型的项目。

社交化和知识分享: 码云也是一个开发者社交平台,用户可以在平台上互动交流、分享经验和技术,促进技术成长和知识分享。

总的来说,码云是一个功能全面、易用便捷的代码托管平台,为个人开发者、团队和企业提供了完善的代码管理和协作解决方案,助力开发者更高效地进行软件开发和项目管理。

对四种工具作以总结和比较

对于选择适合自己或团队的代码管理工具,需要考虑各个工具的特点和优势,并结合实际需求和使用场景进行比较。以下是对 GitHub、Coding.net、阿里云效和码云进行比较:

GitHub:

优势: 全球领先的代码托管平台,拥有庞大的开发者社区和丰富的开源项目资源;功能完善,支持强大的版本控制、协作开发和项目管理;稳定性高,有良好的可用性和性能表现。
适用场景: 个人开发者、开源项目、国际团队或国内外跨境合作的团队等。

Coding.net:

优势: 专注于企业服务,提供了丰富的 CI/CD 功能和与阿里云生态的深度整合;安全性高,符合企业的合规要求;国内服务,访问速度快。
适用场景: 企业团队、需要与阿里云其他服务紧密集成的项目等。

阿里云效

优势: 阿里云生态的一部分,与阿里云其他产品深度整合,适用于云原生应用开发和部署;提供了完整的 CI/CD 解决方案,支持多环境部署。
适用场景: 阿里云用户、云原生项目、需要与阿里云其他服务紧密集成的团队等。

码云(Gitee):

优势: 国内领先的代码托管平台,支持个人开发者和企业用户;功能齐全,具备代码托管、项目管理和社交化等特点;对中国用户友好,访问速度快。
适用场景: 个人开发者、国内团队、对国内服务有需求的项目等。

根据实际需求和团队情况,可以选择适合自己的代码管理工具。如果是个人开发者或开源项目,GitHub 是一个不错的选择;如果是企业团队,可以考虑 Coding.net 或阿里云效,根据需求选择与阿里云生态或其他云服务整合更紧密的平台;而如果是中国团队或对国内服务有需求的项目,码云也是一个不错的选择。
结合我们项目的团队性,以及为未来走向企业做好准备我们团队选择github。

github的认识和学习
链接:https://github.com/

界面认识

1.主界面


首先看最上面黑色工具条。

最左边是一个 GitHub 的 logo,点它就返回现在这个主界面。

最右边是和你个人有关的东西(个人,新建,消息),这个和用过的任何软件一类比,就知道功能了。

左边搜索框,和搜索引擎一样用来搜索(搜源码,搜资料)。

中间的四个按钮:

Pull requests:你想参与别人的项目,或想改进别人的项目,改进后需要提交申请,用 pull requests。
Issues:你发现别人项目的 bug,或者有什么问题,怎么和作者交流呢?提一个 Issue ;别人也可以给你的项目          提 Issue 反馈问题。Issue 追踪各种想法,增强功能,任务,bug,有点儿像评论功能。
Marketplace:应用商店,里面有免费/收费的开发工具。
Explore:你可以理解成软件里的发现页,点进去推荐一些和你相关的话题、项目、新闻等。

2.个人界面


由于个人主页面的分布都一样,我的界面又没啥东西?,我就用 Linux 之父的界面做演示了。

可以看出,在个人界面中,可以看到当前这个人的信息,类似于微博知乎的个人界面。我们自己的个人界面也长这样,不过刚注册,下面的记录一片空白。

看他的粉丝数,就知道这是个大v,这里最能体现 GitHub 的社交属性。

这里又涉及到一些专用词。

Projects:它可不是项目,上面说了 Repository 是项目。它可以翻译为项目板,是 project-boards 的简写, 通过项目板可以灵活地创建适合需求的自定义工作流程,说白了是管理项目流程的,一般不常用。
Star:就是点赞功能,这里用作动词,它叫 star 是因为点赞图标就是星星⭐。不过这个点赞比较像知乎里的点赞功能,它会记录在你的动态里。由于 GitHub 没有收藏功能,所以 star 可以用来收藏。
Follow:就是关注的意思,点击 Followers 看看谁关注了他,点击 Following 看看他关注了谁(大神关注的一般也是大神?)

3.项目界面

我们使用 GitHub ,无论存放东西,还是查资料,主要都是看自己或别人的项目/仓库,所以这个界面一定要熟悉。

你可以通过搜索项目、点击别人的界面、推荐页面打开一个项目。
点进去就是项目/仓库界面啦,我们认识一下主要功能

首先最上面一条我们可以看到这个仓库的信息,像关注点赞都是按钮,点击可以看具体的人。

这里涉及到两个新词语。

Watch:关注观察?,也就是你既可以关注(follow)一个人,也可以关注(watch)一个项目,你关注内容的动态都会显示在主页面。
Fork:直译是刀叉,它是指将 GitHub 的某个特定仓库(所有文件)原封不动地复制到自己的账户下。比如你想改进这个项目,加点儿自己的东西,就可以复制一下整个仓库再修改,但是不影响原作者的仓库,你点击 Fork 就能复制。

下面一条是标签页,比如默认的一个标签页 Code 就是展示代码的页面;如果你想看别人提的问题就点击 Issues 页,也许你遇到的问题别人提过并且解决了;有的人想参与这个项目,他改好后就向作者发起了 Pull Requests,希望作者接受他的改进,点进去可以看谁提交过什么样的改进,作者是否采纳。

下面这个主要部分就是仓库里的东西了,你可以看到就是一个个文件夹或文件,里面可能是代码文件,也可能是其他文档,图片什么的。点击可以看,你也可以点击 Clone or downloads 下载到本地,具体学习。

4.创建项目

1.进入个人主页: 登录后,点击页面右上角的头像,选择“Your repositories”进入个人主页。

2.点击“New”按钮: 在个人主页右侧,有一个绿色的“New”按钮,点击它。

3.填写项目信息: 在新页面中,填写项目的基本信息,包括项目名称、描述、公开/私有等设置。可以选择是否添加 README 文件、是否添加 .gitignore 文件以及选择项目的许可证。

4.创建项目: 填写完项目信息后,点击页面底部的“Create repository”按钮,即可创建项目。

5.克隆项目: 项目创建完成后,会跳转到项目的主页面。在这里可以看到项目的 URL 地址。如果是本地开发,可以复制项目的 URL 地址,使用 Git 命令将项目克隆(clone)到本地进行开发:

git clone <项目 URL>
6.添加代码: 将本地的代码文件添加到项目的文件夹中,并通过 Git 命令提交(commit)到项目中:

git add .
git commit -m "Initial commit"
git push origin main

git与github的关系

1.1 Git
下载https://git-scm.com/download

Git是一个分布式版本控制系统。

版本控制系统(version control system)像个数据库,它会记录所有对项目文件的更改(比如一个文件,前天 加了三段文字,昨天删了一句话,今天改了几个词,这三个版本历史都能保存下来)。 版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。
使用版本控制系统可以协同合作(多人编辑文件或代码而不出错),版本存储(你改动的每一版本都保存下来,如果改错可以回到之前的版本,如果想加上删除的内容也可以返回去找,也可以对比现在和之前的版本,看改了什么),文件备份(服务器和本地都有完整的历史版本,如果服务器坏了,本地还有一份完整的历史记录)。

总之, Git 可以避免文件丢失,改错,多人合作不同步导致的后果?。

1.2 GitHub

GitHub 是通过 Git 进行版本控制的软件源代码托管服务平台,可以理解成放代码的地方,但往上放代码时用 Git 进行了版本控制。也就是 GitHub 使用了 Git 完成版本控制,下面来看看 GitHub 有哪些有用的功能!

代码托管:可以单纯地把它当成一个网盘放你的代码,同时使用 Git 功能记录你的代码历史。当然除代码外还能放其他文件。
学习优秀的开源项目:学习别人优秀的源码,写代码之前看别人是怎么写的(比如写作业的时候参考参考),看论文也可以上 GitHub 找源代码,还能找一些开源的软件,插件用。

当资料库:可以查资料,GitHub 上有总结好的面试宝典,入门指南,技术分析,论文合集,课程资料等。这些博客、公众号上有的内容 GitHub 上也有,还可能更全。

多人协作:多个人要一起写个程序,一起写本书,一起翻译一篇文章等,用 GitHub 可以管理项目保证你们的文件同步,写好后提交合并成一个完整的项目。

搭建博客:基于 GitHub Pages 搭建属于你的博客,你可以随心所欲的定制自己的样式,这是一个属于你的空间。

社交:就像微博、知乎一样,在这个网站你可以关注(following)别人,也可以有自己的粉丝(followers),看到好的开源项目可以给他点赞(star),你有啥想法还可以给这个项目改进改进(fork)。

个人简历:如果你的 GitHub 上有不错的项目,或者你改进过别人的项目,这些都能反映到你的账号上。GitHub 一定程度可以反应到你的能力,如果你的项目点赞多(star),还有很多粉丝关注(followers),你就像个大 V 一样,这就是你的另一份简历。

配置shh,实现git与github的连接

第 1 步:生成 SSH key

我们要想生成SSH key,首先就得先安装 SSH,对于 Linux 和 Mac 系统,其默认是安装 SSH 的,而对于 Windows 系统,其默认是不安装 SSH 的,不过由于我们安装了 Git Bash,其也应该自带了 SSH. 可以通过在 Git Bash 中输入ssh命令,查看本机是否安装 SSH:

如上图所示,此结果表示我们已经安装 SSH 啦!接下来,输入ssh-keygen -t rsa命令,表示我们指定 RSA 算法生成密钥,然后敲三次回车键,期间不需要输入密码,之后就就会生成两个文件,分别为id_rsa和id_rsa.pub,即密钥id_rsa和公钥id_rsa.pub. 对于这两个文件,其都为隐藏文件,

第 2 步:添加 SSH key

如上图所示,进入我们的 GitHub 主页,先点击右上角所示的倒三角▽图标,然后再点击Settins,进行设置页面;点击我们的头像亦可直接进入设置页面:

如上图所示,进入Settings页面后,再点击SSH and GPG Keys进入此子界面,然后点击New SSH key按钮:

如上图所示,我们只需要将公钥id_rsa.pub的内容粘贴到Key处的位置(Titles的内容不填写也没事),然后点击Add SSH key 即可。

通过 Git 将代码提交到 GitHub


到这一步我们已经完成了本地 Git 与远程 GitHub 的绑定,这意味着我们已经可以通过 Git 向 GitHub 提交代码啦!

但是在进行演示之前,我们需要先了解两个命令,也是我们在将来需要经常用到的两个命令,分别为 push 和 pull 。

push:该单词直译过来就是“推”的意思,如果我们本地的代码有了更新,为了保持本地与远程的代码同步,我们就需要把本地的代码推到远程的仓库,代码示例:

git push origin master
pull:该单词直译过来就是“拉”的意思,如果我们远程仓库的代码有了更新,同样为了保持本地与远程的代码同步,我们就需要把远程的代码拉到本地,代码示例:

git pull origin master
此外,在之前我们讲到过pull request,在这里,估计大家就能更好的理解了,它表示:如果我们fork了别人的项目(或者说代码),并对其进行了修改,想要把我们的代码合并到原始项目(或者说原始代码)中,我们就需要提交一个pull request,让原作者把我们的代码拉到 ta 的项目中,至少对于 ta 来说,我们都是属于远程端的。

一般情况下,我们在push操作之前都会先进行pull操作,这样不容易造成冲突。

连接gui和guihub的好处

便捷的操作: GUI 工具通常提供了直观的图形用户界面,使得用户可以通过可视化的方式进行操作,而不必记忆复杂的命令行操作。这样能够大大降低使用门槛,提高效率。

可视化的版本控制: 通过 GUI 工具连接 GitHub,开发者可以直观地查看代码的版本历史、分支结构等信息,并且可以轻松地进行代码的提交、拉取和合并操作,而无需记忆 Git 命令的具体用法。

团队协作: 使用 GUI 工具连接 GitHub,团队成员可以更方便地协作开发,通过可视化界面查看项目进展、提交代码并进行代码审查,提高团队的协作效率。

高级功能支持: 很多 GUI 工具还提供了一些高级功能,如代码可视化比较、分支管理、自动化集成等,这些功能可以帮助开发者更好地管理项目和进行开发工作。

多平台支持: 许多 GUI 工具都提供了跨平台的支持,可以在 Windows、MacOS 和 Linux 等操作系统上运行,满足不同开发者的需求。

综上所述,通过连接 GitHub 与 GUI 工具,开发者可以更方便、直观地管理和协作项目,提高开发效率,降低学习成本,进而更好地利用 GitHub 进行代码管理和团队协作。

总结
GitHub 作为全球领先的代码托管平台,为开发者提供了丰富的功能和工具,帮助他们更高效地进行代码管理、版本控制和团队协作。其主要好处和改进包括:

代码托管与版本控制: GitHub 提供了稳定、安全的代码托管服务,让开发者能够轻松地存储、管理和共享代码,并通过 Git 强大的版本控制功能追踪代码变更,确保代码的完整性和可追溯性。

全球开发者社区: GitHub 拥有庞大的开发者社区,汇聚了全球数百万的开发者和数以亿计的开源项目。开发者可以在 GitHub 上与全球的开发者交流、学习和分享经验,加速技术成长和项目开发。

协作与团队管理: GitHub 提供了丰富的协作工具和项目管理功能,如 Issues、Projects、Pull Requests 等,帮助团队成员分配任务、跟踪问题、进行代码审查,实现高效的团队协作和项目管理。

持续集成与部署: GitHub 提供了与 CI/CD 工具的集成,如 GitHub Actions,让开发者能够轻松设置自动化的持续集成和持续部署流程,加速软件开发周期,提高代码质量。

开放和透明: GitHub 的开放性和透明性促进了知识共享和技术进步,开发者可以在 GitHub 上公开分享自己的项目和代码,同时也能够从其他开发者的项目中学习和借鉴。

安全与隐私保护: GitHub 重视用户数据安全和隐私保护,提供了严格的权限控制和数据加密机制,保障用户的代码和数据安全。

综上所述,GitHub 的使用好处在于促进了代码共享、协作开发和技术交流,同时提供了丰富的工具和功能,帮助开发者更高效地进行软件开发和团队协作。未来,GitHub 可以进一步改进用户体验、提升性能稳定性,持续为开发者提供更好的服务和支持。

posted @ 2024-05-24 14:22  zhao123123  阅读(22)  评论(0编辑  收藏  举报