git推送的子树远程推送整个回购,如何撤销?
我将我的回购转换为我的回购。命令git推送的子树远程推送整个回购,如何撤销?,git,github,Git,Github,我将我的回购转换为我的回购。命令 $ 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 $ m
$ 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/
然后我在reposan中做了一些更改,我想将子树中的更改返回到feklee节点。所以我做了(这显然是个坏主意):
这将san的全部内容推送到了feklee节点。哦,不
我如何撤销这个巨大的git推送
我还想知道如何只推子树
更新
我返回到一个旧的提交,重写历史:
$ git reset --hard 87b2d1aaea1c0a628c4725e2ea16682f344f102e
$ git push --force
在这里,我很幸运,因为在大规模推出之前,我仍然有一个浏览器选项卡打开,其中包含GitHub repo。它显示了上面的散列。以便撤消提交使用
git revert
仅推送到子树应如下所示:
git subtree push --prefix=my/folder subtree_origin master
但我想撤销大规模的multi-MB推送(multi-mbpush),以恢复到以前的状态,这是一个小型的、轻量级的回购协议,我与另一个用户的数据保持同步。
git subtree push --prefix=my/folder subtree_origin master