OSChina中远程GIT仓库同步探索
GIT平台在OSChina中的搭建帮了我们很大的忙,但如何将本地GIT仓库上传至OSChina的远程仓库,相信这是一个艰难的坎,今天我就在此总结我的成功经验,帮助大家,共同学习。由于条件有限,我全部的编写上传都是手机完成的,包括这篇文章。
GIT同步问题出现
我一直都在用AIDE编写一个安卓软件,从1.1版到2.2.2版一系列版本,都在本地仓库存储,突然有一天,我想找同学一起开发了,然后问题来了:怎样才能将代码共享完了还要有控制权,能够决定代码是否被采用?那就用github吧。由于github网站被墙,所以换用OSChina,同样的功能,而且是国内网站。
REMOTE仓库建立
在OSChina中建立一个开发组,再建立一个空项目,然后系统就为我分配一个SSH链接地址git@git.oschina.net:hele_two/Guass_Position
,这样REMOTE仓库就建立了,不过它是空的。我要做的是将本地仓库推送至REMOTE端。首先就是要使得本地与远端能够通过SSH认证连接,这时我就需要SSH2密钥对。
SSH2密钥生成
为啥叫SSH2呢,这大家可以度娘一下,据说是SSH商业化和OpenSSH的纷争。实际上是RSA密钥对。
如果我用Linux生成SSH2密钥对,那再简单不过了,只需用ssh-keygen就可以生成。但别忘了我只有一部安卓手机。针对以上问题,我有以下几点思路:
移植Linux中的ssh-keygen到手机中运行
在手机上装了busybox也依然没有相关命令,于是我在网上下了Linux版ssh-keygen放到系统bin以及xbin文件夹内,然后命令行运行,提示SegmentFault,可知Android虽然基于Linux内核,但还是有区别的。扑街!
利用Python开发环境
据说Python有高移植性,恰巧手机先前搭建了SL4A集成环境,安装了Python3.3解释器,也有QPython集成开发环境,于是上网搜了下,确实有可能成功。有个包叫paramiko,有相关实现。先试了QPython的pipe install paramiko
,结果人家服务器没有这种包;后又试了下载paramiko包,看了人家的README,结果还需要pycrypto包,于是又下载,但不知怎样安装,另外在shell中也无法找到python命令。总之问题很多,留下思考方向,去看看PATH变量,试试把python路径添加进去。有兴趣的可以试试,如果成功了记得分享一下哦。
利用Java开发环境
手机中安装了AIDE,java环境跟电脑一样。上网搜索,找到符合条件的一种包——Jsch。不过据说这玩意很难找到参考手册,凭着锲而不舍的决心,我终于在CSDN上找到了,并花了2个豆下了下来。用CHM阅读器看下。。。。全是English?!还好我懂一些。。。。没有Demo,只能试。多的不说了,上代码:
JSch jsch = new JSch();
try {
KeyPair kp = new KeyPairRSA(jsch).genKeyPair(jsch,KeyPair.RSA);
kp.writePrivateKey("/mnt/sdcard/.ssh/id_rsa");
kp.writePublicKey("/mnt/sdcard/.ssh/id_rsa.pub", "hele-two@163.com");
} catch (FileNotFoundException e) {
System.out.println("haha");
} catch (Exception e) {
System.out.println("error");
}
成功了!生成的格式很对。
打开公钥文件,CtrlC,到OSChina里CtrlV,Done!
CONFIG文件设置
Git问题再出现,在push过程中出现了rejected_nonfastforward错误,上网查了下,是因为remote端和local端分支不同步的原因。需要先pull再push。然后pull出现了branch.master.merge不知道地址的问题,这牵扯到默认地址和分支的问题。搜一下,remote端只有master分支,再在git的config文件添加如下代码:
[branch "master"]
remote = master
merge = refs/heads/master
[remote "master"]
url = git@git.oschina.net:hele_two/Guass_Position
fetch = refs/heads/master
[remote "origin"]
url = git@git.oschina.net:hele_two/Guass_Position
再pull,可以了,然后push,也成功了。哦耶!
鸣谢
- http://ritto.blog.51cto.com/427838/741342 解决git pull时出现的几个问题
- http://git.oschina.net/progit/ Pro Git中文手册 第四章
OSChina中远程GIT仓库同步探索的更多相关文章
- 本地Git仓库同步到Bitbucket 远程Git仓库
转载自:http://blog.csdn.net/lue2009/article/details/46553829 本地仓库内容可以和多个远程仓库同步,本地仓库出问题或者远程仓库其中一个有问题,那么剩 ...
- 本地Git仓库与Github远程仓库同步
在本地创建了一个Git仓库后,还想在Github创建一个Git仓库,并使其远程同步.1.在电脑的用户主目录下有无.ssh目录,若有看是否有id_rsa和id_rsa.pub文件.若无,则创建SSH K ...
- git 快速使用(本地仓库同步到远程仓库)
学git一段时间,可惜公司用的是svn,平时少用,又忘了,总结一下,免得下次又得重新学习.得多多用才是正道! 一. 将本地的提交到网上git仓库 1.在git创建仓库 ...
- 使用git将本地仓库同步到github远程仓库
一.下载安装git客户端windows版本 二.建立本地仓库文件夹 三.在本地仓库里右键点击Git Bash Here 四.初始化本地仓库 [git init] 执行之后仓库中会创建隐藏的文件夹.gi ...
- 提交代码到远程GIT仓库,代码自动同步到远程服务器上。
现在一般都会通过github,gitlab,gitee来管理我们的代码.我们希望只要我本地push了代码,远程服务器能自动拉取git仓库的代码,进行同步. 这就需要用到各仓库为我们提供的webhook ...
- Git进行fork后如何与原仓库同步
在进行Git协同开发的时候,往往会去fork一个仓库到自己的Git中,过一段时间以后,原仓库可能会有各种提交以及修改,很可惜,Git本身并没有自动进行同步的机制,这个需要手动去执行.name如何进行自 ...
- 连接并同步windows下的git仓库
1. 需求 电脑A和电脑B本来通过服务器同步工作目录.服务器时linux系统上有个裸仓库,不管在A上还是B上工作,工作完毕后使用git go与服务器仓库同步.A和B都是windows系统,在工作目录下 ...
- 使用网盘(Dropbox/Google Drive)同步Git仓库
还在使用老掉牙的U盘搬运代码(文件)的方式,从一台机器上复制后,粘贴到另一台机器上?太Out了.使用Github 倒是一个非常不错的替代方法.但无论是基于什么理由都有可能不想把代码公开(毕竟Githu ...
- git 在不同服务器主机上同步 git 仓库
git 在不同服务器主机上同步 git 仓库 参考链接:https://opentechguides.com/how-to/article/git/177/git-sync-repos.html 1. ...
随机推荐
- thinkphp中redirect重定向后隐藏index.php
首先,.htaccess文件要配置好隐藏index.php.系统默认生成的就行. 然后,也是最关键的一部,要在Application/Home/Conf里的config.php文件中增加如下配置: & ...
- Linux下编译LibCURL
编译环境 操作系统: Red Hat Enterprise Linux Server release 5.4 64-bit 编译工具: gcc (GCC) 4.1.2 20080704 (Red Ha ...
- Python 函数的创建和调用
>>> movies =[ "the holy grail", 1975,"terry jones",91, ["graham ch ...
- RESTful API 简书
RESTful API 概述 参考地址 RESTful架构是一种流行的互联网软件架构,它结构清晰,符合标准,易于理解,扩展方便.REST是Representational State Transfer ...
- 【MySQL】insert批量插入优化方案
对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长.特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久.因此,优化数据库插入性能是很有意义的. ...
- java中用中国网建提供的SMS短信平台发送短信
接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下.大体上说的都是有三种方法,分别是sina提供的webservice接口.短信mao和中国网建提供的SMS短信平台. 这三种方 ...
- Freescle cortex-A9(完善中...)
关键词:cortex-A9 , udoo ,mars board ; (内容参考,飞思卡尔官方网站,如有问题请联系本人) i.MX 6系列处理器推出了业界首个具有真正扩展性的多核平台,包括基于ARM® ...
- C#学习笔记五: C#3.0Lambda表达式及Linq解析
最早使用到Lambda表达式是因为一个需求:如果一个数组是:int[] s = new int[]{1,3,5,9,14,16,22};例如只想要这个数组中小于15的元素然后重新组装成一个数组或者直接 ...
- *.hbm.xml讲解
<!-- package声明pojo类所在的包,如果不写 那么在class中需要指明pojo类所在的包 schema指数据库模式 一个模式下可以有多张表 --> <hibernate ...
- [Android实例] Scroll原理-附ScrollView源码分析
想象一下你拿着放大镜贴很近的看一副巨大的清明上河图, 那放大镜里可以看到的内容是很有限的, 而随着放大镜的上下左右移动,就可以看到不同的内容了 android中手机屏幕就相当于这个放大镜, 而看到的内 ...