git - subtree-remote 的 git push 推送了整个 repo,如何撤消?
问题描述
我Git 将我的 repo feklee-node合并到我的 repo 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/
然后我在 repo 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 存储库。它显示了上面的哈希。
解决方案
为了撤消提交使用
git revert
仅推送到子树应该如下所示:
git subtree push --prefix=my/folder subtree_origin master
推荐阅读
- flutter - Flutter:一个自定义的widget,充当FAB,Inkwell不尊重圆形,波纹是矩形
- c++ - C++ 异常处理:异常与 ifstream::failure
- javascript - 如何让子网页从父网页接收变量值?
- rust - 一个结构如何同时拥有序列和序列上的迭代器?
- android - 所有 com.android.support 库必须使用完全相同的版本规范。找到版本 28.0.0、26.1.0
- angular - TypeError:无法将属性“setHash”设置为 null
- javascript - 示例中使用了什么类型的编码以及如何使用 javascript 进行编码?
- javascript - 只转换一个 div 一次
- javascript - 如何使用 POST 路由作为中间件
- python - 通过 Python 在 Azure 上部署虚拟机