一、前言
正如钱钟书先生在《围城》一书中所说“围在城里的人想逃出来,城外的人想冲进去,对婚姻也罢,职业也罢,人生的愿望大都如此。”,以前工作日是要求现场办公,没有居家办公的时候,大家都非常渴望获得在家办公的自由,但一旦在家办公时间长了以后,又会怀念办公室的高效、协作,以及在办公空间内高品质的工作环境享受。 2022年3月底至6月初,对于工作于上海的小伙伴可谓记忆犹新,在无法现场办公的大背景下,各公司员工纷纷由现场转为线上远程办公。自己所在的公司通过前期办公信息资料的收集,也由现场及时切换为线上办公。历时2月的线上办公,在沟通工具、在线文档协作、项目管理、版本管理等方方面初步积累了丰富的实践经验,并形成此文以飨大家。
二、沟通工具:腾讯会议、行信
在公司现场办公,同事间面对面的交流使得沟通顺畅,简单而高效。居家办公状态下, 与同事无法面对面交流,团队写作受到诸多限制,没有好的远程办公工具会导致工作及沟通效率低,从而会使人感觉身心俱疲,远程办公是一定需要有匹配的远程工具的,如没有适合的远程会议工具软件及远程会议的流程,就会感觉到比起线下会议累很多,效果也不好,所以执行远程办公的企业一定要有适合的远程工具及制定相对应的流程和管理。
对于参会人数较多、会议时长较久的应用场景,大家普遍以腾讯会议的形式进行。对于参会人数较少,非正式临时会议,大家普遍通过微信语音聊天的形式进行。
安全机制方面,避免在微信等第三方通信工具内沟通工作内容。若需要与行内业务人员沟通,则需要使用行内专门的沟通工具-行信(优于企业微信)。
三、在线文档协作工具:WPS云文档
公司现场办公时,公司、团队内部信息收集,可在公司内网完成填写。
居家办公状态下,文档、报表如何在线协作编辑?就需要应用高效在线文档写作工具完成,公司选择采购WPS云文档形式进行员工信息的维护收集工作。开发小组内亦应用WPS云文档进行需求跟踪、问题记录。
四、项目代码版本管理工具:Git
项目开发过程中,对于项目代码版本管理应用Git作为版本管理工具,应用该版本管理工具,只要有网络,可以不受工作场所的约束。使用过程中,主要涉及分支创建、更新、合并、推送等操作。
做到熟练运用Git
进行版本维护,首先需要掌握工作区、本地仓库、远程仓库之间的关系,以及明白当前编辑文件处于哪个区?搞清楚通过何种方式变更文件所属状态。三区之间的维护动作及关系如下图所示:
项目开发进程中,对于多人并行开发,维护同一仓库工作场景,经常会出现文件合并冲突的情况,常见场景如下:
1. 改动同一分支
例如,我在本地修改好后待提交至远程仓库时,发现远程分支已经被改动了,此时我本地也被改动了就造成了冲突,无法进行push
或者pull
操作。
此时可以使用git stash
命令解决以上问题。
git stash save "本地缓存内容标识" //把本地的改动暂存起来;
git pull //拉取远端分支(此时本地分支会回滚到上次commit的情况,新的改动都已保存在了stash中);
git stash pop // 将栈顶改动内容重新加回本地分支,就可以继续修改了,当然,如果改好了就是add,commit,push操作
2. 不小心改动其他分支
当正在dev分支上开发某个项目,这时项目中出现一个bug,需要紧急修复,但是正在开发的内容只是完成一半,还不想提交,这时可以用git stash
命令将修改的内容保存至堆栈区,然后顺利切换到hotfix分支进行bug修复,修复完成后,再次切回到dev分支,从堆栈中恢复刚刚保存的内容。
或者由于疏忽,本应该在dev分支开发的内容,却在master上进行了开发,需要重新切回到dev分支上进行开发,可以用git stash
将内容保存至堆栈中,切回到dev分支后,再次恢复内容即可。
例如忘记切换分支,直接在master分支上做改动,这里假设我的分支是test分支。git操作步骤如下:
git stash save "本地缓存内容标识" // 把本地当前改动暂存起来,此时master分支就恢复到了上次拉取时的状态
git checkout test // 切换到需要改动的分支
git stash pop // 将改动pop到自己当前的分支
顾名思义,stash
就是一个栈,把需要暂存的文件存到栈中,把代码恢复到上次拉取的状态以进行操作,而git stash pop
就是让栈顶元素出栈并删除。
git stash apply
则是只取栈顶元素,但是不删除。
这样会有一个显而易见后果,如果我再次执行git stash
,新的改动将会出现在栈顶,栈中元素会越来越多,此时可以使用 git stash list
命令查看栈中元素,此时每个栈中元素会有自己对应的编号。
使用git stash apply stash@{0}
(0可以换成对应编号),来添加不同改动。同样,也可以 git stash drop stash@{0}
来删除对应改动。
git stash clear
可以清空栈列表。
使用git stash show
可以查看暂存做了哪些改动,默认 show 第一个存储,如果要显示其他存贮,后面加 stash@{$num}
,比如第二个 git stash show stash@{1}
。
git stash show -p
: 显示第一个存储的改动,如果想显示其他存储,命令:git stash show stash@{$num} -p
,比如第二个:git stash show stash@{1} -p
。
说明⚠️: 新增的文件,直接执行 stash
是不会被存储的,如果要保存这个新增的文件,需要首先执行 git add
命令把文件添加到git
版本控制中,然后再执行 git stash
命令进行缓存。
接下来说说git stash
与 git add
之间的关系。
-
git add
只是把文件加到git
版本控制里,并不等于就被stash
起来了,git add
和git stash
没有必然关系,但是执行git stash
能正确存储的前提是文件必须在git
版本控制中才行。 -
常规
git stash
的一个限制是它会一下暂存所有的文件。有时,只备份某些文件更为方便,让另外一些与代码库保持一致。一个非常有用的技巧,用来备份部分文件:
add
那些你不想备份的文件(例如: git add file1.js, file2.js
);
- 调用
git stash –keep-index
。只会备份那些没有被 add 的文件。 - 调用
git reset
取消已经add
的文件的备份,继续自己的工作。
其他常见命令图集如下:
五、远程协同办公工具:VDI
当所在项目工作组主要从事对外产品开发工作时,应用互联网就完全可以保障项目进展,对工作场所没有严格要求。但是,如果所在项目工作组主要从事对内产品开发,而且对工作环境有严格要求,例如:只能应用公司内网进行开发,项目完全维护在公司内网时,居家办公就面临严峻挑战。
远程协同如何保证高效、安全?
这是众多互联网公司在采购远程协同办公工具时首要考虑因素。
首先,需要保证有虚拟“云桌面”技术支持,尤其是VDI
,也就是虚拟桌面基础架构。但更重要的是,VDI云桌面对办公网络有严格要求,带宽必须足够给力,否则你就可能面临办公过程中随时断网的尴尬境地。要知道居住小区宽带并非办公专线,其被众多因素影响的稳定性势必造成工作体验与工作效率的直线下滑。
同时,VDI
本身也是一种高投资的多点办公解决方案,无论企业是否此前采购过这些设备,大规模使用都是非常不经济的选择。在被居家办公的大背景下,这也是众多互联网企业的无奈之举。
为保障VDI
远程桌面办公的安全性,需要在手机端装有动态令牌生成APP,以防云桌面被非法入侵。
六、小结
以上是自己居家办公时在沟通工具、在线文档协作工具、项目代码版本管理工具、远程协同办公工具等方面的应用经验分享,有关居家办公的更多心得体会,遭遇的囧事、尴尬事请移步另一篇博文《连续居家办公68天后——我的2022居家办公所感所想| 社区征文》。
七、拓展阅读
- 《连续居家办公68天后——我的2022居家办公所感所想| 社区征文》