设为首页 收藏本站
查看: 1740|回复: 0

[经验分享] VMware, Win7, Mac系统之间使用Git版本控制器的解决方案

[复制链接]

尚未签到

发表于 2015-4-7 17:37:19 | 显示全部楼层 |阅读模式
  前一阵子折腾了一阵子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

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

  • DSC0002.png
    点击"Forward"进入下一个页面
  • 选择刚刚创建的git用户(如果你的不是git用户,请选择你的用户名)
        DSC0003.png
    然后点击"Forward"会自动跳到激活用户页面


  • 继续点击"Forward"
  • 激活确认页面,点击"Apply"
    DSC0004.png
  • 在"开始"里面输入cmd,打开命令行窗口,输入如下命令:ssh git@127.0.0.1,然后应该就能看到提示让你输入密码,密码确认成功以后就可以看到下面的画面了
    DSC0005.png
  • 控制面板中选择Windows防火墙,点击左边的"高级设置",在左边列表中选择"入站规则",然后点击右边的"新规则"
    DSC0006.png
    选择端口,然后点击"下一步"
  • 输入端口号22,然后点击下一步
    DSC0007.png
  • 选择"允许所有连接",点击"下一步"
    DSC0008.png
  • 根据需要选择你要的访问范围,然后点击"下一步"
    DSC0009.png
  • 给新规则输入一个名字,然后点击"完成"
    DSC00010.png
    这样你就可以从其他机器通过SSH访问这台服务器了
  • 配置SSH里面的Git

    • 点击"开始"->"All Programs"->"Copssh"->"02. Start a Unix BASH Shell"
    • 运行命令: cd /Bin
    • 输入下面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
    • 这样你就可以在ssh登陆以后调用git了 (把c/git换成你的git安装所在目录, 比如d:\Program Files\Git,就换成d/Program~1/Git)

  • 在服务器上创建Git仓库,通过调用命令git --bare init或者通过Git Extensions的GUI界面来初始化一个中央数据仓库,比如D:\Projects\Test
  • 命令行下面调用命令: mklink /D "C:\Program Files\ICW\home\git\Projects" "D:\Projects"来创建一个目录的软链接(前面一个路径是CopSSH的安装路径下面之前创建的用户的home目录)
  • 至此,服务器配置完成
  • 客户端访问服务器时,URL为 git@xxx.xxx.xxx.xxx:~/Projects/Test,其中用户名和ip根据你的情况来定
  • 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)
  • 另外,在Mac系统里面我们使用的是SmartGit客户端,需要修改一下ssh设置,点击"Preferences"->"Git"->"SSH Client",选择"Use SmartGit as SSH client",否则会报告连接错误

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-54709-1-1.html 上篇帖子: 在Vmware上的Ubuntu中安装Git服务器 下篇帖子: CentOS 6.4x64安装git和gitolite服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表