高效协同开发

一、需求

代码在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仓库。

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终端

git diff --name-only 查看被修改的文件名
git add xxx 在增加要提交的文件,无论之前是否add,只要是再次修改,提交都需要add
git diff --staged 确认下是否加进来需要的commit了
git commit --amend
git push -f

五个步骤也可以合并成两个步骤:

git diff --name-only | xargs -L1 git add
git commit --amend && git push -f 

2.2.2 linux开发环境下载更改

git fetch
git reset --hard origin/<你的分支名字>

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维经验分享

git操作:在CentOS7上面搭建GitLab服务器

首先要在CentOS系统上面安装所需的依赖:ssh、防火墙、postfix(用于邮件通知)、wegt,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问...

8030
来自专栏运维经验分享

git操作:在CentOS7上面搭建GitLab服务器

首先要在CentOS系统上面安装所需的依赖:ssh、防火墙、postfix(用于邮件通知)、wegt,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问...

8910
来自专栏.Net Core技术分享

ASP.NET Core 中间件基本用法

ASP.NET Core的处理流程是一个管道,而中间件是装配到管道中的用于处理请求和响应的组件。中间件按照装配的先后顺序执行,并决定是否进入下一个组件。中间件管...

8550
来自专栏武培轩的专栏

《Ansible自动化运维:技术与最佳实践》第三章读书笔记

本章主要通过对 Ansible 经常使用的组件进行讲解,使对 Ansible 有一个更全面的了解,主要包含以下内容:

8330
来自专栏机器学习算法与Python学习

增强 Jupyter Notebook 的功能,这里有 4 个妙招

Jupyter Notebook 是所有开发者共享工作的神器,它为共享 Notebooks 提供了一种便捷方式:结合文本、代码和图更快捷地将信息传达给受众。目前...

9250
来自专栏机器之心

增强Jupyter Notebook的功能,这里有四个妙招

Jupyter Notebook 是所有开发者共享工作的神器,它为共享 Notebooks 提供了一种便捷方式:结合文本、代码和图更快捷地将信息传达给受众。目前...

8730
来自专栏Java建设者

认知IO流之 — InputStream

InputStream 是一个抽象类,这个抽象类是代表所有字节流输入的父类,应用程序需要定义一个InputStream 的子类,该子类需要提供一个返回下一个输入...

5410
来自专栏运维经验分享

gitlab访问错误Whoops, GitLab is taking too much time to respond

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

12420
来自专栏学神IT知识小百科

kali Linux:配置sshd服务并使用xshell连接(网络安全基础)

root@xuegod53:~# vim /etc/ssh/sshd_config

21630
来自专栏Golang开发

HBase的部署

本文的HBase安装是在Hadoop已经安装好的基础上实现的,所以之前要导出JAVA_HOME、HADOOP_HOME( 单机模式不需要,伪分布式模式和分布式模...

12270

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励