gpt4 book ai didi

git - 为什么 git amend 在没有什么要修改的时候不警告你?

转载 作者:太空狗 更新时间:2023-10-29 14:01:07 29 4
gpt4 key购买 nike

我经常犯这样的错误,即在提交后立即更改文件,然后运行 ​​git commit --amend 然后快速执行 git push -f origin master

显然,问题是我从未运行过 git add foo.md。所以我的修改实际上并没有修改我提交的任何代码。

问题是:为什么 git 在修改没有更改的提交时不警告你?更好的是,为什么它甚至可以成功完成?它只是在更改给定提交的时间戳时表现得像“触摸”吗?

最佳答案

提交者日期 (%ci) 不断重置,即使提交作者日期 (%ai) 保持不变:< br/>例如,如果我在 Git 仓库上提交 --amend -no-edit 最后一次提交,作者日期保持不变,但我只是创建了一个提交:用相同的内容替换旧的,但不同提交日期:

P:\git\git>git show -s --format="%ci" e0d6576639261beefb40afa52696d02f16c490ed
2012-12-11 03:42:23 +0100 <== just now

P:\git\git>git show -s --format="%ai" e0d6576639261beefb40afa52696d02f16c490ed
2012-12-07 14:18:55 -0800 <== original date when the author did commit

因此任何修改都会导致不同 SHA1。

来自Pro-Book :

  • The author is the person who originally wrote the work,
  • whereas the committer is the person who last applied the work.

A commit --amend 总是会重新创建一个新的提交,即使只是因为提交者日期发生了变化。

关于git - 为什么 git amend 在没有什么要修改的时候不警告你?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811962/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com