在IDEA中自由的玩转GitHub~

说到 GitHub 就不得不提 Git,它的诞生也颇具传奇色彩。

在 1991 年,大佬 Linus 构建了开源操作系统,并命名为 Linux,随后带领全世界计算机爱好者逐渐完善该系统 。

相对我们熟悉的 Windows 系统,这个名叫 Linux 的操作系统同样渗透到我们生活的方方面面,比如是大部分网站应用数据与服务的系统载体。包括手机的 Android 系统,车载系统,智能终端等等也是基于 Linux 内核完成。

Linux 在开发伊始,Linux 开源社区的人们通过将源代码文件通过 diff 的方式发送给 Linus 大佬,然后 Linus 使用多年的功力手工将这些代码整合到 Linus。但是,随着社区提供的代码越来越多,Linus 也顶不住了。

这时候,就需要一款工具可以将不同人,不同来源的代码整合到软件的主代码中。而且可以对源代码修改,删除等等改动一一记录,方便后续的调试和整合。

这样做既可以提高工作效率,方便调试,同时也避免了人为错误导致软件的不稳定。总之,这款工具的使用对 Linux 的发展必不可少。

及时雨来自商业版本控制系统 BitKeeper,它向 Linus 抛出了橄榄枝,允许 Linux 开发社区免费使用。但是,问题在于社区里都是计算机技术狂热者,这相当于给了饿了几天的人一个包子,说你不能吃肉馅,只能吃皮。

于是,有人对这个控制系统产生了想法,Samba(Linux 的文件共享和打印机通信协议)的开发者 Andrew 开始尝试破解 BitKeeper,尝尝肉馅是什么味。

好景不长,BitKeeper 的开发公司 BitMover 发现了社区有人在破解他们的软件,而且还不止 Andrew 一人,于是公司看透了这群「绿林好汉},在 2005 年 BitKeeper 收回了 Linux 社区的免费使用权。

没有了免费的版本控制系统,日子还得过,Linux 的代码量还在与日俱增,Linux 社区要给商业软件低头了吗?

事实是,并没有。

2005 年,Linus 为了解决这一问题,他自己花了两周时间开发了一个分布式版本控制系统 Git,你没有看错是两周时间,大佬的世界我不懂。

一个月后,Git 完成 Linux 系统源码接管任务,随后 Git 迅速在开源社区间流行。

# GitHub 的出生

Git 可以在本地执行,但是这只是你一个人在玩代码。如果你想通过 Git 分享你的代码或者与其他开发人员合作。你就需要将数据放到一台其他开发人员能够连接的服务器上。

2008 年, GitHub 应运而生,它为每个人提供了远程仓库,并且提供了相应的社区化服务。

GitHub 的上线为开源项目提供了立足之地,我们熟系的 JQuery,PHP 等开源项目开始从独立的社区迁移到 GitHub。而正如 Apache 开源基金会所提倡的先社区而后代码,一个强有力的社区能使一款有潜力的软件持续的向好发展。

其实,我们现在看生信文献的时候,只有涉及到生信软件发布,数据流程处理,在线软件等等与编程相关的上线项目都会首先发布在 GitHub,并提供 GitHub 克隆地址。

2018 年,微软宣布以 75 亿美元收购 GitHub。

2019 年,GitHub 宣布开发者可以免费最多四人协作的私人仓库。这一权限的开放,使得我们大部分的实验人员都可以更好的加入 GitHub 社区,完成多人协作任务。

历史的拐点就是这么神奇,如果没有 Andrew 的破解,BitKeeper 的愤怒,Linus 也不会创造出 Git,也更不会有现在免费的 GitHub。

# GitHub 和 Git 对我们来说有什么用?

从上面的故事可以看出,Git 和 GitHub 要解决的是多人协作完成不同地点,不同时间提交源码并整合到最终项目的问题。总结下:

版本管理: 通过使用快照等方式,可以将你的代码修改可以提交到 Git 库。只要提交,全部的数据就会被记录一个版本,而且 Git 很难执行不可逆操作,这就意味着只要提交,数据想丢都难。

协同修改: 多人并行不悖的修改服务器端的同一个文件,数据备份。

文件状态: 不仅保存目录和文件的当前状态, 还能够保存每一个提交过的历史状态,很赞的功能就是,可以将历史代码回溯到某个时间点的状态。

权限控制: 团队中每个人对文件具有不同权限,也可以接受非团队合并源码。

