问题背景
开发的项目里需要调用服务器上部署的算法api,在本地测试的时候调用的是服务器的公网地址,但是把jar包部署到服务器上的时候就到调用服务器的本地地址。所以在代码中设置了一个状态码,在本地测试时状态码设置为0,在服务器部署时状态码设置为1,通过状态码来判断需要调用什么地址。
某次部署到服务器的时候忘记把状态码修改成1,因为不想再重新在本地重新提交一次代码,所以直接远程在服务器上修改了状态码。后续开发中又在本地对同一文件进行了更改并且push到了gitee,导致在下一次服务器部署时出现了git 冲突,也就是服务器修改前的版本不是gitee最新的版本,于是服务器拉取代码失败。
解决问题
其实服务器上只是修改了一下状态码,所以服务器上的修改其实是可以丢失的,用到了以下的命令来继续进行同步:
- git stash:将服务器上的代码暂存到栈中
- git pull:将远程的代码拉取到本地
- git stash pop:将暂存的代码与本地代码合并
- git push:提交到gitee上
由于服务器上代码的修改无关紧要,所以我只用前两步就解决了这个问题,但是这样每次把代码提交到服务器都要修改一下状态码实在太麻烦了,所以忍无可忍的我(终于想到这个办法的我)终于还是把状态码放入了配置文件中。
更多
其实之所以深入学习这几个命令还是因为刚好面试被阿里面试官问到了,而我刚好遇到了这个问题竟然没有答出来。。。程序员确实还是需要有一些探索精神的,加油吧,慢慢改变自己。