Linux 系统搭建Git服务器



1、登录服务器

想操作肯定就得先登上去。好在大苹果就是屌,命令行登录简单的不要不要的

$ ssh root@xxx.xxx.xxx.xxx

'xxx.xxx.xxx.xxx' 就是你服务器的地址
root 是Linux的root 用户的用户名

2、安装git

服务器端使用的是shell 命令,不熟悉的童鞋可以百度一下 常用命令

#yum install -y git

安装完后,查看 Git 版本

[root@iZ252rbhhyiZ ~]# git --version
git version 1.7.1

3、服务器端创建 git 用户,用来管理 Git 服务

 [root@iZ252rbhhyiZ home]# id git
 id: git:无此用户
 [root@iZ252rbhhyiZ home]# useradd git
 [root@iZ252rbhhyiZ home]# passwd git
 [root@iZ252rbhhyiZ home]# id git
 uid=501(git) gid=501(git) groups=501(git)

4、服务器端创建 Git 仓库

这个地方看帖子没转过来:
/home/git目录是git用户的文件目录,
所以作者的git文件都放到这个目录下面了。

~继续:

首先把git目录 owner 修改为 git
然后 切换用户到git 再进到git目录进行操作,这样就不会有权限问题。
用户身份很重要不要搞错

[root@iZ252rbhhyiZ home]# chown -R git:git git
[root@iZ252rbhhyiZ git]# su git
[git@iZ252rbhhyiZ ~]$ cd /home/git

创建iOS文件夹,然后创建gittest.git 仓库文件夹
进入gittest.git 文件夹 初始化Git仓库
这个地方要注意,要在git这个账户下 用--bare 初始化才能正常提交

    [git@iZ252rbhhyiZ git]$ mkdir iOS
    [git@iZ252rbhhyiZ git]$ mkdir iOS/gittest.git
    [git@iZ252rbhhyiZ git]$ cd iOS/gittest.git
    [git@iZ252rbhhyiZ gittest.git]$ git --bare init
    Initialized empty Git repository in /home/git/iOS/gittest.git/

5、clone 远程仓库到本地

同样的本地的Mac电脑必须安装过git 。
想要可视化的用,最好再装一个Sourcetree
怎么装自行度娘吧~

在装有git的Mac本地新开一个命令窗口

屏幕快照 2017-10-19 下午2.18.31.png

首先我们再桌面建一个test文件夹,用来存放clone的项目
进到test文件夹。把项目clone下来,期间输入你之前设置的服务器git账户的密码

$ cd desktop/test
$ git clone git@xxx.xxx.xxx.xxx:/home/git/iOS/gittest.git
Cloning into 'gittest'...

去到桌面打开test看看里面是不是多了一个gittest 文件夹。
这个时候一个空的项目仓库就建好了,也clone成功了。很简单,基本不会出错。

绕的在最后一步的ssh设置!

6、SSH设置

SSH这个是啥东西作者也描述不清楚。重要的是它的功能。
配置完SSH能让你clone和push的时候不用输入密码,一键更新。

大致的效果简单描述一下:

SSH 有公钥和私钥。生成的时候一起生成。
客户端把公钥给服务器,服务器存起来,第一次登录输入密码,
以后就能用ssh自动登录了。

  • 首先在客户端Mac电脑 生成ssh 公钥和私钥
ssh-keygen -t rsa

可以指定生成的文件的文件名,也可以不改,一路回车
最后下图这样客户端ssh生成就成功了。

