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的远程仓库,相信这是一个艰难的坎,今天我就在此总结我的成功经验,帮助大家,共同学习.由于条件有限,我全部的 ...
随机推荐
- Python os.chroot() 方法
概述 os.chroot() 方法用于更改当前进程的根目录为指定的目录,使用该函数需要管理员权限.高佣联盟 www.cgewang.com 语法 chroot()方法语法格式如下: os.chroot ...
- PHP strspn() 函数
实例 返回在字符串 "Hello world!" 中包含字符 "kHlleo" 的数目: <?php高佣联盟 www.cgewang.comecho st ...
- C/C++编程笔记:C语言自增(++)和自减(--)运算符详解,笔记分享
一个整数类型的变量自身加 1 可以这样写: a = a + 1; 或者 a += 1; 不过,C语言还支持另外一种更加简洁的写法,就是: a++; 或者 ++a; 这种写法叫做自加或自增,意思很明确, ...
- 从入门到熟悉HTTPS的9个问题
原文:bestswifter https://juejin.im/post/58c5268a61ff4b005d99652a Q1: 什么是 HTTPS? BS: HTTPS 是安全的 HTTP ...
- 【BZOJ1426】收集邮票 题解 (期望)
题目:有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也很喜欢邮票,所以皮 ...
- Spring Boot上传文件(带进度条)
Spring Boot 上传文件(带进度条)# 配置文件 spring: freemarker: template-loader-path: classpath:/static/ ##Spring B ...
- JavaScript异步编程——Async/Await vs Promise
兼容性 提醒一下各位,Node 现在从版本 7.6 开始就支持 async/await 了.而就在前几天,Node 8已经正式发布了,你可以放心地使用它. 如果你还没有试过它,这里有一堆带有示例的理由 ...
- Android Studio--APK打包
首先在app的build.gradle里面加一下代码 lintOptions { checkReleaseBuilds false abortOnError false } 在上方Build里面找到G ...
- GitLab 配置模板
GitLab 配置模板 GitLab 使用模板和参数生成配置文件. 一般来说,我们会通过 gitlab.rb 文件修改配置,例如 Nginx 相关配置. gitlab.rb 只能使用特定的几个 Ngi ...
- MarkDown语法的详细使用教程
MarkDown语法 Markdown是一种纯文本格式的标记语言.通过简单的语法可以使普通文本内容具有一定的格式. 一. 标题 在要设置为标题的文字前面加#和空格 一个#和空格是一级标题,两个##和空 ...