SAE近期的优化,目前已经支持Git,本文将介绍如何使用Git在SAE上部署代码。
使用Git进行代码管理,首先要在本地安装Git客户端,下载链接:http://www.git-scm.com/download/
Git客户端的安装与配置过程在此略去不讲,谷歌一下可以找到许多相关的内容,文章重点介绍如何使用Git在SAE上部署代码。
本文例子中使用的操作系统为Windows 8.1,应用语言为Python,应用名称为gitsrc。
0. 代码管理方式的选择(典型的程序员计数)
在首次对应用进行代码管理时,有且仅有一次选择代码库管理方式的机会,这里我们选择Git。
此后应用的代码管理方式将不可变更(也就是说选定不可逆)
创建完成后,可以在页面上看到应用的Git仓库地址:https://git.sinaapp.com/gitsrc/
1. 使用git clone克隆代码仓库
在命令提示符(cmd)下,cd到工作目录(本例为E:\sae),执行命令:
git clone -o sae https://git.sinaapp.com/gitsrc
注:也可以在客户端直接执行上个命令
其中gitsrc应替换为正确的你自己的应用名称
按照提示输入安全邮箱和密码,执行成功后,提示检出内容为空。
注:上面标红的信息是指你 sae的信息
保存Git用户名和密码:
实现办法(win环境):
a、1. 在Windows中添加一个HOME系统环境变量,值为%USERPROFILE%
b、在“开始》运行”中打开%Home%,新建一个名为“_netrc”的文件。
c、添加如下内容,可以避免每次push时重复输入用户名和密码(未启用动态口令)
machine git.sinaapp.com login 安全邮箱 password 密码
添加一个Git远程仓库sae,地址为:https://git.sinaapp.com/gitsrc
git remote add sae https://git.sinaapp.com/gitsrc
注:如果在git clone时添加了 -o sae 参数,此步骤可以省略。
2. 首次创建分支(版本1)
在源码目录gitsrc下添加一个文件,例如index.wsgi,然后cd到源码目录下,执行如下指令:
cd gitsrc git add . git commit -am "init repo" git push sae master:1
打印信息如下:
Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 371 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://git.sinaapp.com/gitsrc * [new branch] master -> 1
3. 分支版本的切换
SAE Git代码仓库通过分支(Branch)的方式,支持多个并存的代码版本。
使用git checkout命令可以在版本之间进行切换,例如执行:
git checkout 1
Switched to branch '1' Your branch is up-to-date with 'origin/1'.
执行完毕后,即切换至分支1。
4. 新增和删除代码版本
当前位于分支1,执行下面的语句可以创建分支版本(例如版本2):
git branch 2
git push sae 2
执行如下命令,可以列出所有版本
git branch -a
从SAE服务器上删除版本2的代码。
git push sae :2
已经在SAE中指定为默认版本时,禁止删除。
提示错误信息:Permission denied: deleting default version is not allowed!
5. 向Git代码库提交代码变更
在gitsrc目录下变更代码文件,例如新增了文件foo.html
依次执行下面的语句,将变更提交至SAE Git代码库(分支版本1):
git add --all
git commit -am "add foo.html"
git push sae 1
对于Python应用,与SVN代码库不同,新增版本时并不会默认生成index.wsgi,开发者需要自行添加这个文件。
原文链接:http://bookshadow.com/weblog/2015/09/10/sae-git-introduction/
我对本文中部分内容进行补充
来源:https://www.cnblogs.com/huangyr/p/4885375.html