问题标签 [git-reflog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 如何正确使用`git reflog --since=...`?
我有一个常规git reflog --date=iso
显示很多条目的存储库,例如查看此片段https://gist.github.com/FreddieChopin/0206c9ef530a056c624b065eed048c9d
您可能会注意到,2 月 19 日、22 日、23 日、24 日、25 日和 26 日有 reflogs。
但是,如果我想将输出限制在某些日期,这将无法按预期工作。例如git reflog --date=iso --since="2017-02-20"
,仅给出此https://gist.github.com/FreddieChopin/fb7619dee8fde055a1cce6f6ff2f6eb6 - 它停在“52896f49 HEAD@{2017-02-24 20:53:29 +0100}”,即使自 20 日以来有 reflogs在那之前的二月。甚至还有 24 日的 reflogs 时间更短,所以我不知道为什么它会停在那里。
我检查过的另一个存储库也有同样的问题,所以这似乎与 reflog 本身有关,而不是特定的存储库。另一个 repo 的问题甚至更奇怪,例如git reflog --since="50.weeks"
给出了我最近几天的提交,同时git reflog --since="60.weeks"
开始更早地回到过去——在那个 repo 中,几年前也有定期提交。
另一方面,git log --since=...
完全按预期工作,所以我不确定这里有什么问题......
git - 按日期查找已删除的提交
我知道我在 2017 年 1 月 1 日对我的 repo 进行了一些重要的更改,之后我做了一些工作,但我也意外删除了一些提交。
是否可以从特定日期恢复或查看已删除的提交,例如 01/01/2017 的提交?
git - 为什么我的 git reflog 不回去克隆
我有一个关于 git reflog 的问题:
在我的项目开始时,当我执行 git reflog 时,我能够看到我原来的 git clone 命令的所有步骤。
今天, git reflog 不再返回到 git clone 命令。
更准确地说, git reflog 返回 4143 行,最后几行被截断:
谁能解释我为什么?
有没有办法获得整个reflog?
非常感谢,
朱利安
git - core.logAllRefUpdates 设置为 true 的裸存储库中的 git reflog 不返回任何内容
我已经使用 镜像了一个 git 存储库git clone --mirror
,然后设置git config core.logAllRefUpdates true
,然后使用git fetch -p
.
在托管 repo 的服务器上,如果我git reflog
在repository.git
目录中运行,我不会得到任何输出。
core.logAllRefUpdates
refs 所在状态的文档$GIT_DIR/logs/<ref>
,但我没有日志目录。我需要手动创建吗?
core.logAllRefUpdates
启用 reflog。通过附加新旧 SHA-1、日期/时间和更新原因,将对 ref 的更新记录到文件“$GIT_DIR/logs/”中,但仅当文件存在时。如果此配置变量设置为 true,则会自动为分支头(即 refs/heads/ 下)、远程 refs(即 refs/remotes/ 下)、注释 refs(即 refs 下)创建缺少的“$GIT_DIR/logs/”文件/notes/) 和符号 ref HEAD。如果它设置为 always,那么会自动为 refs/ 下的任何 ref 创建一个缺失的 reflog。
git - GIT - 删除旧的 reflog 条目
在根据我们的最新需求对存储库进行了大量重新定位之后,我们的 reflog 充满了提交和孤立分支。我们达到了重组的最终状态。
虽然分支和提交留下了大量二进制数据,但存储库增长了其原始大小的数倍,我们决定清除所有旧的 reflog 条目和数据。
我正在研究手册,但尝试git-reflog expire并没有变得更聪明
这是日志的示例(已缩短)
正如您在主分支下方看到的那样,旧的提交/分支在变基之前说明了存储库。
我们希望清除 reflog 以使存储库看起来像
为了减少存储库使用的磁盘空间。
我怎样才能做到这一点?
编辑(2019-03-02 12:20)
请不要提及删除并重新克隆存储库。这不是我要找的。
编辑(2019-03-02 12:30)
到目前为止我尝试过的但没有奏效的
什么都没有发生,所以我试图变得聪明并调用垃圾收集器
但假的。
git - 即将对 git 存储库进行可怕的更改 - 如何确保我可以恢复到当前状态?
我需要在我的 git 存储库上执行主要操作。我还不确定我会成功,我可能需要使用我还不太熟悉的方法。我希望使用大量的合并、挑选、--reset
变基,并希望最终处于更清洁的状态。完成后,我会将其推向上游。
由于我还不确定最佳策略,我预计其中一些操作会导致死胡同。
无论我最终做什么,我都想确保我始终可以恢复所有分支的当前状态,包括可能已删除的本地分支和提交。
我以前曾经git reflog
撤消过早的合并等,但我不确定这是否可以帮助我处理已删除的分支。大多数使用的例子reflog
似乎都适用于特定的分支。
可以reflog
帮助我,如果可以,我需要记住什么才能恢复?有没有更好的办法?
git - 在最后一次 `pull` 或 `merge` 之前引用 HEAD 的状态
我发现我经常这样做。
- 运行
git pull
或git pull --rebase
查看标准输出以查看更改
/li>复制“n”将此版本范围粘贴到
/li>
我想知道是否有一种方法可以指定“HEAD
上次拉取或合并之前的状态”,这样我就可以简单地始终运行相同的命令
简单地总是使用HEAD@{1}
is close 并且可能适用于git pull
,但不适用于git pull --rebase
,因为这会在 reflog 中添加多个条目:
git - git 可以在拉坏后恢复未跟踪的文件吗?
我有一位艺术家在 git 中为一个班级项目工作。他在工作目录中有一个未被跟踪的资产。在提交文件之前,他执行了一次请求以获取最新的更改。上层文件夹必须已重命名,并且在拉取期间,他正在工作的文件夹已被删除,并且所有跟踪的文件都已移至新文件夹。所有未跟踪的文件似乎都被删除了。有没有办法恢复未跟踪的文件或使用 git reflog 和 git reset 恢复存储库?
git - Git 存储库因提交中断而损坏
git commit
我用Ctrl+中断了我的本地 git 存储库C(两次提交)。我该如何解决?
输出git stash
:
输出git fsck --lost-found
:
输出git reflog
:
也无法写入.git/refs/heads/Multi-Threading
: