您的位置:首页 > 其它

git 自动化

2016-05-07 16:21 330 查看
先用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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git 项目管理 自动化