一、需求
代码在windows机器本地编辑好了,需要在服务器测试环境同步验证。
1.1 sambas共享
假设服务机器开通sambas服务端口,并且windows防火墙允许访问。这时候可以在windows打开网盘一样,打开sambas共享的服务器文件夹,把代码工程放置于共享网盘,用IDE打开网盘文件夹的代码工程。
1.2 scp共享
因为windows机器一般处于办公网,为了内网安全,服务器和办公网一般隔离开,不是同一网段,需要办公时候使用跳板机连接两个网络。连接的认证或需要密码或者需要私钥。需要用到本地编辑大概是因为windows有一些强大的IDE。vs code或者jetbrain系列。
1.3 vim直接服务器编辑
这个就是比较直接,在服务器编辑代码,但是有些服务器多个开发用户共用一台虚拟机,大家使用容器隔离,有些时候,企业限定不允许安装一些个人插件,或者安装环境配置不能保证下次不被清除。linux流行的开发环境有:
1.4 svn或者git同步
当然git更流行,我们以git为例。git还分为有没有创建分支的权限。
1.4.1 有个人分支的权限
- 创建一个个人分支
git branch <你的分支名字> <commit Id>或者git branch <你的分支名字> <已经存在的分支>
- 基于当前所在的分支末梢并创建分支和checkout
git branch <你的分支名字> git checkout <你的分支名字> 。这两个命令也可以等价于git checkout -b <你的分支名字>
- 在你的分支修改改代码,完成之后再merge到master分支
1.4.2 无个人分支的权限
有种代码管理任务,提交到服务端的代码是必须被review过的干净的代码。所以有时候远程仓库设置不能创建个人分支。这个时候可以使用master的暂存区。比如gerrit会
Gerrit提供了一个特有的命名空间“refs/for/”用来定义我们的提交上传到哪个branch,且可以用来区分我们的commit是提交到Gerrit进行审核还是直接提交到Git仓库。
代码语言:javascript复制git push origin HEAD:refs/for/master
二、git的版本同步方式
2.1 比较好的方法
比如说国外开发团队比较好的开发流程啥,先提issue。这个issue会new一个同名的branch。这个branch添加你开发的代码,然后 在临时分支-提交代码-合并到master
2.2 中途需要多次提交
2.2.1 window机器提交更改
比如安装了tortoise git,在目录有git bash功能。开启一个bash终端
代码语言:javascript复制git diff --name-only 查看被修改的文件名
git add xxx 在增加要提交的文件,无论之前是否add,只要是再次修改,提交都需要add
git diff --staged 确认下是否加进来需要的commit了
git commit --amend
git push -f
五个步骤也可以合并成两个步骤:
代码语言:javascript复制git diff --name-only | xargs -L1 git add
git commit --amend && git push -f
2.2.2 linux开发环境下载更改
代码语言:javascript复制git fetch
git reset --hard origin/<你的分支名字>