我目前正在开发一个自己的神经成像工具箱,该工具箱在 MATLAB / SPM8 下运行,并且我的存储库中的大多数程序文件都是 MATLAB*.m
文件。我有不同的功能分支和一个analysis
分支,我使用它来使用当前版本进行持续分析。同时我正在开发代码master
和特征分支,然后不断合并到master
branch.
现在的问题是,我正在运行的分析analysis
分支确实需要很多时间(甚至几天),在那段时间我无法git checkout master
or git checkout new-feature
。这严重限制了我的生产力。
因此,由于不可能同时保持多个分支同时打开,
我正在考虑移动analysis
从开发存储库分支到其自己的存储库。问题是,如果我git init
基于当前的新存储库analysis
分支,有没有办法以某种方式git merge
从当前开始时不时地master
(开发存储库的)分支能够在新的分析存储库中使用我的开发存储库新开发的代码吗?
If you git clone
将现有存储库复制到新存储库中,然后您可以git push
or git fetch
从一个到另一个以匹配您更改的引用(分支);不涉及合并。存储库的内容将自动硬链接以节省磁盘空间。
如果您使用--mirror
选项git clone
and git push
,您将省略远程跟踪分支,而只在两个分支中拥有相同的分支,这更简单、更对称,但不太像 git 的常规使用。为了最大程度地“遵循教程”简单性,请安排第三个“中央”存储库(应该创建--bare
),您的两个工作存储库都是其克隆。
不需要合并(除了“快进合并”之外,“快进合并”不是真正的合并,而是用其较新的后代替换旧的分支头),因为您正在处理相同的分支;你只有两份副本。当您的分析完成并且您能够更新分析分支时,只需git merge --ff-only master
而在analysis
;您可以在任何方便的存储库中执行此操作,但不要忘记将更改与git push other-repository
.
另一个选项(自 Git 版本 2.5 起)是git worktree https://git-scm.com/docs/git-worktree命令,它允许多个独立的工作树,您可以在其中git checkout
等,独立进行。这个和上面制作克隆选项的区别在于,这里只有一组branches.
然而(从 2.8 版本开始)这仍然被认为是一个“实验性”功能,我个人还没有使用它来评论它的可靠性和实用性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)