前言

分别在个人电脑、个人服务器、码云三个地方建立了数据仓库用于保存自己的各种数据,通过git+shell进行数据同步。

此举不仅可以避免因存储损坏、版本更迭、数据误操作等因素带来的各种麻烦,也能实现各种环境下的便捷开发、合作开发。

这篇博客属于事件记录,因此只贴出代码,望诸君见谅!




建立仓库

服务端(Ubuntu18.04):

# 为git仓库创建管理员
su root
adduser git
... # 输入密码信息,也可以在root下输入命令 sudo passwd ${username} 重置密码 su git
cd ~ # 在git用户目录下建立仓库,假设git已安装好
mkdir db_1;cd db_1;
git --bare init; # 远程仓库必须加--bare参数,否则以后会出问题 # 创建存放密钥认证文件,并放入客户端公钥(不演示)
vim ~/.ssh/authorized_keys;


客户端(windows7):

# 创建仓库
git init # 推送文件或下拉文件,在此以shell脚本形式贴出


码云:

码云需要创建仓库,同上面一样建立两个分支,然后将公钥加入到个人信息中,具体自查。




数据同步

# push.sh
# ========================================================================= #
#!/bin/bash
remoteAd_1=giteeAddress;
remoteAd_2=serverAddress;
remoteBranch=develope;
name=user;
time=`date '+%Y-%m-%d %H:%M:%S'` # according to the second parameter, choose the branch
if [ -n "${2}" ]; then
if [ ${2} == "m" ]; then
echo -e "\e[37;41m remoteBranch is [ master !!!] ... \e[0m";
remoteBranch=master;
fi
else
echo -e "\e[37;41m remoteBranch is [ develope !!!] ... \e[0m";
fi # send file to remote database
function push(){ echo -e "\e[32;40m \n step 1: git add .\n \e[0m"; # shell字体颜色设置
git add .; echo -e "\e[32;40m \n step 2: git commit -m \n \e[0m"
git commit -m "${time} -- ${name}"; echo -e "\e[32;40m \n step 3: push the studyNote to my server... \n \e[0m"
git pull ${remoteAd_1} ${remoteBranch}:master;
git push ${remoteAd_1} master:${remoteBranch}; echo -e "\e[32;40m \n step 4: push the studyNote to my server... \n \e[0m"
git pull ${remoteAd_2} ${remoteBranch}:master;
git push ${remoteAd_2} master:${remoteBranch};
} # get file from remote database
function get(){ echo -e "\e[32;40m \n step 1: get the studyNote from gitee....\n \e[0m"
git pull ${remoteAd_1} ${remoteBranch}:master;
} # choose the way of p(push) or g(pull)
if [ -n "${1}" ]; then
if [ ${1} == "p" ]; then
push
elif [ ${1} == "g" ]; then
get
fi
else
echo -e "\e[31;40m \n ======= please input your args !!!!!! ======= \e[0m";
fi
# ========================================================================= #




结语

人类的本质就是复读机,没错,我也是~


时间: 2020/08/16 00:54

坐标: 广东深圳


shell脚本同步私人git仓库的更多相关文章

  1. shell脚本批量调用git命令

    有时候想对本地的几个repository都进行一下pull,一个一个操作比较繁琐,所以写了个shell脚本进行简化操作. git_pull_all.sh #!/bin/sh clear functio ...

  2. gitlab webhook php exec 调用 shell 脚本。shell 脚本中调用 git pull 命令无法执行。

    情况如下: 我在ubuntu server 14.04 上面安装了gitlab,来托管项目代码.然后想通过gitlab的web hook 功能来做测试服务器代码自动化更新代码功能.现在遇到一个问题:就 ...

  3. windows调起git bash执行sh脚本定时统计git仓库代码量

    本来挺简单的一个东西硬是弄了两天 心力交瘁 找了网上不少资料 整理一下发给大家 首先是统计每个人的代码量的git命令 在网上找的 我这里做了以下修改 git log --format='%aN'|so ...

  4. 在linux写一个shell脚本用maven git自动更新代码并且打包部署

    服务器上必须安装了git maven jdk 并且配置好环境变量 实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本 kill.sh ...

  5. shell脚本自动更新git

    gitpull.sh #!/bin/bash cd /home/wwwroot/default/mouse && git pull cd /home/wwwroot/default/s ...

  6. windows下数据库文件使用脚本同步到linux下的mysql数据库中

    1.背景 windows server 2008 下 每天会有 *.sql数据文件 需要上传到linux 中的mysql数据库中 而运维人员是在 windows server 下使用 xshell 连 ...

  7. Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用

    一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境       2> 练习命令历史.命令别名       3 ...

  8. 该死的端口占用!教你用 Shell 脚本一键干掉它!

    1. 前言 大家好,我是安果! 在 Web 开发中,经常会遇到「端口被占用」的场景 常规解决方案是: 使用 lsof -i 命令查询占用端口的进程 PID 利用 kill -9 PID 干掉目标进程 ...

  9. OSChina中远程GIT仓库同步探索

    GIT平台在OSChina中的搭建帮了我们很大的忙,但如何将本地GIT仓库上传至OSChina的远程仓库,相信这是一个艰难的坎,今天我就在此总结我的成功经验,帮助大家,共同学习.由于条件有限,我全部的 ...

