git - 剪切后连接 git 历史记录
问题描述
我的两个回购来自同一个项目。我在提交后做了一个历史记录3
,现在只使用 Repo ProjectnameWorking。
git log回购“项目名称存档”:
30114b2afac5d1c5a968441151ee8f91fc015ff3 4
9aa472d04501a14b5b704fde32445461f99f539a 3
1d0e5abe5daf60c0d86819938ba1aefd44b87ff5 2
766f4880e8ccf61bdc718dfae62466f800ae8119 1
git log回购“项目名称工作”:
2932c4b8ea681f0a97bf151ccc46d2044e8e5a50 5
27ec1a4618f1bf0025b8ba83fd69c2607cdf78d4 4
有没有办法稍后将历史记录和项目文件连接到一个?
git log回购“项目名称”
2932c4b8ea681f0a97bf151ccc46d2044e8e5a50 5
27ec1a4618f1bf0025b8ba83fd69c2607cdf78d4 4
9aa472d04501a14b5b704fde32445461f99f539a 3
1d0e5abe5daf60c0d86819938ba1aefd44b87ff5 2
766f4880e8ccf61bdc718dfae62466f800ae8119 1
编辑:
- 在 Repo“ProjectnameArchiv”提交 4 - 从 cut 获取新哈希
解决方案
是的,这是可能的,但其中一个项目的 SHA 会发生变化:
创建一个通用的远程仓库:
/some/other/path> git init . --bare
ProjectnameArchiv
在at创建一个分支9aa472d04501a14b5b704fde32445461f99f539a
并将其推送到远程:ProjectnameArchiv> git branch merge-base 9aa472d04501a14b5b704fde32445461f99f539a ProjectnameArchiv> git remote add origin file:///some/other/path ProjectnameArchiv> git push --all
在另一个 repo 中执行相同的操作,但使用 fetch 而不是 push:
ProjectnameWorking> git branch working-top 2932c4b8ea681f0a97bf151ccc46d2044e8e5a50 ProjectnameWorking> git remote add origin file:///some/other/path ProjectnameWorking> git fetch origin
挑选第一个工作提交到存档分支:
ProjectnameWorking> git checkout -b archive origin/merge-base ProjectnameWorking> git cherry-pick 9aa472d04501a14b5b704fde32445461f99f539a
如果您只有几个提交,您可以继续挑选,但对于更大的数量,将工作分支的其余部分重新定位到存档分支上会更快:
ProjectnameWorking> git rebase --onto archive 9aa472d04501a14b5b704fde32445461f99f539a working-top
您可以添加 git 的
-i
选项以在启动之前检查它在做什么,如果出现问题则中断该过程。
之后,工作存储库的更改将添加到存档存储库,但它们会获得新的 SHA。
推荐阅读
- .net - TFS 2012 express 可以与 Visual Studio 2005 一起使用吗?
- c++ - Sphere在线评委(生命、宇宙、万物)
- email - 直接从应用程序发送电子邮件,无需打开选择器 (Kotlin)
- javascript - 反应原生:制作动画箭头到手风琴列表的方法是什么?
- python-3.x - 遍历行时如何为“底图”子图设置固定大小?
- python - 在 Pycharm 上为 Ubuntu 20.04 安装 wxPython
- sql - 给定每日每小时数据,如何在 SQL Server 中从上午 8 点到晚上 8 点平均 12 小时范围内的每小时间隔数据?
- r - 使用 lavaan 在 R 中进行交叉滞后面板建模
- typescript - 如何为 lodash/fp 管道传输 Promise.allSettled?(或任何功能,如管道库,例如:p-pipe)
- php - Xdebug 断点在 Sublime Text 3 上不起作用