Linux上搭建Git服务,客户端在Windows

环境

服务器 CentOS Linux release 7.4.1708 (Core) + git(version 1.8.3.1) 客户端 Windows7 + git(Git-2.9.3.2-64-bit.exe)

① 安装 Git

Linux 做为Git服务器端系统,Windows 作为客户端系统,分别安装 Git

服务器端:

#yum install -y git

安装完后,查看 Git 版本

[root@localhost ~]# git --version
git version 1.8.3.1

客户端:

下载 Git for Windows,地址:https://git-for-windows.github.io/

安装完之后,可以使用 Git Bash 作为命令行客户端。

安装完之后,查看 Git 版本

$ git --version
git version 2.9.3.windows.2

② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码

[root@localhost home]# id git
id: git:无此用户
[root@localhost home]# useradd git
[root@localhost home]# passwd git 

③ 服务器端创建 Git 仓库

设置 /home/data/git/gittest.git 为 Git 仓库

然后把 Git 仓库的 owner 修改为 git

[root@localhost home]# mkdir -p data/git/gittest.git
[root@localhost home]# git init --bare data/git/gittest.git
Initialized empty Git repository in /home/data/git/gittest.git/ [root@localhost home]# cd data/git/ [root@localhost git]# chown -R git:git gittest.git/

④ 客户端 clone 远程仓库

进入 Git Bash 命令行客户端,创建项目地址(设置在 d:/www/githome)并进入:

Administrator@PC MINGW64 /d/www/githome
$ cd /d/www/githome
Administrator@PC MINGW64 /d/www/githome

然后从 Linux Git 服务器上 clone 项目:

$ git clone git@192.168.56.101:/home/data/gittest.git

如果SSH用的不是默认的22端口,则需要使用以下的命令(假设SSH端口号是7700):

$ git clone ssh://git@192.168.0.111:7700/home/data/gittest.git

增加新的用户

[root@localhost home]# id git01
id: git01:无此用户
[root@localhost home]# useradd git01
[root@localhost home]# passwd git01

禁用git01用户的shell登陆 出于安全考虑,第二步创建的git01用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git01:x:1001:1001:,,,:/home/git01:/bin/bash  

1最后一个冒号后改为:

git01:x:1001:1001:,,,:/home/git01:/usr/bin/git-shell  

这样,git01用户可以正常通过ssh使用git,但无法登录shell,因为我们为git01用户指定的git-shell每次一登录就自动退出。

问题1

问题描述:fatal: destination path 'githome' already exists and is not an empty directory. 解决方法:换了一个空的目录,重新

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一“技”之长

Git命令集十一——创建分支命令 原

    对分支操作的强大支持是Git管理工具的一大优势。你可以方便的进行分支的创建、合并、删除等。

751
来自专栏自动化测试实战

Flask第四篇——第一个程序

3378
来自专栏技术博文

svn 文件状态标记含义

svn status打印五列字符,紧跟一些空格,接着是文件或者目录名。第一列告诉一个文件的状态或它的内容,返回代码解释如下: A item 文件、目录或是符号...

3724
来自专栏北京马哥教育

Linux中find命令用法全汇总,看完就没有不会用的!

Linux 查找命令是Linux系统中最重要和最常用的命令之一。查找用于根据与参数匹配的文件指定的条件来搜索和查找文件和目录列表的命令。查找可以在各种条件下使用...

2094
来自专栏阮一峰的网络日志

Git远程操作详解

Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。 Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和...

2906
来自专栏Java帮帮-微信公众号-技术文章全总结

03.SVN检出/解决冲突/提交

SVN 检出操作 ---- 上一章中,我们创建了版本库runoob01,URL为svn://192.168.0.1/runoob01,svn用户user01有读...

3766
来自专栏增长技术

分支与合并@基础

一个Git仓库可以维护很多开发分支。现在我们来创建一个新的叫”experimental”的分支:

932
来自专栏重庆的技术分享区

Git入门

Git由Linus Torvalds为Linux内核开发设计和开发。Git为非线性分布式开发提供支持,允许多个贡献者同时处理项目。Git是最流行的分布式版本控制...

1812
来自专栏开发之途

Git的使用教程(2)

1787
来自专栏逸鹏说道

Git的奇技淫巧?

Git是一个“分布式版本管理工具”,简单的理解版本管理工具:大家在写东西的时候都用过“回撤”这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用“...

2814

扫码关注云+社区

领取腾讯云代金券