`

Mac下搭建Git本地库(续)

 
阅读更多
The only unchangeable thing is change.

   前面讲了如何搭建一个基于Git协议的Local repository。实现了之前的用户需求,现在用户来了一个新需求:

  “我希望在Windows的机器上也可以使用local repository”

首先分解这个需求:
   1、在Windows下安装Git,或者Git支持工具。
   2、验证之前的上篇提到的所有功能都能在Windows下工作
   3、如果有改动git server的设置,Mac的所有功能也需要重新验证。

实现过程:
   1、在Windows下安装Git,目前比较流行是msysgit,可以从http://code.google.com/p/msysgit/ 下载,安装。

   2、验证Windows环境中的Pull,Push等上篇提到的功能。在这步的实现过程中,碰到一个大麻烦。在windows系统中可以clone,但是push的时候去会被卡住,多番google,发现msysgit对于git协议的支持有个大bug,详细情况http://code.google.com/p/msysgit/issues/detail?id=457 最惨的是大牛们都素手无策,一年多了仍然未fix。不过bug的回复列表中给了一些绕过这个bug的建议,我直接选择了抛弃git协议,切换到SSH协议。

因实现过程中遇到的困难迫使我修改了设计方案,因此我不得不重新分解任务:

1、开启服务器的SSH服务
   Mac下直接System preference –> sharing 下勾选Remote Login, 在该界面下,还可以选择允许访问SSH的用户。
   在Linux下,默认已经安装了SSH需要的套件,只需要执行命令 service sshd start。
   开启SSH服务之后,可以在用户目录 ls –la 发现.ssh目录。如果没有的话,可以通过命令ssh-keygen生成该目录,该目录下有个人私钥id_rsa,公钥id_rsa.pub和用于储存访问过的计算机的公钥的kown_hosts文件,有些还会有authorized_keys文件,这个文件是用来存储已授权的公钥。

2、搭建支持SSH协议的本地库,
   创建本地库的过程和上篇一样,但是SSH协议不需要touch git-daemon-export-ok文件。
mkdir git_repo/test.git
cd git_repo/test.git
git init –bare 


3、测试Mac能够通过SSH协议clone, push, pull 等操作远程数据库
     
git clone lincoln.liu@<local-ip>:git_repo/test.git
  lincoln.liu是我的用户名,local-ip是我的主机名。 git_repo/test.git是第一步创建的git repository的地址。
       执行这条命令会要求输入用户名,如果不想每次都输可以把自己的public key(id_rsa.pub) 加入服务器的authorized_keys(如果没有,就在.ssh目录下创建该文件) 中,
cat id_rsa.pub  >> authorized_keys


    本地工作目录clone完成之后,测试push功能 ,和上篇一样
cd test
touch README
git add .
git commit –m “add README”

git remote add local lincoln.liu@<local-ip>:git_repo/test.git
git push local master

注:此处如果push报错,很大可能是因为user(Lincoln.liu)对repository的目录没有读写权限。可通过如下命令解决
sudo chown –R <user-name>:<user-group>  <repo_directory>


4、测试windows下能通过SSH协议工作,打开GitBash,剩下所有的操作都和Mac一样了。

OK,Mission Completed!!
分享到:
评论

相关推荐

    在 Ubuntu 下搭建 git gitosis.pdf

    在Ubuntu系统中搭建Git服务器,特别是使用gitosis作为版本控制系统管理工具,是一个常见的做法,尤其适合小型团队或个人开发者协作项目。以下将详细介绍这个过程。 首先,我们需要进行一些准备工作。在Mac上安装...

    SHOS搭建git服务器.pdf

    **一、搭建Git服务器的好处** 1. **安全性**:自建Git服务器可以更好地保护代码安全,避免因第三方服务故障导致的数据丢失。 2. **版本管理**:提供版本控制功能,便于进行代码回滚和指定版本操作。 3. **代码共享**...

    gitblit-1.8.0.zip下载

    要搭建Gitblit本地服务,你需要按照以下步骤操作: 1. **环境准备**: 确保你的系统已经安装了Java运行环境(JRE)。Gitblit依赖Java,所以这是必需的。 2. **下载Gitblit**: 访问Gitblit的官方网站或通过给定的...

    Mac版本 git安装包.zip

    本压缩包“Mac版本 git安装包.zip”提供了适用于Mac操作系统的Git安装程序,使得用户能够轻松地在本地环境中搭建Git环境。 Git的核心功能包括版本控制、代码差异比较、分支管理以及协同开发等。它允许开发者记录...

    git零基础实战

    - 本地Git服务器搭建方法。 - **课程目标** - 熟练掌握30个常用的Git命令。 - 理解Git的内部原理。 - 熟悉企业版本控制流程。 - 能够使用Git跟踪开源项目、与他人协作、管理自己的开发工作。

    Git权威指南PDF完整版

    第5篇 搭建Git服务器 第27章 使用 HTTP 协议/ 398 27.1 哑传输协议/ 398 27.2 智能 HTTP 协议/ 400 27.3 Gitweb 服务器/ 401 27.3.1 Gitweb的安装/ 402 27.3.2 Gitweb的配置/ 403 27.3.3 版本库的 Gitweb 相关设置/ ...

    gitblit-1.9.1.zip

    总的来说,Gitblit是企业内部搭建私有Git服务器的理想选择,它提供了一种简单有效的方式来管理和协作代码,同时保持了Git的强大功能。通过学习和掌握Gitblit,开发者和团队可以更好地利用Git进行版本控制,提高开发...

    PRO GIT.pdf

    Git的设计初衷是为了支持大规模项目,如Linux内核,它能够高效地处理大文件、大规模的代码库,并且支持高速的非线性开发流程。 ### Git基础知识 #### 安装与配置 在开始使用Git之前,首先需要在你的系统上安装它...

    git使用操作中文手册

    设计和搭建Git服务器的步骤。 **4.5 公共访问** 设置公共访问的策略。 **4.6 网页界面GitWeb** 提供了一个用于浏览Git仓库的Web界面。 **4.7 权限管理器Gitosis** 管理仓库访问权限的工具。 **4.8 Git进程**...

    git安装-使用中文手册chm

    最后,服务器搭建涉及到Git服务器的配置,如使用GitLab或GitHub等平台,或者自建Git服务器。这需要一定的网络和系统管理知识,但一旦配置好,就能提供稳定、安全的代码托管服务。 总之,本中文手册覆盖了Git的各个...

    git官方教程

    - **在服务器上搭建Git**:搭建Git服务器通常涉及到安装Git服务端软件、配置权限和SSH密钥等步骤。 - **第三方托管**:除了自己搭建服务器之外,还可以选择使用GitHub、GitLab等第三方服务提供商来托管Git仓库。 #...

    《Pro Git》---- 分布式版本控制系统

    用户可以通过多种方式安装Git,包括从源代码编译安装、在Linux/Mac/Windows系统上直接安装等。安装完成后,首次运行Git前还需要进行一些配置,如设置用户的姓名和电子邮件地址等。 ##### 3.2 基础操作 - **初始化...

    DVWA靶场搭建教程,网站搭建

    1. 服务器或本地机器:可以是Linux、Windows或Mac操作系统。 2. PHP环境:DVWA需要PHP运行环境,例如XAMPP或LAMP。 3. 数据库:MySQL,用于存储DVWA的应用数据。 4. Git:用于克隆DVWA的源代码仓库。 步骤1:安装...

    开始使用 Z 上的 Git 和 GitHub.pdf

    - **自托管服务**:组织可以选择自行搭建Git服务器来满足特定的安全和合规需求。 #### 四、在IBM Z系统上安装与使用Git IBM Z系统支持Git的安装和使用,可以通过以下步骤完成: - **需求**:确保系统已安装bash-4.3...

    Git教程 包含:快速入门、基础使用、进阶使用、服务器集成、一些常见的问题

    Git 是一个广泛使用的开源分布式版本控制系统,其设计目标是高效快速地处理各种规模的项目...服务器集成部分,特别是如何在CentOS服务器上搭建Git服务器,将进一步增强你对Git的运用,使你能够构建自己的代码托管平台。

    Mac开发环境搭建之免登录版sourceTree代码管理工具

    在Mac OS系统上进行软件开发,构建一个高效的工作环境至关重要,而SourceTree是开发者们常用的一款免费的Git和Mercurial版本控制客户端。本压缩包提供的免登录版SourceTree简化了安装过程,使得用户无需创建或登录...

Global site tag (gtag.js) - Google Analytics