全部博文(403)
2012年(403)
分类: 嵌入式
2012-04-19 20:53:26
先在windows上安装git与copssh.
1 - Git,Windows下的Git,还是比较好。
2 - SSH,可以用,可以在Windows上启动SSH服务,而不仅是客户端。
安装这两个工具的过程没有什么难度。
这里假定Git是安装在C:\Git目录下,CopSSH安装在C:\ICW目录下。
那
么当你安装好以后,git已经可以从远程得到版本库,SSH也有一个用户可以登录了。假定这个用户是git(CopSSH默认没有任何用户可以登录,需要
手动激活一个设好密码的Windows用户,注意千万不要选administrator,否则你要悲剧,不能登录了,参见我博客:windows xp 遭遇administrator账号劫持)。
这时,从其它机器用git用户通过ssh登录以后,可以执行ls,cd等基本命令。但是git任然不能运行。
所以,也就还不能通过这个ssh来发布git版本库了。要实现这个,需要做一些设置。
首先、需要在Git的安装目录里找到cmd目录,这里就是C:\Git\cmd了。
在里面创建如下几个文件: git, git-upload-pack, git-upload-archive, git-receive-pack。
这里都没有扩展名的,主要是给登录后,由bash执行的。
每个文件都只有一行,分别是:
git里写 git.cmd $*
git-upload-pack里写 git upload-pack $*
git-upload-archive里写 git upload-archive $*
git-receive-pack里写 git receive-pack $*
然后,就要给登录后的用户添加path了,保证上面添加的命令可以找到,并执行。找到CopSSH安装目录的etc下的profile文件。这里就是C:\ICW\etc\profile了:在文件最后添加两行
gitpath=`/bin/cygpath C:/Git/cmd` #这里不是引号,路径是Git下的cmd,斜杠也要用Unix的习惯
export PATH="$PATH:$gitpath"
然后,用git用户重新从SSH登录。就可以使用git命令了。
例如创建一个git数据库:
mkdir testgit
cd testgit
git init
然后,就可以在远程clone这个库了。假定这台机器的ip是192.168.0.1。
在另外一台机器上,git clone administrator@192.168.0.1:testgit testgit 就可以clone成功了,这样Windows下的Git+SSH服务就做成功了!
xcode 中可以通过organizer 连接数据库
clone之后提交会出现错误,意思是说如果你不是用--bare初始化的仓库,默认git会拒绝你的提交。
如果你这样做了,你就只能用命令 git reset --hard 才能看到push后的内容
错误原型
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
解决办法,修改 Remote 端的 git 仓库中的 .git/config 文件,添加:
[receive]
denyCurrentBranch = ignore
也可以通过mac下git命令行执行连接:
cd testG
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin administrator@192.168.0.1:testgit
git push -u origin master
======================个性签名=====================
之前认为Apple 的iOS 设计的要比 Android 稳定,我错了吗?
下载的许多客户端程序/游戏程序,经常会Crash,是程序写的不好(内存泄漏?刚启动也会吗?)还是iOS本身的不稳定!!!
如果在Android手机中可以简单联接到ddms,就可以查看系统log,很容易看到程序为什么出错,在iPhone中如何得知呢?试试Organizer吧,分析一下Device logs,也许有用.