2.3:代码版本升级与回退
2.3.1:代码版本升级
代码版本升级的操作流程同“代码 Clone 与 Push”的流程一致。
在进行代码的版本升级编写前,确保从Gitlab上clone了最新的项目版本。
下面将test-software/test-app1/index.html的版本升级成v2。
2.3.1.1:Clone/Pull 项目
在重新克隆项目前,先将本地的项目文件删除:
root@node111:~# cd /workspace/
root@node111:/workspace# rm -rf test-app1/
克隆:
root@node111:/workspace# git clone git@192.168.1.121:test-software/test-app1.git
也可以使用
git pull
,只拉取本地和服务端不一致的内容,节约时间。root@node111:/workspace/test-app1# git pull Username for 'http://192.168.1.121': yqc Password for 'http://yqc@192.168.1.121': Already up to date.
2.3.1.2:编写项目代码
这里添加一行,标识这是v2版本的页面文件:
root@node111:/workspace# vim test-app1/index.html
<h1> testapp-1 page v1 </h1>
<h1> testapp-1 page v2 </h1>
2.3.1.3:提交代码
按步骤将代码提交到Gitlab服务端,完成版本升级。
git add:
root@node111:/workspace# cd test-app1/
root@node111:/workspace/test-app1# git add .
git status 可以查看当前的代码修改状态:
root@node111:/workspace/test-app1# git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: index.html
git commit:
root@node111:/workspace/test-app1# git commit -m "v2"
[master da92e98] v2
1 file changed, 1 insertion(+)
git push:
root@node111:/workspace/test-app1# git push
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 268 bytes | 268.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To 192.168.1.121:test-software/test-app1.git
e6531ba..da92e98 master -> master
2.3.1.4:Web 端验证
2.3.2:代码版本回退
如果升级到v2后,测试有bug,需要回退到v1版本重新进行代码编写,这时需要进行代码的版本回退。
2.3.2.1:Clone/Pull 项目
在代码回退前,同样需要将完整版本的代码clone下来(就算本地有,也最好再克隆一份,确保与服务端的版本状态一致)。
root@node111:~# cd /workspace/
root@node111:/workspace# rm -rf test-app1/
root@node111:/workspace# git clone git@192.168.1.121:test-software/test-app1.git
也可以使用git pull
,只拉取本地和服务端不一致的内容,节约时间。
root@node111:/workspace/test-app1# git pull
Username for 'http://192.168.1.121': yqc
Password for 'http://yqc@192.168.1.121':
Already up to date.
2.3.2.2:版本回退
版本回退有两种方式:
-
采用步进的方式,回滚到上个版本、上上个版本……
git reset --hard HEAD^
、git reset --hard HEAD^^
…… -
通过指定版本的commit SHA(提交码),回退到指定版本。
git reset --hard da92e981
提交码 commit SHA 的查看方式一:
提交码 commit SHA 的查看方式二:
root@node111:/workspace/test-app1# git reflog
da92e98 (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: clone: from http://192.168.1.121/test-software/test-app1.git
执行版本回滚,将test-app1的版本在本地回退至v1:
root@node111:/workspace/test-app1# git reset --hard HEAD^
HEAD is now at e6531ba v1
验证:
root@node111:/workspace/test-app1# cat index.html
<h1> testapp-1 page v1 </h1>