shell脚本同步私人git仓库
前言
分别在个人电脑、个人服务器、码云三个地方建立了数据仓库用于保存自己的各种数据,通过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仓库的更多相关文章
- shell脚本批量调用git命令
有时候想对本地的几个repository都进行一下pull,一个一个操作比较繁琐,所以写了个shell脚本进行简化操作. git_pull_all.sh #!/bin/sh clear functio ...
- gitlab webhook php exec 调用 shell 脚本。shell 脚本中调用 git pull 命令无法执行。
情况如下: 我在ubuntu server 14.04 上面安装了gitlab,来托管项目代码.然后想通过gitlab的web hook 功能来做测试服务器代码自动化更新代码功能.现在遇到一个问题:就 ...
- windows调起git bash执行sh脚本定时统计git仓库代码量
本来挺简单的一个东西硬是弄了两天 心力交瘁 找了网上不少资料 整理一下发给大家 首先是统计每个人的代码量的git命令 在网上找的 我这里做了以下修改 git log --format='%aN'|so ...
- 在linux写一个shell脚本用maven git自动更新代码并且打包部署
服务器上必须安装了git maven jdk 并且配置好环境变量 实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本 kill.sh ...
- shell脚本自动更新git
gitpull.sh #!/bin/bash cd /home/wwwroot/default/mouse && git pull cd /home/wwwroot/default/s ...
- windows下数据库文件使用脚本同步到linux下的mysql数据库中
1.背景 windows server 2008 下 每天会有 *.sql数据文件 需要上传到linux 中的mysql数据库中 而运维人员是在 windows server 下使用 xshell 连 ...
- Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用
一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境 2> 练习命令历史.命令别名 3 ...
- 该死的端口占用!教你用 Shell 脚本一键干掉它!
1. 前言 大家好,我是安果! 在 Web 开发中,经常会遇到「端口被占用」的场景 常规解决方案是: 使用 lsof -i 命令查询占用端口的进程 PID 利用 kill -9 PID 干掉目标进程 ...
- OSChina中远程GIT仓库同步探索
GIT平台在OSChina中的搭建帮了我们很大的忙,但如何将本地GIT仓库上传至OSChina的远程仓库,相信这是一个艰难的坎,今天我就在此总结我的成功经验,帮助大家,共同学习.由于条件有限,我全部的 ...
随机推荐
- The JOIN operation -- SQLZOO
The JOIN operation 注意:where语句中对表示条件的需要用单引号, 下面的译文使用的是有道翻译如有不正确,请直接投诉有道 01.Modify it to show the matc ...
- Composer 安装与使用
Composer 安装与使用 分类 编程技术高佣联盟 www.cgewang.com Composer 是 PHP 的一个依赖管理工具.我们可以在项目中声明所依赖的外部工具库,Composer 会帮你 ...
- 2020牛客暑假多校训练营 第二场 G Greater and Greater bitset
LINK:Greater and Greater 确实没能想到做法. 考虑利用bitset解决问题. 做法是:逐位判断每一位是否合法 第一位 就是 bitset上所有大于\(b_1\)的位置 置为1. ...
- 关于c/c++中的二维数组与指针
设a是一个一维数组的数组名,则a表示其第一个元素的地址(即&a[0]),而&a表示整个数组的地址!尽管两者值相同(&a[0]==&a),因此&a是地址,*(&a ...
- 关于if语句的细节
看下面两个语句: if(p->key>key) p=p->left; if(p->key<key)p=p->right; 上面的写法是很有问题的: 如果第一条条件满 ...
- mac 教你如何在Mac上搭建自己的服务器——Nginx
WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透. 有兴趣的朋友可以自行google或者baidu ...
- OAuth2.0-4整合网关
.antMatchers("/**").access("#oauth2.hasScope('scope1')")上面这行代码,只是控制大范围的访问权限,具体到方 ...
- Chrome划词翻译-Saladict
Saladict 沙拉查词是一款专业划词翻译扩展,为交叉阅读而生.大量权威词典涵盖中英日韩法德西语,支持复杂的 划词操作.网页翻译.生词本.PDF,以及 Vimium 全键盘操作 . 迄今为止最好用的 ...
- excel-填充
问题[1]:需要将一列元素的空全部填充为NULL 选定列->F5定位(推荐先定位行总数)->再次F5定位(选空值)->在选定后的一个框内输入NULL->ctrl+enter 完 ...
- Springboot使用Shiro-整合Redis作为缓存 解决定时刷新问题
说在前面 (原文链接: https://blog.csdn.net/qq_34021712/article/details/80774649)本来的整合过程是顺着博客的顺序来的,越往下,集成的越多,由 ...