|
408
|
| ebneter · 技术社区 · 17 年前 |
|
|
1
329
如果您的历史记录正常,您可以将提交作为补丁取出,并将其应用于新存储库:
(摘自 Exherboâs docs |
|
|
2
81
在尝试了各种方法将文件或文件夹从一个Git存储库移动到另一个存储库后,下面列出了唯一一种似乎可靠的方法。 它涉及克隆要从中移动文件或文件夹的存储库,将该文件或文件夹移动到根目录,重写Git历史记录,克隆目标存储库,并将具有历史记录的文件或文件夹直接拉入此目标存储库。 第一阶段
第二阶段
第三阶段
|
|
|
3
61
是的,点击
当然,你可以细化细节——你的一些克隆和分支并不是绝对必要的——但总体方法是好的!遗憾的是,它很复杂,但当然,git的目的不是让重写历史变得容易。 |
|
|
4
23
通过使用git过滤器仓库,这变得更加简单。
为了移动
|
|
|
5
11
我发现了 Ross Hendrickson's blog 非常有用。这是一种非常简单的方法,您可以创建应用于新仓库的补丁。有关更多详细信息,请参阅链接页面。 它只包含三个步骤(从博客复制):
我唯一的问题是,我无法使用
|
|
|
6
9
为了符合堆栈溢出标准,以下是程序:
|
|
|
7
8
保留目录名 子目录过滤器(或更短的命令git子树)工作良好,但对我来说不起作用,因为它们从提交信息中删除了目录名。在我的场景中,我只想将一个存储库的部分合并到另一个存储库中,并保留带有完整路径名的历史记录。 我的解决方案是使用树过滤器,简单地从源存储库的临时克隆中删除不需要的文件和目录,然后通过5个简单的步骤将该克隆拉入我的目标存储库。
|
|
8
5
简而言之,它创建给定文件或目录的补丁文件(
然后将其应用于新的存储库:
(来自另一位作者)以下人员可以使用这种有用的方法 。以下是一个示例用法:
|
|
|
9
5
说明:
|
|
|
10
2
此答案基于以下内容提供了有趣的命令
目标
程序
1.以电子邮件格式提取历史记录
清理临时目录 目的地
清理你的仓库 来源
以电子邮件格式提取每个文件的历史记录
2.重新组织文件树并更新历史记录中的文件名更改[可选]假设您想将这三个文件移动到另一个仓库中(可以是同一个仓库)。
因此,请重新组织您的文件:
同时更改历史记录中的文件名:
注:
这将重写历史记录以反映路径和文件名的更改。
您的另一个repo是:
应用临时历史文件中的提交:
您的另一个repo现在是:
使用
注:
由于历史记录已被重写以反映路径和文件名的更改:
额外技巧:检测存储库中重命名/移动的文件要列出已重命名的文件,请执行以下操作:
|
|
|
11
1
灵感来自 http://blog.neutrino.es/2012/git-copy-a-file-or-directory-from-another-repository-preserving-history/ ,我创建了这个Powershell函数来做同样的事情,到目前为止,它对我来说效果很好:
完成此操作后,您可以重新组织
|
|
|
12
1
试试这个
现在,您可以在git remote中添加新的repo并将其推送到该位置
|
|
|
13
0
我想要一些健壮且可重用的东西(一个命令和go+undo函数),所以我编写了以下bash脚本。曾为我工作过几次,所以我想在这里分享一下。
它能够移动任意文件夹
由于它只覆盖了接触输入文件夹中文件的提交(而不是源代码仓库的所有提交),如果你只是提取一个深度嵌套的子文件夹,而不是在每个提交中都接触到,那么即使在大型源代码仓库上,它也应该很快。 由于它的作用是创建一个包含所有旧仓库历史的孤立分支,然后将其合并到HEAD,因此它甚至可以在文件名冲突的情况下工作(然后你必须在最后解决合并问题)。
如果没有文件名冲突,您只需要
GitHub链接: git-move-folder-between-repos-keep-history
|
|
|
14
0
就我而言,我不需要保留我正在迁移的仓库,也不需要保留任何以前的历史。我有一块同样的树枝,来自不同的遥控器
现在,它的行为就像是我反对同一回购的另一个分支。 |
|
|
15
0
第一步是使用
然后,您需要为该文件创建一个初始提交(如果它不存在),或者创建一个提交,使文件处于可以用您想要引入的其他仓库中的第一个提交修补的状态。您可以使用
之后,您可以继续
|
|
|
16
-2
下面的方法通过维护所有分支和保留历史记录将我的GIT Stash迁移到GitLab。 将旧存储库克隆到本地。
在GitLab中创建一个空存储库。
当我们将代码从stash迁移到GitLab时,我执行了上述操作,效果非常好。 |
|
Harry · 如何在编译时获取克隆的git仓库的标签 1 年前 |
|
Ooker · 如何从blob中删除秘密? 1 年前 |
|
|
hasdrubal · git日志图智能分支过滤器 1 年前 |
|
|
J. Doe · 为什么git中没有跟踪git文件? 1 年前 |