利用github构建自己的代码库

本文介绍如何使用TortoiseGit图形界面工具配合GitHub管理个人代码,包括配置环境、生成SSH密钥、本地代码库与GitHub远程仓库的关联及同步。

   一直以来,写过的代码,随处乱扔,到头来似乎也没有沉淀下来些什么,回头想看看以前写的东西,也不方便,于是乎想利用github来管管自己的代码。

 

     咱的核心目的是管理自己的代码,而不是如何使用git,所以为了方便,使用tortoisegit 图形界面。至于命令之类都是浮云,用多了自然就知道,个人也觉得不是scm也无需过多关注于此。

     言归正传,首先当然是下载安装git和tortoisegit。下载地址如下:

     下载安装完毕,环境变量配置ok,如果,能这些就不细说了,注意在安装git时遇到 ending line这个选项时选择 "checkout as-is ,commit as-is",保证代码的一致。

      右键菜单,有如下选项,即表示安装成功

     到此,你已经拥有了git的环境。接下就是要到github申请个账号,将本地和github关联起来。

    实际上,我很早以前就已经有了github的账号,之前也零星上传过一些代码,这次机器重装的缘故,加上有好好管管代码的心愿,就重新弄一下,大家如果没有帐号,直接申请即可,和普通的网站注册没有什么不同,我就不再重复了。

 

 

    接着就是需要github与本地建立信任关系,并将本地代码与中央库同步。

 

    既然要建立信任,首先得创建一组公钥和私钥,公钥发不到github,私钥保存在本地,每次请求携带私钥到github认证,认证通过,信任关系及建立,就可以提交或update代码了。

 

     那么,我们先生成自己的RSA 公钥私钥,在Tortoise Git里已经提供了密钥生成的工具puttygen,如图:

     

再生成密钥之前,首先填写一下自己的setting信息,如图

然后进入,点击generate,工具就开始生成密钥,可能需要一段时间,我本机就比较慢,需要几分钟。

 

passphrase,和confirm passphrash 安全性不高的情况下,均可不填。

 

生成完毕后,点击save private key,将私钥保存在本地某个地方。

 

然后,打开github自己的账户设置,如图添加刚生成的公钥:

 

 

 

   ok,还差最后一步,让我们创建一个demo库,如图:

 

   创建成功后,出现如下指引:

 

  ok,我们要做的就是,按照他说的做

 

   1) 用户名,邮箱配置,由于之前已经设置,跳过。

   2) 进入我们的代码目录,新建一个文件夹,名为demo。

   3)进入目录,点右键并选择Git Create repository here…新建一个git 库。

   4)新建文件ReadMe

   5) 右键-》TortoiesGit-》add,将该文件添加至版本库

 

 

点击commit,   提交至版本库

 

6)push至中央库(github),点击push,如图:

 

由于我们是第一次提交,所以需要配置一下远程设置,点击manage,如图:

 

其中,putty里选择刚才我们保存好的私钥。

 

点击add new/save保存该设置。

 

一切设置ok后,然后点确定退到刚才界面,点击ok,提交至中央库,如图:

 

 

 

大功搞成,未来所有的代码就可以如此管理了。

 

附件上传了Tortoisegit的教程,大家可以学习。

 

ps :写文章真累,强列希望javaeye的编辑器支持贴图,不然太麻烦了。。。

如果不想用gui,或是linux环境,参考:http://help.github.com/win-set-up-git/

 

