GIT 将分支克隆到另一个目录中的旧提交
GIT clone branch to older commit in another directory
我有同一个项目的 2 个目录,我们称它们为目录 A 和 B。
这两个文件夹是从另一个位置的主 git 存储库克隆而来的,因此它们都是从相同的 git 存储库提交开始的。
现在 A 保留原始代码并修复了一些小错误,并提交了更改,所以 A git 分支看起来像这样:
A: (original)-(bug fix 1) - (bug fix 2) - (bug fix 3)
当 B 时,我决定更改应用程序的外观,但我还没有承诺。所以 B git 分支看起来像这样:
B: (original)
我想做的是合并原始克隆中的这 2 个 git 回购协议,这样我就可以拥有以下内容:
A: (original)-(bug fix 1) - (bug fix 2) - (bug fix 3)--------(merge both)
\ /
branch B: \ -----------------(New version look) -------------
Hello I have 2 directories of the same project, let call them directories A and B. These two folder were cloned from a master git repo in another location,
使用
而不是克隆存储库
git worktree
Git worktree 于 2007 年在 git 存储库的 contrib
文件夹下引入,名为 new-workdir
。在 git 中,v2.5 被重命名为 worktree
。
最简单的语法是这样的:
git worktree add <second path>/<branch name>
将在您的计算机上创建另一个文件夹,使您可以同时处理不同的 分支 。
git worktree
将创建 2 个相互独立的工作文件夹,同时指向同一个存储库。
这将允许您在新工作树上进行任何实验,而不会对存储库本身产生任何影响。在所附的图片中,您可以看到有 2 个单独的 工作文件夹,但它们都使用一个存储库并共享内容。
下面是关于如何创建新工作树及其结果的示例:
What I would like to do is merge these 2 git repos from the original clone so I can have the following...
现在,由于您在同一个存储库上工作,您可以 merge
、cherry-pick
而无需拉取或推送到遥控器,因为您不需要使用遥控器。
都是本地的!!!
如果你可以推回那个回购,但你不想推 B
,你可以:
- 转到您的本地克隆
将 B 本地克隆添加为远程:
git remote add repoB ../B
获取并合并:
git fetch repoB
git checkout A
git merge repoB/B
我有同一个项目的 2 个目录,我们称它们为目录 A 和 B。
这两个文件夹是从另一个位置的主 git 存储库克隆而来的,因此它们都是从相同的 git 存储库提交开始的。
现在 A 保留原始代码并修复了一些小错误,并提交了更改,所以 A git 分支看起来像这样:
A: (original)-(bug fix 1) - (bug fix 2) - (bug fix 3)
当 B 时,我决定更改应用程序的外观,但我还没有承诺。所以 B git 分支看起来像这样:
B: (original)
我想做的是合并原始克隆中的这 2 个 git 回购协议,这样我就可以拥有以下内容:
A: (original)-(bug fix 1) - (bug fix 2) - (bug fix 3)--------(merge both)
\ /
branch B: \ -----------------(New version look) -------------
Hello I have 2 directories of the same project, let call them directories A and B. These two folder were cloned from a master git repo in another location,
使用
而不是克隆存储库git worktree
Git worktree 于 2007 年在 git 存储库的 contrib
文件夹下引入,名为 new-workdir
。在 git 中,v2.5 被重命名为 worktree
。
最简单的语法是这样的:
git worktree add <second path>/<branch name>
将在您的计算机上创建另一个文件夹,使您可以同时处理不同的 分支 。
git worktree
将创建 2 个相互独立的工作文件夹,同时指向同一个存储库。
这将允许您在新工作树上进行任何实验,而不会对存储库本身产生任何影响。在所附的图片中,您可以看到有 2 个单独的 工作文件夹,但它们都使用一个存储库并共享内容。
下面是关于如何创建新工作树及其结果的示例:
What I would like to do is merge these 2 git repos from the original clone so I can have the following...
现在,由于您在同一个存储库上工作,您可以 merge
、cherry-pick
而无需拉取或推送到遥控器,因为您不需要使用遥控器。
都是本地的!!!
如果你可以推回那个回购,但你不想推 B
,你可以:
- 转到您的本地克隆
将 B 本地克隆添加为远程:
git remote add repoB ../B
获取并合并:
git fetch repoB git checkout A git merge repoB/B