各位大佬,请教一下如何在断网的环境下同步代码?

2021-01-14 19:15:09 +08:00
 biguokang

先说一下场景,因为业务关系,客户很多是军警或者涉密部门

所以你懂的,他们的内网是和外网隔离的。

别说连外网,插个自己的 u 盘都报警。。。

所以目前把系统代码更新到现场,方法是公司里面写好后,把源码发到现场人员自己的电脑,然后使用现场单位提供的 [特供 u 盘] ,把代码覆盖到内网机器。。

而有时候需要在单位现场改代码,然后同步回公司,一般是内网机器下的代码改好后,把改动过的代码文件通过单位提供的 [特供 u 盘] ,拷到自己的电脑,然后用自己的电脑连外网同步到公司。。。。

有什么好的工具或者方法,不用手动复制粘贴呢,每次这么搞都很操蛋。。。

说白了,如何能轻松方便的往隔离外网的局域网机器里同步代码呢????

6271 次点击
所在节点    程序员
71 条回复
omghonor
2021-01-15 10:19:48 +08:00
相似业务,不过我们是金融行业,生产网络是专网,代码上传只能靠硬盘,下载要走流程。无解的。信息安全和稳定是头等大事。
zyq2280539
2021-01-15 10:23:26 +08:00
git patch
biguokang
2021-01-15 10:38:43 +08:00
@LGA1150 对对对,就是想要这种解决方案,我去搜搜看
biguokang
2021-01-15 10:42:00 +08:00
@340244120w 1 、2 这个可以,因为内网的要求只是不连外网,装个 git 没问题,所以把 u 盘做成一个 git 库可以。。。至于第 3 个其实无解,因为整个项目加起来可能有上 g 大,然后我们自己的电脑连外网都是用手机热点连外网的,流量伤不起,所以之前才要一个一个文件抽出来
yingfengi
2021-01-15 10:44:28 +08:00
@loading 所谓安全 U 盘。。。可以带加密
biguokang
2021-01-15 10:45:34 +08:00
@LGA1150 你这个可靠,就是我想要的解决方案,其他人都觉我想要把公安电脑暴露在外网
yingfengi
2021-01-15 10:45:52 +08:00
加网闸,然鹅你的申请不会通过的
LLLYang
2021-01-15 10:50:53 +08:00
没啥用,我现在也是这样的
LLLYang
2021-01-15 10:51:20 +08:00
只能自己搞代码对比软件,然后一个一个类去对
biguokang
2021-01-15 10:53:00 +08:00
@wozhizui 我的想法是再单位提供的 [特供 u 盘] 里放个 git 库,通过 u 盘来 git pull git push
young1lin
2021-01-15 11:04:03 +08:00
感觉你在刀尖上干活啊 [doge]
Judoon
2021-01-15 11:16:12 +08:00
把需要在前场变更的 git 仓库单独用 docker 建立一个 gitlab,数据以及 docker 镜像都放在移动硬盘。
每次使用的时候,插上硬盘,用 docker 把 gitlab 仓库在本地起起来,改完代码同步到本地的 gitlab 。拿回公司类似操作同步到公司总的 gitlab 服务器上。
为以防万一,硬盘可以做一些镜像备份或者在公司做实时同步之类的
qiumaoyuan
2021-01-15 11:20:39 +08:00
直接插着 U 盘写代码不就完了,一来编写和保存代码根本没多少 IO 工作,二来现在的 U 盘读写也不差,为啥非得拷出来?
IMCA1024
2021-01-15 14:00:04 +08:00
3 、4 年前,曾经一项目是 云南省公安厅的,经历跟楼主差不多 没办法 老老实实。
SmiteChow
2021-01-15 14:23:55 +08:00
git format-patch
git am
no1xsyzy
2021-01-15 14:55:54 +08:00
你是不是忘记了 git 最初的使用方式?
邮件,发来发去。
邮件换成专用 U 盘没有什么本质区别。
iSecret
2021-01-15 15:25:03 +08:00
@Puteulanus 本地路径做 remote 仓库,刚刚实验了一下,可以 pull,但是 push 会报错,不知道是不是姿势不对。


```shell
$ git push origin master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 257 bytes | 257.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: is denied, because it will make the index and work tree inconsistent
remote: with what you pushed, and will require 'git reset --hard' to match
remote: the work tree to HEAD.
...
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '/Volumes/NONAME/test.git'
...
```
beryl
2021-01-15 16:23:26 +08:00
没有办法,之前做过类似的,甚至问题日志都是对着屏幕,手抄到纸上。
或者换个思路,在客户现场的内网环境电脑作为主开发,相当于驻场
niub
2021-01-15 16:58:07 +08:00
2019 年的时候去某银行 POC 的时候,也是这样哈哈,只不过当时用的云主机开发+部署
vivisidea
2021-01-15 23:01:28 +08:00
可以走 docker 部署么?每次直接同步镜像,而不是代码。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/745005

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX