正常情况下,我可以使用cherry-pick
将推送提交移动到另一个存储库:I fetch
从另一个存储库到我的新存储库的相关分支以及带有提交ID的cherry-pick
。如何将本地,不受压力的,从损坏的git存储库提交到另一个存储库?
我想为本地 - unpushed - 提交损坏的存储库(出错了,我无法推送我的更改,但我需要将它们移动到另一个存储区)执行同样的操作。
有没有办法让cherry-pick
从腐败的回购承诺到另一个回购?
PS:两个存储库位于同一台机器上。
正常情况下,我可以使用cherry-pick
将推送提交移动到另一个存储库:I fetch
从另一个存储库到我的新存储库的相关分支以及带有提交ID的cherry-pick
。如何将本地,不受压力的,从损坏的git存储库提交到另一个存储库?
我想为本地 - unpushed - 提交损坏的存储库(出错了,我无法推送我的更改,但我需要将它们移动到另一个存储区)执行同样的操作。
有没有办法让cherry-pick
从腐败的回购承诺到另一个回购?
PS:两个存储库位于同一台机器上。
另一种可能的方法。
cd repo1_path
git format-patch -1 <commit> --stdout > /tmp/xxx.patch
cd repo2_path
git checkout <branch>
git am /tmp/xxx.patch
你只需要将提交从一个本地回购推到另一个本地回购?
git remote add local /path/to/repo.git
git push local master
是的,但不是全部。特别的。我假设我可以在第一步后进行樱桃挑选 – likeachamp
是的,在第一条命令之后,您可以将遥控器当作另一个遥控器,因为它确实没有什么不同。 – jready
谢谢!顺便说一句,它应该是'远程添加' – likeachamp
远程的不限于另一台机器:如果你有/repo1
在/repo2
一个库,另一个可以从repo1
通过简单地使用文件系统路径添加repo1
当作遥控repo2
复制提交给repo2
:
cd /repo2
git remote add repo1 /repo1
现在,您可以fetch
,pull
,并cherry-pick
从提交到repo1
repo2
。
是否有樱桃挑选没有添加它? .git/objects下的一个文件已损坏,因此我无法将其添加为远程文件或推送我的更改等。 – likeachamp
不,如果无法将远程磁带库添加为远程磁带,则无法执行“樱桃挑选”操作:您的最佳打赌是尝试@ ElpieKay的答案出口一个补丁(实际上是一个手动'樱桃选择')。 – Guildencrantz
是否代表SHA? –
likeachamp
@likeachamp是的,你想要移动的那个。它可能是一个分支,一个标签或者代表提交的sha1。 – ElpieKay
令人惊叹!由于我的旧回购已损坏,这是我的完美解决方案。 – likeachamp