GitHub 初探
前言:有时候在公司上班时自己写了一些代码,打算下班回家后继续写,或者在家修改好的代码第二天要拷到公司继续完善,代码就经常要在这两者之间来回同步,通常情况下我用网盘或者U盘,但是实在是很麻烦,不断的备份和重命名,而且还非常容易覆盖出错,所以决定使用时下非常流行的 Git 和 GitHub 来管理自己的代码。
1.Git 与 GitHub
Git 是 C语言开发的分布式版本控制系统,GitHub 是一个基于Git的代码托管平台,同时也是全球最流行的开源项目(包括 Git , PHP , jQuery , Ruby , Mongodb , Zendframework/Zf2 , Facebook , WordPress , GitHub , Twitter , Cakephp ,Yii 等)的托管站点。Github 的付费用户可以建立私人仓库,免费用户只能使用公用仓库,即代码要公开。
Git 最初是为帮助管理 Linux 内核而开发的开源的版本控制软件,2012年5月 GitHub 发布了为 Windows 平台开发者提供的 Git 图形客户端:GitHub for Windows,它可以处理大部分常用版本控制任务,可以创建版本库,向本地版本库递交补丁,在本地和远程版本库之间同步。除了管理 GitHub 库,还可以管理其他的 Git 库。
GitHub for Windows ( G4W ) 是基于 MSysGit ( 即 Git for Windows,它是 Git 版本控制系统在 Windows 下的版本 )的,Windows 用户可以使用 MSysGit 配合图形界面软件 TortoiseSVN 的 Git 版本:TortoiseGit,也可以使用 G4W 或其他的客户端。
2.使用 GitHub 和 GitHub for Windows 创建、同步仓库和项目
①登录GitHub ( https://github.com/ ),注册完之后,创建仓库( New repository ),如图:
②填写仓库名称和描述,不需要勾选 Initialize this repository with a README。
③点击"Create repository",得到地址 https://github.com/dee0912/myRepository.git
也可以使用 G4W( v2.4.1.2 ) 来创建仓库:
①下载地址:https://windows.github.com/ ,只支持Vista,7和8 ),使用 G4W 可省去使用命令行将自己的SSH公钥添加到 GitHub 帐户里,以验证自己的身份,获得提交的权限,客户端会自动为你添加。
在上面的地址下载安装( Win7下 ) GitHubSetup.exe,安装过程中会自动安装.NET Framework:
.NET Framework安装完之后就开始安装 G4W:
在这期间可以干点别的;)
②装完之后,登录客户端:
而且桌面上多了两个图标:
登录之后会收到一封邮件,里面会有你的SSH key。
③此时可以使用客户端在本地创建仓库了:
④创建好之后显示:
⑤这个时候可以提交到远程仓库,选择Publish Repository:
⑥此时客户端 Publish Repository 变成了Sync,表示以后每次修改之后的提交就是同步到远程服务器:
⑦此时登录网页版GitHub,可以看到多了一个仓库:
⑧在仓库中添加项目,添加完之后客户端多了栏目Uncommitted changes:
⑨展开Uncommitted changes,添加完描述之后,选择Commit to master:
最后,点击Sync将本地仓库提交到GitHub,同步完之后登录网页版,就能看到自己的项目:
使用G4W创建、同步仓库和项目先写到这里。更详细的代码管理以后再记录。
3.在 GitHub 上参与开源项目
①在GitHub上为感兴趣的开源程序添砖加瓦,可以进到该项目的主页,选择Fork,此时在自己的GitHub账户下会出现一个相同项目的备份:
以后你对项目进行的修改、提交和贡献都在这个备份仓库中进行。
②选择Clone in Desktop或者Download ZIP,把项目下载至本地:
之后就可以修改、完善、增加内容,提交到你的GitHub仓库中
想要把你的修改合并到项目的主分支并最终生效,就需要申请一个pull操作并等待项目创建者进行合并操作。进入你帐户下项目的主页,点击pull requests->New pull request,点击合并链接请求合并,至此操作结束,接下来就是项目创建者要做的事情了,如果他check提交的文件内容后,认为可以可并那么就会响应你的pull请求,如果觉得不可以合并就不会响应pull请求。只有在pull请求被响应后,你提交的代码修改内容才会同步到主项目中去。
更多阅读:蒋鑫 GitHUb,颜海镜 我的 git 笔记
GitHub 初探的更多相关文章
- Git常用命令及使用,GitLab/GitHub初探,Git/Svn区别
Git安装配置及常用命令 0 Git本地分支管理 1 Git远程分支管理 2 Git Tag标签管理 3 Git Log日志 4 其它高级命令 5 常规使用及介绍 6 角色权限 7 分支定义 8 一般 ...
- 搜刮一些开源项目的APP
iOS完整App资源收集 <iOS完整app资源收集> <GitHub 上有哪些完整的 iOS-App 源码值得参考?> <GitHub 上有哪些完整的 iOS-App ...
- 页面定制CSS代码初探(四):cnblogs使用Github引用样式
前言 对于用惯了Github的人来说,眼里的引用应该是这样的 "Talk is cheap. Show me the code" -- Linus Torvalds 然而实际上cn ...
- [Jenkins][GitHub]2 持续集成环境初探
预计阅读时间:30分钟 部署环境:Jenkins ver. 2.61 + Centos7 + Java 1.8 参考链接: http://www.jianshu.com/p/22b7860b4e81 ...
- 初探CI,Github调戏Action手记——自动构建并发布
前言 最近在做脚本的说明文档时使用了vuepress这个东西 前端实在是菜,只能随便写写了 正常写完md文件之后推送至github做版本控制 而前端页面的生成则是在本地,部署也是在本地手工进行 一套下 ...
- 陋居寡闻,初探Github CLI For Windows,开启命令行撸铁时代
简介 gh is GitHub on the command line. It brings pull requests, issues, and other GitHub concepts to t ...
- github安装&初探
主要记录安装中的问题: 1 centos 5和6的epel源需要不同的包来更新 Centos 5.x wget http://dl.fedoraproject.org/pub/epel/5/x86_6 ...
- CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探
CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...
- 从273二手车的M站点初探js模块化编程
前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...
随机推荐
- 如何用OpenCV自带的adaboost程序训练并检测目标
参考博文: 1.http://blog.csdn.net/wuxiaoyao12/article/details/39227189 2.http://www.cnblogs.com/easymind2 ...
- 【读书笔记】读《高性能网站建设指南》及《高性能网站建设进阶指南:Web开发者性能优化最佳实践》
这两本书就一块儿搞了,大多数已经理解,简单做个标记.主要对自己不太了解的地方,做一些记录. 一.读<高性能网站建设指南> 0> 黄金性能法则:只有10%~20%的最终用户响应时间 ...
- C++C++中构造函数与析构函数的调用顺序
http://blog.csdn.net/xw13106209/article/details/6899370 1.参考文献 参考1: C++继承中构造函数.析构函数调用顺序及虚函数的动态绑定 参考2 ...
- SVN学习安装总结
前言: 第一次接触SVN的时候并不是自己学习SVN的时候,而是再看师哥师姐做项目的时候,看着他们打开SVN向上传东西的时候,我就在想,这是个什么东西,需要每个人都安装吗?大胆的我也就问了 ...
- [MySQL]命令行工具和基本操作
[MySQL]命令行工具和基本操作 一 MySQL命令行工具 (查看帮助 ---help,或 -?) 1)MySQL MySQL是一个简单的SQL外壳(有GNU readline功能).它支持交互式 ...
- HTML-Canvas01
画直线: var c = document.getElementById("myCanvas"); //不要忘写document var ctx = c.getContext(&q ...
- node基础 --工具
npm //Node.js Package Manager 查询版本号:npm --version/npm version 查询模块:npm search <name> 查看模块相关信息 ...
- F Takio与Blue的人生赢家之战
Time Limit:1000MS Memory Limit:65535K 题型: 编程题 语言: 无限制 描述 在那个风起云涌的SCAU ACM里,有两位人生赢家,他们分别是大洲Takio神和 ...
- BZOJ3024 : [Balkan2012]balls
问题1: ans=max(sum[n]-(sum[i]-sum[j-1])+a[i]*(i-j+1)) =max(sum[n]-sum[i]+sum[j-1]+a[i]*(i+1)-a[i]*j) = ...
- Linux Mint 没有 language support 语言支持解决方案
打开新立得软件管理器在右边找到有关语言的安装后,language support就会出现