相关疑难解决方法(0)

Git拒绝合并关于rebase的无关历史

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,从而允许不相关的历史记录?

git rebase

1862
推荐指数
25
解决办法
123万
查看次数

如何将现有的Git存储库导入另一个?

我在一个名为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 merge git-merge

445
推荐指数
8
解决办法
18万
查看次数

如何重写历史记录,以便除了我已经移动的文件以外的所有文件都在子目录中?

我有一个项目git.有一天,我将所有项目文件从当前目录移动到foo/bar/项目下.我是用它做的git mv.然后我添加了一些文件并对现有文件进行了一些更改.

因此,现在当我查看历史记录时foo/bar/file.c,我只能看到移动文件后所做的更改.

我尝试以各种方式解决这个问题(filter-branch使用子目录过滤器等),但没有任何帮助,所以我在这里很好.我很感激你能给我的任何帮助.谢谢!

git history mv git-filter-branch

54
推荐指数
2
解决办法
1万
查看次数

在'git merge'之后保留提交历史记录

当我处理两个不同的功能(在从主服务器创建的两个不同的分支上)时,当我继续合并时,我将不会有提交历史,这非常令人讨厌.

我会更好地解释.当我完成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 merge github git-branch

22
推荐指数
2
解决办法
2万
查看次数

子目录中的Git子模块?

假设我有两个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/...内分支每个项目,但我不希望这变得复杂.

git git-submodules

5
推荐指数
1
解决办法
555
查看次数