在git rebase origin/development以下错误消息从git显示:
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
Run Code Online (Sandbox Code Playgroud)
我的git版本是2.9.0.用于在以前的版本中正常工作.
如何通过新版本中引入的强制标记继续使用此rebase,从而允许不相关的历史记录?
我在一个名为XXX的文件夹中有一个Git存储库,我有第二个名为YYY的 Git存储库.
我想将XXX存储库作为名为ZZZ的子目录导入YYY存储库,并将所有XXX的更改历史记录添加到YYY.
文件夹结构之前:
??? XXX
? ??? .git
? ??? (project files)
??? YYY
??? .git
??? (project files)
Run Code Online (Sandbox Code Playgroud)
文件夹结构后:
YYY
??? .git <-- This now contains the change history from XXX
??? ZZZ <-- This was originally XXX
? ??? (project files)
??? (project files)
Run Code Online (Sandbox Code Playgroud)
可以这样做,还是我必须使用子模块?
我有一个项目git.有一天,我将所有项目文件从当前目录移动到foo/bar/项目下.我是用它做的git mv.然后我添加了一些文件并对现有文件进行了一些更改.
因此,现在当我查看历史记录时foo/bar/file.c,我只能看到移动文件后所做的更改.
我尝试以各种方式解决这个问题(filter-branch使用子目录过滤器等),但没有任何帮助,所以我在这里很好.我很感激你能给我的任何帮助.谢谢!
当我处理两个不同的功能(在从主服务器创建的两个不同的分支上)时,当我继续合并时,我将不会有提交历史,这非常令人讨厌.
我会更好地解释.当我完成Branch-A的工作时,我将它合并为master.如果我git log看到我在Branch-A上做的所有提交,那很好.
相反,当我完成Branch-B的工作并尝试将其合并到master(在已经合并了Branch-A之后)之后,我必须为合并指定一个提交消息(而对于第一个分支,我还没有问什么).合并到掌握之后,如果我键入git log,我在主分支的历史中看不到Branch-B的提交
让我说我有
**Branch A**
commit 09b2unfas9d781n2e
Add more stuff
commit 8uj8masd89jas898a
Add stuff
**Branch B**
commit 09b2unfas9d781n2e
Add feature setting
commit 8uj8masd89jas898a
Add feature
Run Code Online (Sandbox Code Playgroud)
我完成了
**Master**
commit 6hf6h8hd871udjkdn
Merge: 09b2un 34osd6
Merge branch 'Branch-B' into master
commit 09b2unfas9d781n2e
Add more stuff
commit 8uj8masd89jas898a
Add stuff
commit 34osd62dhc91123j8
I'm a previous commit …Run Code Online (Sandbox Code Playgroud) 假设我有两个git回购.RepoA是一个应该在其他项目中共享的通用回购.ReopB是一些需要访问RepoA中的东西的项目.
RepoA
https://.../RepoA
/Something
/Source
/Project1
/Project2
...
/ProjectN
Run Code Online (Sandbox Code Playgroud)
RepoB
https://.../RepoB
/SomethingElse
/Source
/MainProject
/RepoA
/Project1 #Submodule of RepoA at /Source/Project1
Run Code Online (Sandbox Code Playgroud)
使用上面的图解,您可以看到我要做的是配置一个不是RepoA根目录的子模块,而是配置回购中的特定路径.在这种情况下,我想将RepoB/Source/RepoA/Project1映射到RepoA/Source/Project1.
我做了一些研究,似乎并不是直截了当,也可能是不可能做到这一点.我希望我错了!
我们正在从SVN迁移到GIT,在SVN中,我们使用Externals轻松完成此任务.
注意
我也愿意重组RepoA.但我想保持主体结构.例如,如果我能以某种方式在RepoA/Source/...内分支每个项目,但我不希望这变得复杂.