[求助] git:如何把外网远程仓库某次提交之后的所有 commit push 到内网的 origin?

2023-01-29 10:59:18 +08:00
 kaifeiji

背景

公司有涉密业务,所以一直是内网开发。

由于之前多次的疫情封控,公司将一部分非涉密项目迁移到互联网,方便居家办公。

后来尝到甜头,索性就在外网了,但还是要同步回去,因为测试需要数据,数据必须在内网环境。

我之前的做法,是从内网pull最新,push到外网,内网不再提交,外网的commit定期push回内网。

问题

这次同事有个项目也要迁出来,结果呢,他直接git clone --depth=1,然后 push 到了外网仓库。

经过一段时间的工作,积累了几百个commit,要push回内网的时候,才发现不行。

如果直接覆盖内网仓库,会丢失commit记录,影响内网测试的问题溯源。

我的问题是:怎么把外网的commit无伤的push回内网?

当然,提交回内网,我下一步还要把外网仓库重建,保持和内网仓库的一致性,方便后续定期同步。

726 次点击
所在节点    问与答
4 条回复
Rache1
2023-01-29 14:26:58 +08:00
cherry-pick ?直接 merge 应该也是可以的吧
momocraft
2023-01-29 14:32:49 +08:00
什么是"才发现不行", 错误信息是什么
lookStupiToForce
2023-01-29 14:40:39 +08:00
rebase

zhuanlan[.]zhihu[.]com/p/156726632
kaifeiji
2023-01-30 09:52:25 +08:00
@lookStupiToForce 感谢,用 rebase 搞定了。

命令行挑 commit 太费劲了,用 Tortoise Git 弄的,图形界面选择要合并回内网的 commit ,rebase 到内网的 origin ,push 搞定。

然后把外网的库删了重建,内网的再同步过去,这次好啦!

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

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

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

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

© 2021 V2EX