整理补充:走走GitHub (公众年夜众号@ggGitHub)
说到 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 迅速在开源社区间盛行。
01 GitHub 的出生
Git 可以在本地实行,但是这只是你一个人在玩代码。如果你想通过 Git 分享你的代码或者与其他开拓职员互助。你就须要将数据放到一台其他开拓职员能够连接的做事器上。
2008年, GitHub 应运而生,它为每个人供应了远程仓库,并且供应了相应的社区化做事。
GitHub的上线为开源项目供应了立足之地,我们熟系的 JQuery,PHP 等开源项目开始从独立的社区迁移到 GitHub。而正如 Apache 开源基金会所提倡的先社区而后代码,一个强有力的社区能使一款有潜力的软件持续的向好发展。
实在,我们现在看生信文献的时候,只有涉及到生信软件发布,数据流程处理,在线软件等等与编程干系的上线项目都会首先发布在GitHub,并供应 GitHub 克隆地址。
2018年,微软宣告以 75 亿美元收购 GitHub。
2019年,GitHub 宣告开拓者可以免费最多四人协作的私人仓库。这一权限的开放,使得我们大部分的实验职员都可以更好的加入 GitHub 社区,完成多人协作任务。
历史的拐点便是这么神奇,如果没有 Andrew 的破解,BitKeeper的愤怒,Linus 也不会创造出 Git,也更不会有现在免费的 GitHub。
02 GitHub 和 Git 对我们来说有什么用?
从上面的故事可以看出,Git 和 GitHub 要办理的是多人协作完身分歧地点,不同韶光提交源码并整合到终极项目的问题。总结下:
版本管理:通过利用快照等办法,可以将你的代码修正可以提交到 Git 库。只要提交,全部的数据就会被记录一个版本,而且Git很难实行不可逆操作,这就意味着只要提交,数据想丢都难。
协同修正:多人并行不悖的修正做事器真个同一个文件,数据备份。
文件状态:不仅保存目录和文件确当前状态, 还能够保存每一个提交过的历史状态,很赞的功能便是,可以将历史代码回溯到某个韶光点的状态。
权限掌握:团队中每个人对文件具有不同权限,也可以接管非团队合并源码。
分支管理:将不同来源,功能整合与紧张代码中,许可开拓团队在事情过程中多条生产线同时推进任务, 进一步提高效率。
分布式:同一个 Git 仓库,可以分布到不同的机器上,这就意味着代码可以在云端和本地都有一套完全的仓库,除了离线利用的便利,提高了实行速率,多个拷贝也提高了数据安全性。
刚刚先容了 GitHub 和 Git 的出身历史,接下来是有用的小技巧。我们平常 coding 都是在 IDE 中,比如 Intellij IDEA、Pycharm,如何如果能把 Git 和 GitHub 植入到 IDE 中,很多事会方便很多。接下来我们完成 Git,GitHub 在 IDE 中的安装,以 Pycharm 为例, IDEA 也是 Jetbrain 旗下产品,配置办法也大同小异。:
03 安装 Git
CentOS
sudo yum install git-all
git --version
Ubuntu
sudo apt-get install git
Windows
04 本地 Git 关联 GitHub 远程仓库
如果你先安装了Git环境,请啪啪啪搞出下面这个命令就差不多了。
配置用户名
git config --global user.name \"大众guangguang\公众配置邮箱
git config --global user.email \"大众123456@qq.com\"大众其他配置
git config --global merge.tool \公众kdiff3\"大众git config --global core.autocrlf false // Git不用管换行符的事情编码配置
git config --global gui.encoding utf- //gui8 中的中文乱码git config --global core.quotePath off //避免status显示中文乱码Windows上还须要配置
git config --global core.ignorecase falseGit 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 中
2. 进入GitHub ,打开设置
3.新建一个 SSH key
4. 填写 SSH key
5. 新建 GitHub 仓库
6. 填写信息,创建 GitHub 仓库
7. 完成后你的仓库后,类似这样,红框为 git 地址
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
如果报错:
办理:
git push -f origin master
这是一种逼迫上传方案,第一次可以利用,今后不建议利用。由于这条命令会直接覆盖远程仓库的版本信息。
05 推送本地仓库到 GitHub
1. 进入设置
2. 登录 GitHub 账号
3. 配置 Git
4. 利用
5. 配置
6. 上传,这里一样平常会全部上传到 GitHub,如果有大文件可以考虑取消勾选。
7. 上传成功
06 将 GitHub 仓库克隆到本地
1. 进入配置
2.克隆项目。PS:如果想挖掘 GitHub 上好玩的项目,可以关注微信"大众年夜众号「走走GitHub」逐日会推送一个好玩有趣的开源项目。
克隆大佬的项目
完成后会有读条
3. 从 Pycharm 中查看 Github
4.一样平常的 Git 操作
07 参与 GitHub 项目
1. Fork 一个项目
Fork 是 GitHub 存储库的副本,可在不影响原始项目的情形下变动代码。
比如,https://github.com/scikit-learn/scikit-learn
2. 进入 Pycharm 的版本掌握界面
3. 克隆大佬项目
等进度条跑完
我们会得到项目的仓库
4.查看项目参与者的操作日志
5. 项目参与者创建pull要求
填写pull要求
项目的掩护者管理 pull 要求
查看pull要求信息
Git 和 GitHub 的利用方法远远不止这些,更多技巧请持续关注走走GitHub。
[1] 整理补充:走走GitHub ("大众年夜众号@ggGitHub)
[2] www.jinshuin.proginn.com/p/763bfbd378e2
Java后端互换群已成立