git - 之前的所有提交日志都被删除了。我可以拿回来吗?
问题描述
除了一个提交之外的所有先前的承诺都是由另一个团队成员通过强制推送来初始化的,即使出现了“数据可能丢失”的短语。
git 日志上只有一个提交(最后一个)。我不能回到团队成员犯错之前吗?
我不认为它会起作用,但我试过git reset --HEAD^
了,我得到了
致命:模棱两可的参数“HEAD^”:未知的修订版或路径不在工作树中。使用 '--' 将路径与修订分开,如下所示:'git [...] -- [...]'
解决方案
在强制推送之后,其他团队成员不可能简单地完成git pull
,所以有人可能仍然拥有该分支的最新副本。只需将其强制推送到服务器即可。
如果每个人都已经以某种方式拉出了损坏的分支,您仍然可以通过 using 获取原始的哈希git reflog
(直到git gc
触发 a )。获取应该成为新的提交的哈希HEAD
,然后执行:
git reset --hard <name of branch> <hash of desired commit>
然后去配置你的 git 服务器以禁止强制推送;)
推荐阅读
- shell - 批处理文件在我直接执行时调用另一个批处理,但不是在计划时
- solid-state-drive - 安全擦除以 MAX 安全级别锁定的 SSD
- sql - PSQL 优化左连接
- python - 我正在尝试用 kivy 和 buildozer 制作一个 apk,但我发现一个错误
- c - GTK g_action 未从 gtkRadioMenuItem 触发
- c++ - clang-tooling:如何检查一个字段是否是一个不完整的构造类型?
- filter - Quicksight - 使用 Top N 过滤器时如何显示所有值?
- laravel - 如何使用具有数据库中两个表(管理表和用户表)的单个登录页面登录
- api - 使用第三方应用跳过部分主要视频内容
- ansible - 使用 Ansible 指定涉及 2 个网络接口和流量方向的 ufw 规则