Algorithms   本次README修订为算法仓库Algorithms的第100次commit,首先我们庆祝自2016年8月4日本仓库建立以来Dev-XYS在算法学习方面取得的显著进步!   这里有各种算法的C++代码,任何人可以在自己的任何程序中使用,欢迎大家指出代码中的错误以及有待改进的地方。   本仓库内所有代码的授权方式为Unlicense,大家如果使用我的代码开发自己的软件挣了大钱,或是参考我的代码在NOI中得了金牌,我都会很高兴的。使用这里的代码之后,你可以自主选择是否公开源代码。总而言之,你可以把这里的代码当作你自己写的一样,无论怎样使用都是被允许的。但是,我不对本仓库内代码的正确性负责。大家要是使用我的代码开发软件而导致程序崩溃,或是参考我的代码在考试时出错,请不要向我抱怨。如果你愿意,遇到问题可以在Issues中提出来,我们共同解决。我们不赞成Pull Request,因为本仓库主要储存作者已经学习的算法,全部代码均由作者本人负责维护与更新。   以下索引提供了本仓库内算法的中文名,方便大家查找。更新可能有很长时间的延迟,不保证所有算法的名称都在列表中出现。 Index --------------------------Contents-------------------------- --------------------------FileName-------------------------- AC自动机 Aho-Corasick-Automation 单源最短路径(SPFA) Bellman-Ford(Queue-Optimised) 单源最短路径(Bellman-Ford) Bellman-Ford 使用Edmonds-Karp进行二分图匹配 Bigrpah-Matching(Edmonds-Karp) 普通的二叉搜索树 Binary-Search-Tree 广度优先搜索 Breadth-First-Search 冒泡排序 Bubble-Sort 桶排序 Bucket-Sort 组合数的递推求解 Combination(Recursion) 枚举组合 Combination 基本的复数类 Complex-Number 割点 Cut-Vertex 深度优先搜索 Depth-First-Search 堆优化的Dijkstra算法 Dijkstra(Heap-Optimised) 并查集 Disjoint-Set-Union 最大流Edmonds-Karp算法 Edmonds-Karp 欧拉函数 Euler's-Totient-Function 有向图的欧拉回路 Eulerian-Tour(Digraph) 拓展欧几里得算法 Extended-Euclid 简单的快速幂 Fast-Exponentiation 树状数组 Fenwick-Tree 所有结点对之间的最短路径(Floyd) Floyd-Warshall 凸包算法(Graham扫描法) Graham-Scan 辗转相除法求最大公约数 Greatest-Common-Divisor 堆排序 Heap-Sort ISAP算法 Improved-Shortest-Augmenting-Path(Naive) 插入排序 Insertion-Sort 字符串匹配(KMP) Knuth-Morris-Pratt 最小生成树(Kruskal) Kruskal 最近公共祖先(Tarjan) Least-Common-Ancestor(Tarjan) 使用后缀数组求解最长公共子串 Longest-Common-Substring 最长上升子序列(n·log(n)) Longest-Increasing-Subsequence(n·log(n)) 倍增法求最近公共祖先 Lowest-Common-Ancestor(Doubling) 朴素的矩阵乘法 Matrix-Multiplication(Naive) 归并排序 Merge-Sort 最小堆 Min-Heap 乘法逆元 Modular-Multiplicative-Inverse 仅支持单点修改的可持久化线段树(维护区间和值) Persistent-Segment-Tree(Sum) 试除法素数测试 Prime-Check(Naive) 线性的素数筛法 Prime-Sieve(Linear) 队列的基本操作 Queue 快速排序的优化版本 Quick-Sort(Extra-Optimised) 快速排序的随机化版本 Quick-Sort(Randomized) 快速排序 Quick-Sort 使用向量叉积判断两个有向线段的时针关系 Segment-Direction 线段树维护区间最大值 Segment-Tree(Maximum) 线段树维护区间最小值 Segment-Tree(Minimum) 线段树维护区间和值 Segment-Tree(Sum) 普通的选择算法 Selection Eratosthenes素数筛法 Sieve-of-Erotosthenes 指针版的单向链表 Singly-Linked-List(Pointer) 跳表 Skip-List ST表 Sparse-Table 伸展树 Splay 博弈论SG函数 Sprague-Grundy 栈的基本操作 Stack 递推法求解无符号第一类斯特林数 Stirling-Number(Cycle,Unsigned,Recursion) 递推法求解第二类斯特林数 Stirling-Number(Subset,Recursion) 倍增法求解后缀数组 Suffix-Array(Doubling) 倍增法求解后缀数组(附带Height数组) Suffix-Array-with-Height(Doubling) 使用Tarjan算法求解强连通分量 Tarjan(Strongly-Connected-Components) 数组版的字典树 Trie(Array) 指针版的字典树 Trie(Pointer)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值