随机推荐

  1. PHP set_file_buffer() 函数

    定义和用法 set_file_buffer() 函数设置打开文件的缓冲大小. 使用 fwrite() 函数输出结果,缓冲的大小通常为 8K.因此,如果要将两个进程写入同一个文件,那么每个文件一次最多只 ...

  2. luogu P5289 [十二省联考2019]皮配 背包

    LINK:皮配 我承认是一道很难的题目. 不过对于这道题 部分分的提示显得尤为重要. 首先是 40分的暴力dp 很容易想 但是不容易写. 从40分可以发现我们只需要把蓝阵营和鸭派系的人数给存在起来就行 ...

  3. P3239 [HNOI2015]亚瑟王 期望 dp

    LINK:亚瑟王 Saber!Excalibur! 比较难的期望dp. 可以发现如果暴力枚举所有的局面复杂度很高 . 转换的思路则是 期望的线性性. 求出每张牌的期望累加即可. 考虑每张牌的期望=这张 ...

  4. linux的文件处理(匹配 正则表达式 egrep awk sed)和系统、核心数据备份

    文件处理 1.处理方式 匹配 正则表达式 egrep awk sed 2.文件中的处理字符 \n  新行符 换行 \t  制表符 tab键 缺省8个空格 \b  退格符 backspace键 退格键 ...

  5. 关于c/c++中的二维数组与指针

    设a是一个一维数组的数组名,则a表示其第一个元素的地址(即&a[0]),而&a表示整个数组的地址!尽管两者值相同(&a[0]==&a),因此&a是地址,*(&a ...

  6. 基于AspectCore打造属性注入

    前言 源自于晓晨在成都.net社区群的一篇文章 <晓晨的ASP.NET Core 奇淫技巧之伪属性注入> 他的思路是 Ioc容器替换 ControllerActivator,因为只能在控制 ...

  7. 【FZYZOJ】珂神不等式&平角咖啡厅 题解(二分答案)

    前言:这题太神了,蒟蒻表示思路完全断档,甚至想到DP.得到大佬hs-black的帮助后才AC此题orz --------------------------------- 题目描述 ck love…… ...

  8. Pytorch_第六篇_深度学习 (DeepLearning) 基础 [2]---神经网络常用的损失函数

    深度学习 (DeepLearning) 基础 [2]---神经网络常用的损失函数 Introduce 在上一篇"深度学习 (DeepLearning) 基础 [1]---监督学习和无监督学习 ...

  9. 牛!Python 也能实现图像姿态识别溺水行为了!

    作者 | 李秋键 责编 | Carol 封图 | CSDN 下载自视觉中国 众所周知随着人工智能智能的发展,人工智能的落地项目也在变得越来越多,尤其是计算机视觉方面. 很多人学习python,不知道从 ...

  10. Python实现 QQ 半自动发送情话,我追到了女神

    之前追女神时候用的情话发送脚本,每次工作日上班开启电脑,就会唤醒QQ,然后发送一条情话给女神,自动唤醒QQ复制情话,不用担心遗忘,现在整理分享一下,妈妈再也不用担心我找不到对象了. 效果图: 很多人学 ...