搭建Git服务端及同步到指定目录
本文最后更新于 767 天前,其中的信息可能已经有所发展或是发生改变。

引言

使用Git可以更好的和朋友一起管理代码,也便于同步代码。由于我比较喜欢静态网站,因此使用Git同步网页文件很是实用

安装Git

登录ROOT账户,依次输入以下命令

 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
 yum install git

创建用户

创建一个Git用户组和用户,用于运行Git服务

 groupadd git
 useradd git -g git

公钥获取

此部分为自己电脑的公钥,以Widows为例

%UserProfile%/.ssh/目录下id_rsa.pub文件存储

如若没有此文件,打开cmd运行ssh-keygen命令会自动生成

导入公钥

将待导入的公钥导入/home/git/.ssh/authorized_keys文件里,一行一个。 若没有该文件,则创建一个

 cd /home/git/
 mkdir .ssh
 chmod 755 .ssh
 touch .ssh/authorized_keys
 chmod 644 .ssh/authorized_keys

然后使用vi或vim命令将公钥导入,使用参考:vim文本编辑

初始化Git仓库

选定一个目录作为Git仓库,假设为/home/gitrepo/repo.git

 cd /home
 mkdir gitrepo
 chown git:git gitrepo
 cd gitrepo
 git init --bare repo.git

以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:

 chown -R git:git runoob.git

克隆仓库

 git clone git@您的IP:仓库目录
 // 例如
 git clone [email protected]:/home/gitrepo/repo.git

同步目录

自动同步功能用到的是Git的钩子(hook)功能

进入仓库目录/home/gitrepo/repo.git

 cd /home/gitrepo/repo.git
 cd hooks

创建并编辑文件post-receive

 vi post-receive

在该文件写入以下内容

 #!/bin/sh
 git --work-tree=同步到的目录 --git-dir=仓库位置 checkout -f

例如

 #!/bin/sh
 git --work-tree=/home/www/hexo --git-dir=/home/gitrepo/repo.git checkout -f

然后设置该文件读写权限

 chmod +x post-receive

改变repo.git目录的拥有者为git用户

 chown -R git:git /home/gitrepo/repo.git

更新代码

如果你可以确定什么都没有改过只是更新本地代码,直接使用

 git pull

正规流程

 // 查看本地分支文件信息,确保更新时不产生冲突
 git status
 // 若文件有修改,可以还原到最初状态; 若文件需要更新到服务器上,应该先merge到服务器,再更新到本地
 git checkout – [file name]
 // 查看当前分支情况
 git branch
 // 若分支为本地分支,则需切换到服务器的远程分支
 git checkout remote branch
 git pull

其他命令

 git branch // 看看分支
 git checkout aaa // 切换分支aaa
 git branck aaa // 创建aaa分支
 git chechout -b aaa // 本地创建 aaa分支,同时切换到aaa分支。只有提交的时候才会在服务端上创建一个分支

禁用git用户的shell登录权限

出于安全考虑,我们要让 git 用户不能通过 shell 登录。可以编辑/etc/passwd来实现

 vi /etc/passwd

 git:x:1001:1001::/home/git:/bin/bash

改为

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

这样 git 用户可以通过 ssh 正常使用 git,但是无法登录 sehll

参考文章

Linux chown 命令 | 菜鸟教程

Git 服务器搭建 | 菜鸟教程

Git – 生成 SSH 公钥

SSH key的介绍与在Git中的使用 – 简书

Git – 在服务器上搭建 Git

git 更新代码到本地_ftToday的博客-CSDN博客

如何在服务器上搭建hexo博客-阿里云开发者社区

Linux权限详解(chmod、600、644、700、711、755、777、4755、6755、7755)_林20的博客-CSDN博客

详细解析Linux /etc/passwd文件 – Jtianlin – 博客园

本文链接:搭建Git服务端及同步到指定目录
本文章由 yexca 采用 知识共享署名 - 非商业性使用 - 相同方式共享 4.0 国际许可协议 进行许可,转载请注明出处。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