git 自动化

先用git clone http通道下来

git remote -v 

查看中央版本库地址
git remote rm origin 
git remote -v 

git remote add origin git通道地址

秘钥(公钥)生成

ssh-keygen(以oschina为例,该秘钥要服务器和oschina公用!!)
找到生成的秘钥 方法项目管理 秘钥管理中 即可以后都不用打密码l !!!!!!

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"   邮箱就是自己oschian的邮箱

生成和oschina连接的秘钥



cat ~/.ssh/id_rsa.pub

cat会出现ssh rsa开头的信息 将全部复制下 (oschina上将最后面的邮箱去掉)

   邮箱去掉后就是你的oschina public key 
    http://git.oschina.net/keys 加上你的oschina key  你push就不需要打密码

将你的秘钥加到oschina上

然后终端输入

ssh -T git@git.oschina.net
Welcome to Git@OSC, yourname! 

就OK了

接下来是将此秘钥增加到你的服务器上!

vim ~/.ssh/au+tab键(补全)

vim ~/.ssh/authorized_keys

如果没有这个文件
就 mkdir ~/.ssh 
   vim ~/.ssh/authorized_keys
 然后 cat ~/.ssh/id_rsa.pub(在本机执行)
 此时将邮箱加上写入这个文件就可以免密码登陆

加上去就和服务器SSh秘钥登录!!

自动化部署!!
#!/usr/bin/env bash
echo 'commit messagr:'

read msg

git pull

git add .
git commit -a -m '$msg'
git push  origin master

ssh root@120.76.125.13 "cd /root/data_analysice/crawler && git pull"

以上自动化部署脚本还存在的一定的问题,就是有时框架会产生Runtime目录,这时会导致服务器和本地Runtime不一致,这时要将Runtime目录移除版本库控制

```

Git rm -r -n --cached  */Runtime/\* 
git rm -r --cached  */Runtime/\* `
git commit -m"移除Runtime目录下所有文件的版本控制" 

git push origin master   //提交到远程服务器`
touch .gitignore

然后建立一个.gitignore文件
Runtime/ 表示不跟踪Runtime目录 ,将此文件 commit 并 push
之后 git status 就可以看到不再提示你add Runtime目录了

最后再讲一下自动化的原理实现

1:git分两种公钥,一种是项目公钥,持有该公钥只能clone和pull项目,该公钥成为项目公钥(一般用于服务器),可以在项目管理中为服务器添加项目公钥。
2:二是用户公钥,该公钥拥有push权限,一般用于用户,该公钥配置是在git平台中配置 以oschaina为例,
http://git.oschina.net/keys
去这里部署的公钥拥有push权限

git切换远程分支

1:如果本地有远程分支的情况下:

git branch 分支名字

2:如果本地没有远程分支的情况下:

//查看所有分支
git branch -va
git fetch origin
//切换分支
git check 远程分支名 (origin/dev)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值