Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
切割后连接git历史记录_Git_Git Rewrite History_Git History - Fatal编程技术网

切割后连接git历史记录

切割后连接git历史记录,git,git-rewrite-history,git-history,Git,Git Rewrite History,Git History,我的两份回购协议来自同一个项目。我在提交3后剪切历史记录,现在只使用RepoProjectnameWorking git日志回购“ProjectnameArchiv”: 30114b2afac5d1c5a968441151ee8f91fc015ff3 4 9aa472d04501a14b5b704fde32445461f99f539a 3 1d0e5abe5daf60c0d86819938ba1aefd44b87ff5 2 766f4880e8ccf61bdc718dfae62466f800ae

我的两份回购协议来自同一个项目。我在提交
3
后剪切历史记录,现在只使用RepoProjectnameWorking

git日志回购“ProjectnameArchiv”:

30114b2afac5d1c5a968441151ee8f91fc015ff3 4
9aa472d04501a14b5b704fde32445461f99f539a 3
1d0e5abe5daf60c0d86819938ba1aefd44b87ff5 2
766f4880e8ccf61bdc718dfae62466f800ae8119 1
2932c4b8ea681f0a97bf151ccc46d2044e8e5a50 5
27ec1a4618f1bf0025b8ba83fd69c2607cdf78d4 4
git日志回购“ProjectnameWorking”:

30114b2afac5d1c5a968441151ee8f91fc015ff3 4
9aa472d04501a14b5b704fde32445461f99f539a 3
1d0e5abe5daf60c0d86819938ba1aefd44b87ff5 2
766f4880e8ccf61bdc718dfae62466f800ae8119 1
2932c4b8ea681f0a97bf151ccc46d2044e8e5a50 5
27ec1a4618f1bf0025b8ba83fd69c2607cdf78d4 4

有没有办法在以后将历史记录和项目文件连接到一个

git日志回购“项目名称”


编辑:

30114b2afac5d1c5a968441151ee8f91fc015ff3 4
9aa472d04501a14b5b704fde32445461f99f539a 3
1d0e5abe5daf60c0d86819938ba1aefd44b87ff5 2
766f4880e8ccf61bdc718dfae62466f800ae8119 1
2932c4b8ea681f0a97bf151ccc46d2044e8e5a50 5
27ec1a4618f1bf0025b8ba83fd69c2607cdf78d4 4
  • 在Repo“ProjectnameArchiv”提交4-从cut获取新哈希

是的,这是可能的,但其中一个项目的SHA将发生变化:

  • 创建公共远程存储库:

    /some/other/path> git init . --bare
    
  • 9aa472d04501a14b5b704fde324454461f99f539a的
    ProjectnameArchiv
    中创建一个分支,并将其推送到远程:

    ProjectnameArchiv> git branch merge-base 9aa472d04501a14b5b704fde32445461f99f539a
    ProjectnameArchiv> git remote add origin file:///some/other/path
    ProjectnameArchiv> git push --all
    
  • 在其他回购协议中执行相同操作,但取数而不是推数:

    ProjectnameWorking> git branch working-top 2932c4b8ea681f0a97bf151ccc46d2044e8e5a50
    ProjectnameWorking> git remote add origin file:///some/other/path
    ProjectnameWorking> git fetch origin
    
  • cherry选择归档分支中的第一个工作提交:

    ProjectnameWorking> git checkout -b archive origin/merge-base
    ProjectnameWorking> git cherry-pick 9aa472d04501a14b5b704fde32445461f99f539a
    
  • 如果您只有几个提交,您可以继续选择,但是如果提交的数量较多,则将其余工作分支的基础重新设置到归档分支上会更快:

    ProjectnameWorking> git rebase --onto archive 9aa472d04501a14b5b704fde32445461f99f539a working-top
    
    您可以添加git的
    -i
    选项,在它启动之前检查它正在做什么,如果出现问题,可以中断进程


之后,工作存储库的更改被添加到存档存储库中,但它们会得到新的SHA。

如果我尝试git checkout-b archive origin/merge base,我会得到错误:致命:无法更新路径并同时切换到分支“archive”。您是否打算签出无法解析为提交的“源/合并基”?@Gh0stscript git branch--list--remotes
?ProjectnameWorking>git branch--list--remotes origin/master的输出是什么在推送归档文件时,您可能需要添加
--all
开关。我更新了答案。我意识到commit 4在两个项目中都存在(更新问题)…所以我不知道git rebase——归档文件9aa472d04501a14b5b704fde32445461f99f539a的错误是否来自于此。错误:冲突(添加/添加):Test.txt修补程序中的合并冲突在0001 4失败。失败的修补程序副本位于:.git/rebase apply/Patch中