如何将本地,未删除,提交从损坏的git存储库移动到另一个存储库?

时间:2017-03-01 17:19:05

标签: git git-cherry-pick

通常我可以使用cherry-pick将推送提交移动到另一个存储库:我fetch来自另一个'的相关分支。存储库到我的新仓库,cherry-pick带有提交的ID。

我想对本地做同样的事情 - unpushed - 在腐败的存储库中提交(出错了,我无法推送我的更改,但我需要将它们移动到另一个repo)。

有没有办法让cherry-pick从腐败的回购提交到另一个回购?

PS:两个存储库都存在于同一台机器上。

3 个答案:

答案 0 :(得分:3)

您是否只需要将提交从一个本地仓库推送到另一个本地仓库?

git remote add local /path/to/repo.git
git push local master

答案 1 :(得分:3)

Remote不仅限于另一台计算机:如果您在/repo1有一个存储库,而/repo2有另一个存储库,只需添加即可将提交从repo1复制到repo2 repo1作为repo2的远程使用文件系统路径:

cd /repo2
git remote add repo1 /repo1

您现在可以fetchpullcherry-pickrepo1提交到repo2

答案 2 :(得分:1)

另一种可能的方法。

cd repo1_path
git format-patch -1 <commit> --stdout > /tmp/xxx.patch
cd repo2_path
git checkout <branch>
git am /tmp/xxx.patch