社区首页 >问答首页 >是否可以重新安排存储库并保留重新分配的文件的提交历史记录?

是否可以重新安排存储库并保留重新分配的文件的提交历史记录?
EN

Stack Overflow用户
提问于 2021-08-12 05:08:32
回答 1查看 46关注 0票数 1

我有一个很大的存储库,它也连接到一个远程存储库。

我想重新安排它,但我不想在当前目录上应用这些更改,所以我创建了一个新的本地目录,一个新的空远程存储库。

我将当前的存储库镜像到新的空远程存储库。

然后,我将新的空目录连接到该存储库并对其执行git pull操作。

现在,我在本地的新存储库上有了我的存储库的完整副本。

我想重新安排它,并将一些文件移入/移出他们当前的目录。

问题是,当我这样做,然后commit & push到远程存储库时,我看到所有提交历史记录在移动到其他位置后都被删除了。

当我编辑文件但将它们保留在当前位置,然后使用commit & push时,所做的更改会被上传,并保留提交历史记录。

因此,只有当我将文件移动到镜像存储库中的其他目录时,才会出现问题。

有没有办法保留镜像之前提交的提交历史,即使我移动文件也是如此?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-12 06:48:22

非常简单。您创建了一个将保持不变的分支,checkout您的主分支并执行更改。您不需要合并这些分支,您将在为此目的创建的分支中具有旧的提交历史,而在主分支master中具有新的提交历史。

编辑

让我们假设您在master分支上。

执行:

代码语言:javascript
代码运行次数:0
复制
git branch archive
git checkout archive
git push -u origin archive

这将在您的存储库中创建一个分支,然后在远程存储库上更新它。

现在,执行

代码语言:javascript
代码运行次数:0
复制
git checkout master
mv myfolder1/myfile myfolder2
git add .
git commit
git push

视图

代码语言:javascript
代码运行次数:0
复制
git log

您将看到旧的历史已丢失。但现在要表演

代码语言:javascript
代码运行次数:0
复制
git checkout archive
git log

您将看到,在归档分支中,您拥有文件在移动之前的所有提交历史记录。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68758116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文