屏幕快照 2017-10-19 下午5.02.09.png

  • 服务器配置
    作者的服务器没有配过其他的ssh 所以文件路径重新配置的。
    首先在服务器的 home/git目录下新建.ssh 文件夹 然后跟客户端一样生成一个SSH到这个目录下.注意当前目录

    [root@iZ252rbhhyiZ git] # mkdir .ssh
    [root@iZ252rbhhyiZ git] # ssh-keygen -C 'your@email.com' -t rsa 
    

    一路回车。然后cd .ssh

    # cd .ssh
    # ll
    

    就会看到多了三个文件

    QQ20171019-171800.png
  • 将客户端的公钥 粘贴到服务器的 authorized_keys 文件内
    在客户端,点击Finder 然后shift + com + g 打开文件跳转,前往~/.ssh

    QQ20171019-172041.png

    进去后找到你之前生成ssh时生成的文件的同名带.pub 后缀的文件 。
    如果没改名字一路回车生成的就是 id_rsa.pub 作者改了名字ky_linux

    BF6CCF97-D1B1-45AC-BE33-83E77EB6AF5E.png

    用文本编辑器打开文件,复制内容粘贴搭配服务器的authorized_keys文件内
    在服务器 .ssh 文件目录下:

    # vim authorized_keys
    

    进入vim 编辑模式 ,这个不熟悉的可以百度一下命令,本文按操作走就行。
    然后把复制的内容粘贴上,每个ssh 是一行 ,以后多用户的时候 就是多个ssh。
    esc 然后 :wq 保存退出
    这个时候如果你是之前配过下面的步骤,那么一台新的机器的ssh添加已经完成了。
    可惜第一次的时候总是还要多做一些
    首先切换到root 用户 。然后 vim 编辑/etc/ssh/sshd_config文件,这个文件是ssh服务器的配置文件

    C17D76F0-ABBD-4E6D-AFCC-EC448A439983.png

    找到上面这张图片中的那几段黄色语句,将其注释取消,再将属性修改成上面那样的。
    注意: AuthorizedKeysFile 这个是你存放 ssh 公钥的文件路径,你跟作者的可能不一样。

    启动一下ssh服务:

    # service sshd restart
    

    ok ssh 配置完成。回到客户端。
    弄个新的文件夹再clone一次试试。
    然后弄个新的文件夹再clone一次~

    其他,客户端多个ssh服务器配置

    命令行的git不知道你会不会用。反正我不会用。
    刚刚我们知道了一个服务器 可以在AuthorizedKeysFile 里面添加多个客户端的ssh 。那么客户端怎么配置多个ssh 同时联通多个服务器呢。
    毕竟哥们有 gitHub,有coding 和有这公司服务器。资源多也是一种烦恼啊

    ~SO!

  • 在客户端 前往文件夹 .ssh ,之前做过。没关Finder的就不需要这一步

  • 打开文件列表中的config 文件

QQ20171019-180109.png

看作者配置了 gitHub 、coding 和作者公司的服务器 一共三个Host
你可以对比第三个来搞

其中:

HostName 是网址 可以是ip 也可以是域名地址
Host 是别名可以跟HostName一样,
要是改了的话你的服务器地址拼法就可以高大上的从这样:
git clone git@xxx.xxx.xxx.xxx:/home/git/iOS/gittest.git
变成这样
git clone git@myHost:/home/git/iOS/gittest.git
User 就是你在服务器的登录名 咱们设置的 是git
IdentityFile 是你放私钥的地址

配置完了就可以 用sourcetree来搞了。

Sourcetree : 新建 从 URL 克隆
输入地址 :
git@xxx.xxx.xxx.xxx:/home/git/iOS/gittest.git
或是:
git clone git@myHost:/home/git/iOS/gittest.git

选个文件存放目录,大公告成!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,490评论 18 139
  • [在 Linux 下搭建 Git 服务器] 环境:服务器 CentOS6.6 + git(version 1.7....
    9ef822571b70阅读 897评论 0 5
  • 1、打开终端,cd到想要创建的目标路径,使用命令“ pod lib create xxx 模块名称/项目名 ” 然...
    落叶悠悠阅读 395评论 0 0
  • 很多人都喜欢追星。奇怪得很,我倒是从来没有对哪个明星着迷得不得了,买海报,买专辑,追演唱会什么的,都没有干过。我曾...
    吴端端阅读 225评论 0 1
  • 一是自己的方面。 2017年,我的定位是寻找可能性的一年。在寻找可能性的时候,我会大幅减少天气预报的量,更多会涉及...
    魔法密林港阅读 233评论 0 0