由于服务器性能好,编译速度快,因此在公司内网环境进行OB一些issue的开发。下面说一下自己开发以及提交代码的步骤。步骤确实麻烦一些,如果有同样场景的同学可以参考一下。
1、个人电脑中源码的feature分支代码打包发送到离线环境服务器,发送后就不要再动自己电脑里的代码了。
2、拷贝到了离线环境后,执行一次git commit,此时你的离线环境应当是一个干净的本地仓库,接下来你就可以开始在离线环境的分支写代码了。
3、写完了代码,再commit一下,
git diff <拷贝到离线环境后的第一次commit版本号> <改完代码后commit的版本号> > diff.patch
生成一个diff.patch文件。把patch文件传到你的个人电脑。
4、把patch文件应用到个人电脑本地的feature分支上,
git apply --whitespace=fix ..\diff.patch
能够在控制台看到哪些文件发生了变化,vscode中也能看到哪些文件发生了变化。
5、看一下哪些代码发生了变动,没什么问题就可以commit了。git status看一看状态。
(中间如果有你的多次commit,考虑通过git rebase压缩为一个commit,以便提交pull request)
6、切换到个人电脑的master分支,拉取远程fork仓库的最新版本,之后合并feature开发分支至master分支。
git merge feature分支
7、如有解决冲突。
8、merge之后会有如图所示情况。
注:tmp代表开发分支,merge前HEAD指向的版本号是8024d。
之后需要rebase,将中间的commit压缩。
git rebase -i HEAD~2
执行上述命令后,终端就自动显示rebase文件的编辑页面,不需要做任何改动。直接“冒号 q” 。
可看到那merge branch tmp的commit记录就没有了。
下次开发新的需求的时候还是如同上述8个步骤,不开发的时候没事儿的时候可以同步一下自己的远程fork仓库。
目前是我自己用的一个方法,如果有更好的离线环境开发和git使用的方式也请提出建议。