git push of subtree-remote推送了整个repo,如何撤消?

时间:2019-03-28 14:55:06

标签: git github

我将我的仓库Git merged feklee-node放入我的仓库san中。命令

$ git remote add -f node git@github.com:feklee/feklee-node.git
$ git merge -s ours --no-commit --allow-unrelated-histories feklee-node/master
$ git read-tree --prefix=node/ -u node/master
$ git commit # done from Emacs Magit IIRC
$ mv node/ nodes/pcb/

然后,我在仓库 san 中进行了一些更改,我想将子树中的更改恢复到 feklee-node 中。所以我做了(这显然是个坏主意):

$ git push node master # node = git@github.com:feklee/feklee-node.git

这将 san 的全部内容推送到 feklee-node 中。哦,不!

如何撤消大规模的git push?

我也想知道如何仅推送子树。

更新

我恢复到旧的提交,重写了历史记录:

$ git reset --hard 87b2d1aaea1c0a628c4725e2ea16682f344f102e
$ git push --force

在这里,我很幸运,因为在进行大规模推送之前,我仍然打开了带有GitHub存储库的浏览器选项卡。它显示了上面的哈希。

1 个答案:

答案 0 :(得分:1)

为了撤消提交使用

git revert

仅推入子树应如下所示:

git subtree push --prefix=my/folder subtree_origin master