分支管理: 将不同来源,功能整合与主要代码中,允许开发团队在工作过程中多条生产线同时推进任务, 进一步提高效率。

分布式: 同一个 Git 仓库,可以分布到不同的机器上,这就意味着代码可以在云端和本地都有一套完整的仓库,除了离线使用的便利,提高了执行速度,多个拷贝也提高了数据安全性。

刚刚介绍了 GitHub 和 Git 的诞生历史,接下来是有用的小技巧。我们平常 coding 都是在 IDE 中,比如 Intellij IDEA、Pycharm,如何如果能把 Git 和 GitHub 植入到 IDE 中,很多事会方便很多。接下来我们完成 Git,GitHub 在 IDE 中的安装,以 Pycharm 为例, IDEA 也是 Jetbrain 旗下产品,配置方式也大同小异。

# 安装 Git

CentOS

sudo yum install git-all git --version

Ubuntu

sudo apt-get install git

Windows

下载地址:https://git-scm.com/downloads

# 本地 Git 关联 GitHub 远程仓库

如果你先安装了 Git 环境,请啪啪啪搞出下面这个命令就差不多了。

  1. 配置用户名

git config --global user.name "guangguang"

  1. 配置邮箱

git config --global user.email "123456@qq.com"

  1. 其他配置

git config --global merge.tool "kdiff3" git config --global core.autocrlf false // Git不用管换行符的事情

  1. 编码配置

git config --global gui.encoding utf-8 //gui中的中文乱码 git config --global core.quotePath off //避免status显示中文乱码

  1. Windows 上还需要配置

git config --global core.ignorecase false

  1. Git SSH key

  • Git Bash 键入如下的命令

ssh-keygen -t rsa -C "1027700603@qq.com"

  • 然后一路回车, 不要输入人么密码,就会生产 ssh key pair
  • 键入以下命令,~/ 指的是用户目录下

ssh-add ~/.ssh/id_rsa // 如果执行ssh-add时出现Could not open a connection to your authentication agent执行ssh-add ~/.ssh/id_rsa报标题之前像执行 eval `ssh-agent` (~键上的`),再执行ssh-add ~/.ssh/id_rsa成功ssh-add -l就有新加的rsa了 cat ~/.ssh/id_rsa.pub

  • 把生产的文明编码进行复制,需要放到自己的 GitHub 中的 SSH 中

  1. 进入 GitHub ,打开设置

3. 新建一个 SSH key

  1. 填写 SSH key

  1. 新建 GitHub 仓库

  1. 填写信息,创建 GitHub 仓库

  1. 完成后你的仓库后,类似这样,红框为 git 地址

  1. 将 GitHub 仓库与我们本地的 Git 仓库进行关联

git remote add origin https://github.com/qqdb/example01.git

origin 后的 url 就是 GitHub 仓库地址,在上一步中获取

  1. 将本地 Git 仓库提交到 GitHub 远程仓库

第一次提交:

git push -u origin master

之后提交

git push origin master

如果报错:

解决:

git push -f origin master

这是一种强制上传方案,第一次可以使用,今后不建议使用。因为这条命令会直接覆盖远程仓库的版本信息。

# 推送本地仓库到 GitHub

  1. 进入设置

  1. 登录 GitHub 账号

  1. 配置 Git

  1. 使用

  1. 配置

  1. 上传,这里一般会全部上传到 GitHub,如果有大文件可以考虑取消勾选。

  1. 上传成功

# 将 GitHub 仓库克隆到本地

  1. 进入配置

2. 克隆项目。

克隆大佬的项目

完成后会有读条

  1. 从 Pycharm 中查看 Github

4. 一般的 Git 操作

# 参与 GitHub 项目

  1. Fork 一个项目

Fork 是 GitHub 存储库的副本,可在不影响原始项目的情况下更改代码。

比如,https://github.com/scikit-learn/scikit-learn

  1. 进入 Pycharm 的版本控制界面

  1. 克隆大佬项目

等进度条跑完

我们会得到项目的仓库

4. 查看项目参与者的操作日志

  1. 项目参与者创建 pull 请求

填写 pull 请求

项目的维护者管理 pull 请求

查看 pull 请求信息


__EOF__

本文作者夜雨闻铃
本文链接https://www.cnblogs.com/sugeek/articles/16817697.html
关于博主:编程菜鸟一只,希望每个今天胜过昨天,一步步走向技术的高峰!
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   sugeek  阅读(44)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示