默认情况下,git-reflog命令不会在每个条目旁边显示日期,这让我感到奇怪的疏忽; 我认为这会非常有帮助.
是否有任何命令行选项或其他调整,可以使用它们来显示添加每个reflog条目的时间?该联机帮助页即将发布......
是否可以检查git reflog以查找特定文件的所有提交.
我提交了文件foo.txt,现在它不再显示在git历史记录中了
git log foo.txt
Run Code Online (Sandbox Code Playgroud)
我想搜索reflog以查找对该文件的所有提交,以便找到我的"丢失"提交.
免责声明:这个问题纯粹是信息性的,并不代表我遇到的实际问题.我只是想弄清楚它的东西(因为我喜欢弄清楚东西,我知道你也这样做).
所以我正在玩git,试图使修改后的提交失效.我的reflog看起来像这样:
4eea1cd HEAD@{0}: commit (amend): amend commit
ff576c1 HEAD@{1}: commit: test: bar
5a1e68a HEAD@{2}: commit: test: foo
da8534a HEAD@{3}: commit (initial): initial commit
Run Code Online (Sandbox Code Playgroud)
这意味着我做了两次提交(da8534a和5a1e68a),然后是ff576c1我修改过的第三次提交4eea1cd.
正如预期的那样,我git log看起来像这样:
* 4eea1cd (HEAD, master) amend commit
* 5a1e68a test: foo
* da8534a initial commit
Run Code Online (Sandbox Code Playgroud)
从我(虽然我)知道提交的可达性,有一天(最有可能,默认情况下在30天内)git gc应该收集ff576c1.现在我不想等待30天才能看到这种情况,所以我开始运行一些命令,首先:
git fsck --unreachable --no-reflogs
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,这让我:
unreachable blob 5716ca5987cbf97d6bb54920bea6adde242d87e6
unreachable tree 1e60e555e3500075d00085e4c1720030e077b6c8
unreachable commit ff576c1b4b6df57ba1c20afabd718c93dacf2fc6
Run Code Online (Sandbox Code Playgroud)
所有人都相信我将要过期这种可怜的孤独ff576c1承诺,然后我会跑git reflog expire:
git reflog …Run Code Online (Sandbox Code Playgroud) 不幸的是,我曾多次git reset --hard HEAD^在几个文件中丢失了相当大的代码.有没有办法恢复那些提交,或者在这种情况下转发HEAD之前的位置,所以我可以提出我丢失的那些线?
我试图git reset --hard HEAD@{n}从git reflog我失去了一切,我目前不分阶段的文件:'(
未分阶段的文件是git add我做的最后一次,之后我尝试git reset了最后一次git commit.
我的所有文件都没了,我不能回到git add最后一次提交之前:'(
正如您可能已经知道的那样,默认情况下,git不会为新的裸存储库启用reflog更新.问题是,我有一个很长的历史存储库,但它是在我设置标志"logAllRefUpdates"之前创建的,现在我希望其他应用程序的信息能够正常工作.
如何通过对现有存储库进行的最小更改来实现这一目标.一个非常简单的解决方案是推送一个我不想要的新提交(!):-)
我正在做重构,每次我取得任何不错的进展时都会不断修改。它进展得非常顺利,我意识到能够向人们展示我如何处理如此巨大的重构(很多小步骤,只是轻推代码,每个点都有一个绿色测试套件)会很好。
提交都在我的reflog 中。有没有办法将每个修改后的提交转换为自己的真实提交(抱歉,不知道术语),以便用户可以看到每个步骤,而不仅仅是第 81 行和第 57 行的汇总步骤?我不需要提交或任何东西的独特消息,只需要它们在历史记录中被捕获。
这一切仍在我的本地仓库中。
在另一个问题中,用户发布了以下reflog:
8c48bab HEAD@{16}: checkout: moving from develop to 8c48babb10ec2f8f28f364ce57b5095cb080c133^0
54d8daf HEAD@{17}: commit: changed the how function, it seems I was right, wc counts all lines regardless of readable symbols or not.
13d35ed HEAD@{18}: commit: am working on the how function (should be trivial, but I have a bad feeling)
852fb68 HEAD@{19}: commit: I have added some more commands (thought not fully implemented), but more specifically I have changed the pattern matching
33dfc9f HEAD@{20}: commit (merge): change some output settings, asthetics …Run Code Online (Sandbox Code Playgroud) 例如:
我认为会有一个git reflog选择,但据我所知,没有.
我正在尝试恢复代码,因为我不小心切换到eclipse中的分支并丢失了所有数据,不知何故(我仍然不知道我做了什么).当我在命令行中打开我的git reflog时,我看到:
6dc60f6 HEAD@{14}: commit: fixed class mismatch for integers
638fbb1 HEAD@{15}: commit: fixed first NPE bug
22fc2b9 HEAD@{16}: commit: v 6.0.5
0acef4f HEAD@{17}: commit: clean up
8a441cb HEAD@{18}: commit: cleaned up db code
9ac384d HEAD@{19}: commit: ver 6.0.4
ce1f1c2 HEAD@{20}: commit: addded drivers
9b5a4dd HEAD@{21}: checkout: moving from master to 9b5a4dde0f97303579ec0cf15413ecce83a636dc
6dc60f6 HEAD@{22}: commit: change Db
9b5a4dd HEAD@{23}: commit: // for public schema: "" or "public"
f668dd1 HEAD@{24}: commit: changed schema
a0e5b2a HEAD@{25}: commit: changed frames
Run Code Online (Sandbox Code Playgroud)
我正在尝试结帐,6dc60f6 HEAD@{14}: …
我是一个项目的唯一开发人员,我在多个计算机上工作,一些在VM上工作.在gitHub上执行我的repo的git clone后,对reflog的调用只显示克隆后的项目.如何更新这个新的克隆仓库以显示完整的历史记录?
git ×11
reflog ×11
commit ×2
add ×1
clone ×1
git-bare ×1
git-reflog ×1
head ×1
reachability ×1
refactoring ×1
reset ×1