我将恢复一个有问题的提交,但是在恢复之后如果我在文件上运行git blame,我看到我的恢复是最近提交触及这些行。这是有道理的,但不是很有用,因为我想看到原始文件的git历史。 (就像有问题的提交和恢复从未发生过一样)。
有办法吗?
谢谢!
答案 0 :(得分:0)
如果要从分支的历史记录中“删除”提交,则必须: - git checkout上一版本 - 您要保留的在要删除的修订后保留的git cherry-pick修订版
假设你想从分支的历史中删除branch-name~3:
const re = /[^\d.]+|^(0{2}|\.)|(0$)|\.(?=\.|.+\.)/;
console.log(
!re.test("123.342.08") // false
, !re.test(".012") // false
, !re.test("00.012") // false
, !re.test("10.012000") // false
, !re.test("0.012") // true
, !re.test("10.012") // true
, !re.test("123.34208") // true
)
瞧。它从来没有发生在一开始。在您的情况下,在采摘樱桃时排除恢复版本并完成。
答案 1 :(得分:0)
恢复与具有反向差异的新提交没有什么不同。所以,不,你不能让float4 main(float2 texCoord : TEXCOORD0) : COLOR0
{
// Calculate vector from pixel to light source in screen space.
half2 deltaTexCoord = (texCoord - ScreenLightPos.xy);
// Divide by number of samples and scale by control factor.
deltaTexCoord *= 1.0f / NUM_SAMPLES * Density;
// Store initial sample.
half3 color = tex2D(frameSampler, texCoord);
// Set up illumination decay factor.
half illuminationDecay = 1.0f;
// Evaluate summation from Equation 3 NUM_SAMPLES iterations.
for (int i = 0; i < NUM_SAMPLES; i++)
{
// Step sample location along ray.
texCoord -= deltaTexCoord;
// Retrieve sample at new location.
half3 sample = tex2D(frameSampler, texCoord);
// Apply sample attenuation scale/decay factors.
sample *= illuminationDecay * Weight;
// Accumulate combined color.
color += sample;
// Update exponential decay factor.
illuminationDecay *= Decay;
}
// Output final color with a further scale control factor.
return float4( color * Exposure, 1);
}
忽略原始提交或恢复(除非你愿意改变历史,在这种情况下你实际上根本没有恢复任何东西)。
但是,因为它就像任何其他提交一样,如果你看到最后触及某些行的提交没有用,你可以做任何其他提交的操作,并要求git-blame
注释该文件的先前版本。
例如,假设你跑了
git-blame
并且看到了:
$ git blame HEAD -- foo.c
在您感兴趣的行上。您认为此提交无用,因为它是一个还原。您可以使用7507efdad27 foo.c (amalloy) ...
检查该提交还原了哪个提交。
假设产生git show 7507efdad27
:然后您可以在提交之前要求查看文件的责备视图:
673bdae7548
这将在恢复提交之前向您显示责任,因此您感兴趣的行将使用最后在提交之前触及它们的提交进行注释。
答案 2 :(得分:0)
从还原的父母那里追究责任,请参阅git blame docs;您甚至可以指定您有兴趣检查的明确提交列表,只需从普通的rev-list输出中删除恢复。
答案 3 :(得分:0)
如果您不想编辑历史记录并且不介意额外提交,您可以通过以下方式执行此操作:
如果你责怪新的分支,你现在应该看到被还原的行的原作者。
请注意,如果您在某个时候将分支合并到 master/main 中,这在理论上应该会自动发生,从而使这变得不必要(假设您永远不会以快进方式合并到 master/main 中)。
如果您从已经合并到 master/main 的旧分支中恢复某些内容,我还没有测试过这些是如何工作的。我最好的猜测是,您需要在没有应该恢复的更改的 master 版本上从第 2 步创建分支。它可能会起作用¯\(ツ)/¯.