VMware, Win7, Mac系统之间使用Git版本控制器的解决方案

摘要:
现在有了新的要求。我们有三个系统:苹果电脑上的MacOSX,Win7主机上VMWare上的MacOS X,以及Windows7。代码仓库放置在专用服务器上。经过多次尝试,我们发现VMWare的MacOSX系统无法访问其他Windows7共享文件夹,但VMWare中的MacOSX可以与其他苹果计算机上的MacOSS共享。Windows 7可以访问Mac OS X的共享文件夹,但推送将失败。

前一阵子折腾了一阵子Git,用于在Mac系统和Windows系统之间进行代码同步:使用Git在Mac和Windows系统之间进行同步数据

不过当时只是权宜之计,能让我从PC上更新Mac的代码和从Mac上更新PC的代码。

现在新的需求出现了,我们有三种系统,苹果机器上的Mac OS X, Win7宿主机器上VMWare里面的Mac OS X以及Windows 7,代码仓库放在专门的服务器上。经过无数次的尝试,发现无法在VMWare里面的Mac OS X系统里面访问其他的Windows 7共享文件夹(可以ping通其他的Windows 7机器,就是Connect to Server不行,有哪位兄弟知道如何解决的麻烦指点一下),但是VMWare里面的Mac OS X可以和其他的苹果机器上的Mac OS X进行共享。Windows 7上可以访问Mac OS X的共享文件夹,但是push会失败。

在种种问题下,我决定花时间弄一弄通过ssh访问git的方式:

首先是服务器的问题,我们的服务器是Windows 7系统,默认没有ssh服务,所以需要单独安装:

google一番以后,找到两篇文章:

http://samwong.iteye.com/blog/986115

