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. ...
随机推荐
- HackerRank "Vertical Rooks"
Please note: VROOK cannot go back-ward - that leads to a simple variation to Game of Nim: just XOR. ...
- jQuery实现登录提示
实现效果:将鼠标聚焦到邮箱地址文本框时,文本框 内的"请输入邮箱地址"文字将被清除: 若没有输入任何内容,鼠标移除后邮箱地址文本框被还原. <!DOCTYPE html& ...
- rsync 同步文件
rsync 同步文件 rsync -avz roo@192.168.4.12::/home/a ./a --exclude "data" exclude 去掉/a/data 文件 ...
- Glibc 与 libc 的区别和联系
转http://blog.163.com/dragon_sjl@126/blog/static/100473339201107101517380/ 1.gcc(gnu collect compiler ...
- asp.net和脚本获取当前的URL、IP地址
介绍一下ASP.NET取得当前页面的完整URL 的方放,icech做成了函数,直接用吧! private string GetPath() { string strPath = "http: ...
- 手把手教你玩转Git分布式版本控制系统! (转载)
目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 Git诞生历史 ...
- 最最简单的~WordCount¬
sc.textFile("hdfs://....").flatMap(line =>line.split(" ")).map(w =>(w,1)). ...
- PLSQL_基础系列12_替换函数用法REPLACE / TRANSLATE / REGEXP_REPLACE
20150806 Created By BaoXinjian
- zabbix安装,关闭SELinux
一.缘由 在安装zabbix的时候,按照官网的Zabbix Manual一路跑下来,zabbix的dashboard提示:zabbix server is not running the inform ...
- [物理学与PDEs]第5章习题参考解答
[物理学与PDEs]第5章习题1 矩阵的极分解 [物理学与PDEs]第5章习题2 Jacobian 的物质导数 [物理学与PDEs]第5章习题3 第二 Piola 应力张量的对称性 [物理学与PDEs ...