跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 各位大佬,请教一下如何在断网的环境下同步代码?
未分類
18 1 月 2021

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

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

資深大佬 : biguokang 8

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

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

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

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

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

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

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

大佬有話說 (70)

  • 資深大佬 : exip

    你确定你把想要的功能实现了,还有回家过年?

  • 資深大佬 : polyang

    没办法吧?要是有办法的话,人家搞内网的意义在哪儿?

  • 資深大佬 : polyang

    @exip 哈哈,这要是实现了,就相当于泄密了。

  • 資深大佬 : tiglapiles

    搞个跳板

  • 資深大佬 : lizytalk

    就算对方的隔离有漏洞也别作死…

  • 資深大佬 : MeteorCat

    军警涉密部门你还敢这么干

  • 資深大佬 : whitehack

    老老实实的吧.别犯法.

  • 資深大佬 : php8

    git 可以离线使用,把 repo 打个 zip 包,手动复制 zip 包,代码变更记录交给 git 管理

  • 資深大佬 : hinate

    坚持向内同步,不要反向同步。

  • 資深大佬 : v2tudnew

    我觉得如果实现了,是不是可以用作黑入呢?那是不是可以免费居住了呢?

  • 資深大佬 : kaneg

    不管技术能不能做到,你都不能以身试法。

  • 資深大佬 : testver

    @tiglapiles 这样就是要准备吃不花钱的饭了

    能否准备一台机器,这台机器只做同步,采用物理网线插拔,同时只能接一个网。

  • 資深大佬 : 7654

    windows 的公文包

  • 資深大佬 : czfy

    对于这类型客户,你首先要想的是这是否合法合规,而非是否方便
    否则上面很多人已经提过了,很容易就进去了

  • 資深大佬 : EastLord

    把代码背下来

  • 資深大佬 : loading

    居然还能用特种 U 盘,应该用光盘啊。

  • 資深大佬 : mengyx

    git bundle 了解一下 https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E6%89%93%E5%8C%85
    或者 git patch 也可以

  • 資深大佬 : jimmyismagic

    patch 再 apply 回去

  • 資深大佬 : AmitabhaPk

    你这是找死啊兄弟,保密是天条。。。

  • 資深大佬 : dorothyREN

    @czfy #14 这不是很容易,是肯定

  • 資深大佬 : boris93

    这种地方我只强调三个规矩

    合规

    合规

    还是,他妈的,合规

  • 資深大佬 : redtea

    要是实现需求了,要吃花生米了。

  • 資深大佬 : LGA1150

    git format-patch 或 git diff 生成补丁
    拷贝到目标机后再 git am 或 git apply 打补丁

  • 資深大佬 : LGA1150

    顺便补充下,git format-patch 生成的补丁是可以直接当电子邮件发送的,很多开源项目的维护也是靠的电子邮件发补丁,包括 Linux 内核

  • 資深大佬 : shijingshijing

    怎么方便怎么来,一波骚操作,后半辈子就不愁吃住了。

  • 資深大佬 : wzzzx

    不想努力了嘛?

  • 資深大佬 : janus77

    前几个月还有新闻呢,医院系统 运维私自在外网访问内网机器 然后系统出故障了导致收入损失上千万 人蹲号子了

  • 資深大佬 : janus77

    @janus77 #27 你这种情况就不止是蹲号子了 直接断头饭吧

  • 資深大佬 : wc951

    看来你们单位保密考试还是考的少了,去复习一下涉密人员管理条例以及国家保密法

  • 資深大佬 : Puteulanus

    搜了一下,git 支持添加本地路径作为 remote https://superuser.com/questions/1367571/using-git-across-multiple-systems-without-network-access/1367582

    特供 U 盘里直接拷整个 repo,当成 git 库来用怎么样,内网机器改完打个 commit,push 到特供 U 盘 repo,特供 U 盘插到你电脑上,你本地 repo pull 一下,联网了再 push 回公司 repo

  • 資深大佬 : SIGEV13

    商业机密是民法,国家机密是刑法。老哥量力而行

  • 資深大佬 : fiveelementgid

    您好,我是大陆北方网友,对您所说的技术要求很感兴趣

  • 資深大佬 : swulling

    30 正解,在 U 盘里放一个 repo

  • 資深大佬 : 340244120w

    1 git patch,缺点是内网机器也需要装 git.

    2 装个文件对比工具,内网机器保留两份源码,用其中一份修改,另一份用来被对比。最后用软件把差异文件导出来。

    3 最简单粗暴的还是把修改后的项目从内网机器上压缩拷回来(只复制粘贴一次),回来直接覆盖本地项目不就可以了吗。
    也完全不用拷 git repo

  • 資深大佬 : 614457662

    @fiveelementgid 不是南方网友才对嘛 手动狗头

  • 資深大佬 : mcone

    这年头,还真有自己找花生米吃的……

    考试考少了 + 1

  • 資深大佬 : CloseToWheat

    本地装 git 不够嘛?在内网提交到本地,到外网直接 push 啊

  • 資深大佬 : myd

    git format-patch 生成补丁

  • 資深大佬 : wozhizui

    你在内网环境搭建个 git 服务器不就可以了

  • 資深大佬 : wozhizui

    然后统一由一个技术管理者,每天人肉将这个 git 服务器的硬盘插拔下来,带回你的公司。
    这种场景,只能人肉插拔。

  • 資深大佬 : omghonor

    相似业务,不过我们是金融行业,生产网络是专网,代码上传只能靠硬盘,下载要走流程。无解的。信息安全和稳定是头等大事。

  • 資深大佬 : zyq2280539

    git patch

  • 主 資深大佬 : biguokang

    @LGA1150 对对对,就是想要这种解决方案,我去搜搜看

  • 主 資深大佬 : biguokang

    @340244120w 1 、2 这个可以,因为内网的要求只是不连外网,装个 git 没问题,所以把 u 盘做成一个 git 库可以。。。至于第 3 个其实无解,因为整个项目加起来可能有上 g 大,然后我们自己的电脑连外网都是用手机热点连外网的,流量伤不起,所以之前才要一个一个文件抽出来

  • 資深大佬 : yingfengi

    @loading 所谓安全 U 盘。。。可以带加密

  • 主 資深大佬 : biguokang

    @LGA1150 你这个可靠,就是我想要的解决方案,其他人都觉我想要把公安电脑暴露在外网

  • 資深大佬 : yingfengi

    加网闸,然鹅你的申请不会通过的

  • 資深大佬 : LLLYang

    没啥用,我现在也是这样的

  • 資深大佬 : LLLYang

    只能自己搞代码对比软件,然后一个一个类去对

  • 主 資深大佬 : biguokang

    @wozhizui 我的想法是再单位提供的 [特供 u 盘] 里放个 git 库,通过 u 盘来 git pull git push

  • 資深大佬 : young1lin

    感觉你在刀尖上干活啊 [doge]

  • 資深大佬 : Judoon

    把需要在前场变更的 git 仓库单独用 docker 建立一个 gitlab,数据以及 docker 镜像都放在移动硬盘。
    每次使用的时候,插上硬盘,用 docker 把 gitlab 仓库在本地起起来,改完代码同步到本地的 gitlab 。拿回公司类似操作同步到公司总的 gitlab 服务器上。
    为以防万一,硬盘可以做一些镜像备份或者在公司做实时同步之类的

  • 資深大佬 : qiumaoyuan

    直接插着 U 盘写代码不就完了,一来编写和保存代码根本没多少 IO 工作,二来现在的 U 盘读写也不差,为啥非得拷出来?

  • 資深大佬 : IMCA1024

    3 、4 年前,曾经一项目是 云南省公安厅的,经历跟主差不多 没办法 老老实实。

  • 資深大佬 : SmiteChow

    git format-patch
    git am

  • 資深大佬 : no1xsyzy

    你是不是忘记了 git 最初的使用方式?
    邮件,发来发去。
    邮件换成专用 U 盘没有什么本质区别。

  • 資深大佬 : iSecret

    @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

    没有办法,之前做过类似的,甚至问题日志都是对着屏幕,手抄到纸上。
    或者换个思路,在客户现场的内网环境电脑作为主开发,相当于驻场

  • 資深大佬 : niub

    2019 年的时候去某银行 POC 的时候,也是这样哈哈,只不过当时用的云主机开发+部署

  • 資深大佬 : vivisidea

    可以走 docker 部署么?每次直接同步镜像,而不是代码。。

  • 資深大佬 : dingwen07

    如果有的话,试试看用麦克风和扬声器组网

  • 資深大佬 : Puteulanus

    @iSecret 试试 git clone –bare /path/to/repo ?

    参考:
    https://stackoverflow.com/questions/44406360/git-1-9-remote-error-receive-denycurrentbranch
    https://stackoverflow.com/questions/2199897/how-to-convert-a-normal-git-repository-to-a-bare-one

  • 資深大佬 : elintwenty

    如果可以 docker 部署的话,直接切换镜像仓库进行同步就实现这些功能了,非常简单,就是拷贝镜像过程可能比直接拷贝代码长一些

  • 資深大佬 : user0

    刚刚试了一下 git 本地仓库,仅供参考:

  • 資深大佬 : user0

    @user0 不小心回车了,重发

  • 資深大佬 : user0

    # 以下操作在客户电脑

  • 資深大佬 : user0

    1. cd proj-src #proj-src 为已开发的代码路径
    2. git init
    3. git add -A && git commit -m “Initial commit”

    然后使用 u 盘把客户电脑上的代码仓库拷到自己的电脑上, 这个步骤只需要做一次
    以后客户的代码一旦变更,仍然使用 git 提交到本地的仓库,不需要 git push, 然后将变更使用 git format-patch 生成 patch 文件, 最后用 u 盘把 patch 拷贝到自己电脑上就行了

  • 資深大佬 : qian19876025

    成都的外包?

  • 資深大佬 : wolong

    我以前做过内网涉密系统维护,只能用光盘拷文件,一插 u 盘就报警,虽然不至于坐牢,但是差点给我开了,后来研究了内网的报警系统,分析是系统会检测新增磁盘的可写性,把 u 盘设为只读应该没问题。然后大胆试了一下,果然没报警了。后来请示了领导问能不能用 U 盘这么用,领导说只要系统不报警随便你怎么玩。
    我维护的那个系统安全级别比公安网低,主还是按规程来,麻烦就麻烦点,反正都计算在工作量里了,别节外生枝。既然都要插 U 盘,复制粘贴和 push pull 又有多大区别。

  • 資深大佬 : sprite82

    内网的机器装一个 git,建立一个本地仓库,然后通过这个本地仓库在内网开发,出来时把整个仓库拷出来。然后在外面把这个仓库的提交记录什么的全都 pull 到你自己的电脑上,并进行 merge 等操作。同理 进去的时候,把外面的 git 仓库带进去即可。而不是一个个文件拷贝

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具