Git cherry-pick 从一个文件夹到另一个文件夹的提交(都是同一个 repo)
Git cherry-pick of a commit from one folder to another (Both of the same repo)
我厌倦了在分支机构之间结账。所以,我在我的电脑上克隆了两次 repo。
现在,我必须访问同一存储库的不同文件夹。
我想将旧克隆上的特定本地提交复制到新克隆。哪一组 git 命令可以帮助我做到这一点? (可能是樱桃挑选?)
从长远来看,您想要的是使用 git 工作树。
为了修复您当前的情况,您可以 cherry-pick 通过从本地目录创建遥控器来在回购之间。
通过将另一个本地存储库添加为远程存储库并执行 git fetch
,您可以 cherry-pick 仅使用 SHA 从该存储库中进行任何提交。
例如,如果您想要 cherry-pick 来自 old_clone
且 SHA 以 e9bee1bc
开头的提交:
cd /projects/new_clone
git remote add old_clone /projects/old_clone
git fetch old_clone
git cherry-pick e9bee1bc
您也可以使用类似的策略将多个克隆的遥控器转换为工作树。例如,如果您想从原始项目创建工作树并将 branch1
的本地副本从 new_clone
添加到新工作树:
cd /projects/original
git worktree add /projects/worktree_1
cd /projects/worktree_1
git remote add new_clone /projects/new_clone
git fetch new_clone
git switch -c branch1 new_clone/branch1
我厌倦了在分支机构之间结账。所以,我在我的电脑上克隆了两次 repo。
现在,我必须访问同一存储库的不同文件夹。
我想将旧克隆上的特定本地提交复制到新克隆。哪一组 git 命令可以帮助我做到这一点? (可能是樱桃挑选?)
从长远来看,您想要的是使用 git 工作树。
为了修复您当前的情况,您可以 cherry-pick 通过从本地目录创建遥控器来在回购之间。
通过将另一个本地存储库添加为远程存储库并执行 git fetch
,您可以 cherry-pick 仅使用 SHA 从该存储库中进行任何提交。
例如,如果您想要 cherry-pick 来自 old_clone
且 SHA 以 e9bee1bc
开头的提交:
cd /projects/new_clone
git remote add old_clone /projects/old_clone
git fetch old_clone
git cherry-pick e9bee1bc
您也可以使用类似的策略将多个克隆的遥控器转换为工作树。例如,如果您想从原始项目创建工作树并将 branch1
的本地副本从 new_clone
添加到新工作树:
cd /projects/original
git worktree add /projects/worktree_1
cd /projects/worktree_1
git remote add new_clone /projects/new_clone
git fetch new_clone
git switch -c branch1 new_clone/branch1