Using git to synchronize code between two machines


内容纲要

使用git在两台机器之间同步代码

前言

目前自己折腾了一个新的服务器,博客服务器快到期,所以在新服务器上自己搭建环境。为了版本化管理服务器的配置文件,便萌生在服务器端和本地同时保存这些配置文件。那么通过git便可以实现这个目的。

当前服务器配置好了,仅能通过ssh免密登录。服务器端已有git,本地和服务器端的公钥、私钥均已配置好了。

配置

# 为git配置私钥
vim ~/.ssh/config

添加以下配置:

# Host - 识别模式名称
# HostName - 要登录主机的主机名
# IdentityFile - 登录用户对应的IdentityFile路径
Host blog.rtfsc8.top
    HostName blog.rtfsc8.top
    PreferredAuthentications publickey
    IdentityFile ~/private_key_file

Server Side Init

# 创建备份项目
mkdir /opt/confs
cd /opt/confs
# git初始化
git init
# 复制需要备份的配置文件
cp -r /etc .
mkdir -p usr/local/nginx/conf
cp -r /usr/local/nginx/conf .
mkdir -p usr/local/php/etc
cp -r /usr/local/php/etc .
# 添加到git并提交
git add *
git commit

## bare 仓库
# 创建仓库基目录
mkdir /opt/bare
# 创建 bare 仓库
git clone --bare /opt/confs /opt/bare/confs.git
# 设置允许提交
git config receive.denyCurrentBranch ignore

## 服务器端仓库设置 upstream
# 设置 upstream
cd /opt/confs
git remote add origin /opt/bare/confs.git
# 设置 branch
git branch --set-upstream-to=origin/master master

Local Clone

# 从服务器端clone项目到本地
git clone ssh://[user@]blog.rtfsc8.top/opt/bare/confs.git
# user - 服务器登录用户名

## 本地已有clone,重置 upstream
# 设置 upstream
git config remote.origin.url ssh://[user@]blog.rtfsc8.top/opt/bare/confs.git
# 设置 branch
git push --set-upstream origin master

## 如果本地与远程版本落后
# 则需要pull
git pull origin master
# 然后再设置 upstream
git branch --set-upstream-to=origin/master master

Reference

  1. git免密pull指定ssh密钥文件

  2. 使用git在两台机器间同步代码

声明:
  未经特别说明,本站Blog均采用署名-非商业性使用-禁止演绎 2.5 中国大陆授权。任何违反本协议的行为均属于非法行为。如需非商业性转载,请保留署名。如需商业性转载出版,请直接和联系。

,

发表回复

您的电子邮箱地址不会被公开。