在 Pycharm 中玩转 GitHub(图文详解)

mark

一、Git 的诞生

在1991年,大佬 Linus 构建了开源操作系统,并命名为 Linux,随后带领全世界计算机爱好者逐渐完善系统 。这个系统可能有人陌生,有人熟系。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 社区要给商业软件低头了吗?

mark

事实是,并没有。

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。

mark

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

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

  • 版本管理:通过使用快照等方式,可以将你的代码修改可以提交到 Git 库。只要提交,全部的数据就会被记录一个版本,而且Git很难执行不可逆操作,这就意味着只要提交,数据想丢都难。
  • 协同修改:多人并行不悖的修改服务器端的同一个文件,数据备份
  • 文件状态:不仅保存目录和文件的当前状态, 还能够保存每一个提交过的历史状态,很赞的功能就是,可以将历史代码回溯到某个时间点的状态。
  • 权限控制:团队中每个人对文件具有不同权限,也可以接受非团队合并源码
  • 分支管理:将不同来源,功能整合与主要代码中,允许开发团队在工作过程中多条生产线同时推进任务, 进一步提高效率
  • 分布式:同一个Git仓库,可以分布到不同的机器上,这就意味着代码可以在云端和本地都有一套完整的仓库,除了离线使用的便利,提高了执行速度,多个拷贝也提高了数据安全性。

接下来我们完成 Git,GitHub 在 Pycharm 的安装:

四、安装 Git

CentOS

sudo yum install git-all
git --version
mark

Ubuntu

sudo apt-get install git

Windows

https://git-scm.com/downloads

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kcieRWkh-1591182659003)(http://baimoc.ziptop.top/blog/20200322/hmJWoiwCAJ91.png)]

五、本地 Git 关联 GitHub 远程仓库

1.生成秘钥

ssh-keygen -t rsa -C "XXXX@XXX.com"
  • 第一步确定秘钥生成目录,直接回车
  • 第二三步输入密码
  • 秘钥生成后,进入秘钥目录,比如我的为/c/Users/baimo/.ssh/id_rsa,复制备用
mark

2.进入 GitHub https://www.github.com,打开设置

mark

3.新建一个 SSH key


mark

4.填写 SSH key


mark

5.新建 GitHub 仓库


mark

6.填写信息,创建 GitHub 仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pf0MoFWr-1591182659007)(http://baimoc.ziptop.top/blog/20200323/9oy7vK6Nnb7v.png)]

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


mark

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

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

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

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

第一次提交:

git push -u origin master

之后提交

git push origin master

如果报错:


mark

解决:

git push -f origin master

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

六、推送本地仓库到 GitHub

1.进入设置

mark

2.登录 GitHub 账号

mark

3.配置 Git


mark

4.使用


mark

5.配置


mark

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

mark

7.上传成功


mark

七、将 GitHub 仓库克隆到本地

1.进入配置


mark

2.克隆项目

克隆自己的项目


mark

克隆大佬的项目


mark

完成后会有读条


mark

2.从 Pycharm 中查看 Github


mark

3.一般的 Git 操作


mark

八、参与 GitHub 项目

1.Fork 一个项目

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

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

mark

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


mark

3.克隆大佬项目


mark

等进度条跑完


mark

我们会得到项目的仓库


mark

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


mark

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

mark

填写pull请求
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ndcBDfNG-1591182659021)(http://baimoc.ziptop.top/blog/20200323/MBGJw0gpbfvT.png)]

项目的维护者管理pull请求

mark

查看pull请求信息

mark

Git 和 GitHub 的使用方法远远不止这些,更多技巧稍后更新。

白墨:搭建 Python 高效开发环境: Pycharm + Anaconda

Pycharm 中安装及使用 Jupyter (图文详解)

如何在 Pycharm 中高效使用 R 语言 (图文详解)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357