http://www.iteye.com/topic/690683

  1. 下载安装Git Extensions.(下载地址:http://code.google.com/p/gitextensions/),我用的版本是2.24,默认安装在C:\Program Files\Git下面,可以改成其他地方(对应的后面用到这个的地方也需要改)
  2. 右键"我的电脑",选择"属性",在左边列表里面选择"高级系统设置",点击"环境变量",在Path里面添加"C:\Program Files\Git\Bin"
    VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第1张
  3. 下载安装CopSSH.(下载地址:http://www.itefix.no/i2/copssh),我用的版本是:4.1.0,默认是安装在C:\Program Files\ICW下面,可以改成其他地方(对应的后面用到这个的地方也需要改)
  4. 在服务器上创建一个新的Windows帐户名字叫做git,拥有管理员权限.(用户名可以改成其他的,只要你愿意)
  5. 点击“开始菜单”->"所有程序"->"Copssh"->"01. COPSSH Control Panel"
    VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第2张
    点击"Add"开始添加用户

  6. VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第3张
    点击"Forward"进入下一个页面
  7. 选择刚刚创建的git用户(如果你的不是git用户,请选择你的用户名)
        VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第4张
    然后点击"Forward"会自动跳到激活用户页面

  8. VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第3张
    继续点击"Forward"
  9. 激活确认页面,点击"Apply"
    VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第6张

  10. 在"开始"里面输入cmd<回车>,打开命令行窗口,输入如下命令:ssh git@127.0.0.1,然后应该就能看到提示让你输入密码,密码确认成功以后就可以看到下面的画面了
    VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第7张 
  11. 控制面板中选择Windows防火墙,点击左边的"高级设置",在左边列表中选择"入站规则",然后点击右边的"新规则"
    VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第8张 
    选择端口,然后点击"下一步"
  12. 输入端口号22,然后点击下一步
    VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第9张
  13. 选择"允许所有连接",点击"下一步"
    VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第10张
  14. 根据需要选择你要的访问范围,然后点击"下一步"
    VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第11张
  15. 给新规则输入一个名字,然后点击"完成"
    VMware, Win7, Mac系统之间使用Git版本控制器的解决方案第12张 
    这样你就可以从其他机器通过SSH访问这台服务器了
  16. 配置SSH里面的Git
    1. 点击"开始"->"All Programs"->"Copssh"->"02. Start a Unix BASH Shell"
    2. 运行命令: cd /Bin
    3. 输入下面4条命令创建4个符号链接:
      $ ln -s /cygdrive/c/git/bin/git.exe git.exe
      $ ln
      -s /cygdrive/c/git/libexec/git-core/git-receive-pack.exe git-receive-pack.exe
      $ ln
      -s /cygdrive/c/git/libexec/git-core/git-upload-archive.exe git-upload-archive.exe
      $ ln
      -s /cygdrive/c/git/libexec/git-core/git-upload-pack.exe git-upload-pack.exe
    4. 这样你就可以在ssh登陆以后调用git了 (把c/git换成你的git安装所在目录, 比如d:\Program Files\Git,就换成d/Program~1/Git)
  17. 在服务器上创建Git仓库,通过调用命令git --bare init或者通过Git Extensions的GUI界面来初始化一个中央数据仓库,比如D:\Projects\Test
  18. 命令行下面调用命令: mklink /D "C:\Program Files\ICW\home\git\Projects" "D:\Projects"来创建一个目录的软链接(前面一个路径是CopSSH的安装路径下面之前创建的用户的home目录)
  19. 至此,服务器配置完成
  20. 客户端访问服务器时,URL为 git@xxx.xxx.xxx.xxx:~/Projects/Test,其中用户名和ip根据你的情况来定
  21. Clone的时候没发现问题,但是客户端push的时候发现会抱错:
    git: '~/Projects/Test' is not a git command See 'git --help'.
    fatal: The remote end hung up unexpectedly
    找了半天,最后解决方法:在客户端运行下面命令:git config --global remote.origin.receivepack "git receive-pack",或者每次push的时候加上参数 --receive-pack='git receive-pack'  (参考:http://stackoverflow.com/questions/2736862/git-clone-works-remote-push-doesnt-remote-repository-over-copssh
  22. 另外,在Mac系统里面我们使用的是SmartGit客户端,需要修改一下ssh设置,点击"Preferences"->"Git"->"SSH Client",选择"Use SmartGit as SSH client",否则会报告连接错误

免责声明:文章转载自《VMware, Win7, Mac系统之间使用Git版本控制器的解决方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微信小程序TodoList软件开发模式:瀑布、敏捷、DevOps下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

全网最详细的Git学习系列之介绍各个Git图形客户端(Windows、Linux、Mac系统皆适用ing)(图文详解)

     不多说,直接上干货! 一、TortoiseGit - The coolest Interface to Git Version Control   TortoiseGit 是 TortoiseSVN 的 Git 版本,TortoiseGit 用于迁移 TortoiseSVN 到 TortoiseGit,一直以来 Git 在 Windows 平台没...

at_today git--一文弄懂git的工作区、索引区、本地仓库、远程仓库以及add、commit、push三个操作

git中文件所在位置有四个,在工作区内、在索引区内、在本地仓库、在远程仓库。处于四个位置中文件的状态分别为untracked、unmodified、modified、staged。通过三个操作可以把文件进行状态转移:git add 把工作区文件添加到索引区;git commit 把索引区文件添加到本地仓库;git push 把本地仓库文件添加到远程仓库。...

git恢复被修改的文件

恢复到最后一次提交的改动: git checkout -- + 需要恢复的文件名 但是,需要注意的是,如果该文件已经 add 到暂存队列中,上面的命令就不灵光喽 需要先让这个文件取消暂存: git reset HEAD -- + 需要取消暂存的文件名 然后再使用第一条命令。 如果感觉命令多了记不住,那就做一两个匿名呗,比如: git conf...

Mac下也能用抓包工具Fiddler

一直以来都是在Windows底下工作,对于抓包工具,自然而然当属Fiddler最最出色。不过Fiddler是在.Net runtime环境下运行的,所以想要在Mac下使用,有些困难。 在试过了Charles、Rythem、TinyProxy和NProxy这些抓包工具后,我依然苦恼,它们有的需要支付昂贵的费用,有的只支持本机网页请求代理,而有些界面只有文本模...

js客户端获取IP、MAC地址

<HTML><HEAD><TITLE>WMI Scripting HTML</TITLE><META http-equiv=Content-Type content="text/html; charset=gb2312"><META content="MSHTML 6.00.2800.11...

Mac安装nacos

二、下载 1、下载安装包 nacos安装包下载地址(github):链接 下载太慢?下载不下来?别砸电脑拔网线,请往下看 nacos安装包百度网盘地址:链接 ;提取码:8o27 2、解压 命令: tar -zxvf 压缩包名称 3、进入bin目录 解压后,会得到一个nacos的文件夹,进入nacos文件夹中的bin目录下 4、启动nacos 单机启动命...