git 如何在不是工作树,但从同一个远程库克隆的本地库之间移动提交?[duplicate]

xqkwcwgp  于 2023-03-11  发布在  Git
关注(0)|答案(1)|浏览(90)

此问题在此处已有答案

What would I use git-worktree for?(10个答案)
10个月前关闭。
这篇文章是编辑和提交审查3天前。
我厌倦了在分支间切换。所以,我在电脑上复制了两次。
现在,我有两个不同的文件夹相同的回购。
我想把旧克隆上的一个特定的本地提交拷贝到新克隆上。哪组git命令可以帮我做到这一点?

f8rj6qna

f8rj6qna1#

从长远来看,你需要的是使用git工作树。
为了修复当前的情况,您可以通过从本地目录创建远程目录来选择不同的repos。
通过添加另一个本地存储库作为远程存储库并执行git fetch,您可以仅使用SHA从该存储库中选择任何您想要的提交。
例如,如果你想从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

相关问题