git - git repo 中缺少一行
问题描述
我的 git repo 发生了一些奇怪的事情。
正如您从以下差异中看到的那样,起初我们添加console.log(config)
了 ,在下一次提交中我们删除了它,最后我们再次删除了它,因为该行仍然存在于 repo 中。
这怎么可能?也许合并发生了一些奇怪的事情?
commit e28e546f003f4b55cc508e60b8a2c7ba3ad1ffab
Date: Thu Jan 21 14:46:50 2021 +0100
remove console log
diff --git a/lib/config.js b/lib/config.js
index 6f20b32..ba26ac3 100644
--- a/lib/config.js
+++ b/lib/config.js
@@ -293,8 +293,6 @@ for (let c in config) {
config.i18n.supportedLocales = (config.i18n.locales).filter(l => l.iso === locale)
-console.log(config)
-
const exportedConfig = {
config: config,
server: {
commit fc05a16cda8cd9f72d73b995af001dd4ef932a70
Merge: 5b1ef6e 86e1a6a
Date: Wed Jan 20 17:53:14 2021 +0000
Merge branch 'development' into 'staging'
Development --> Staging
See merge request !681
commit 86e1a6aaec44c65e89e0507caf463876d9323d86
Date: Wed Jan 20 18:50:03 2021 +0100
Fool GIT
diff --git a/lib/config.js b/lib/config.js
index 29d0c26..ba26ac3 100644
--- a/lib/config.js
+++ b/lib/config.js
@@ -289,6 +289,8 @@ for (let c in config) {
}
}
+/// console.log(config)
+
config.i18n.supportedLocales = (config.i18n.locales).filter(l => l.iso === locale)
const exportedConfig = {
commit fc85ca3069f9d76072a0488cade1477e47844e8d
Date: Wed Jan 20 18:45:17 2021 +0100
Remove console.log()
diff --git a/lib/config.js b/lib/config.js
index f2f295c..29d0c26 100644
--- a/lib/config.js
+++ b/lib/config.js
@@ -291,8 +291,6 @@ for (let c in config) {
config.i18n.supportedLocales = (config.i18n.locales).filter(l => l.iso === locale)
-console.log(config)
-
const exportedConfig = {
config: config,
server: {
commit f2d09dc045dd3e536a09929403e067c5c8fb8b62
Date: Wed Jan 20 18:43:39 2021 +0100
Restore console.log()
diff --git a/lib/config.js b/lib/config.js
index 29d0c26..f2f295c 100644
--- a/lib/config.js
+++ b/lib/config.js
@@ -291,6 +291,8 @@ for (let c in config) {
config.i18n.supportedLocales = (config.i18n.locales).filter(l => l.iso === locale)
+console.log(config)
+
const exportedConfig = {
config: config,
server: {
解决方案
该行已在合并提交中添加。如果您checkout
提交并打开lib/config.js
,您将在那里看到这些行。
那么,为什么这些行不显示在差异中呢?这很令人困惑,我会同意你的。这是因为diff
不显示合并提交的差异。
每当它进行 diff 时,git 需要知道哪些提交正在被区分。大多数提交都有一个父级,因此差异在每个提交与其父级之间。然而,合并提交有多个父节点。它应该与哪个不同?有多个选项可供选择,git 并不真正知道如何显示有用的差异,所以它只显示提交消息。
有关更深入的解释,请参阅这个出色的答案:
提交不是差异;提交是快照。这似乎是一个没有区别的区别——对于某些提交,它是. 但是对于合并提交,它不是.
当
git show
(或git log -p
)将提交显示为差异时,它通过将提交的快照与其他内容进行比较来做到这一点。该git diff
命令做同样的事情:它将一个提交与另一个提交进行比较。(或者它可以比较提交到工作树,或者索引的内容,或者其他一些组合。)对于普通的提交,比较什么很明显:比较这个提交的快照和前一个(即父级)提交的快照。这就是
git show
(git log -p
也是)所做的:它git diff
从父提交运行到此提交。不过,合并提交不只有一个父提交。他们有两个父母。1 这就是使它们首先“合并提交”的原因:合并提交的定义是具有至少两个父级的提交。
推荐阅读
- android - 如何在一个 android studio 项目中为两种不同类型的用户提供两种不同的导航抽屉活动?
- c# - 值不能为空。ASP.NET Core 3..0 中的(参数“键”)
- firebase - 我的反应本机项目firebase模块中的问题无法识别
- arrays - Postgres - 无法在 UUID 上加入 Json 数组值
- java - 为什么分配单个 2D 数组比分配具有相同总大小和形状的多个 1D 数组的循环花费更长的时间?
- create-react-app - 为什么运行创建反应应用程序时会出现盖茨比浏览器错误?
- ruby-on-rails - 参考 CarrierWave 的官方文档,但图片未显示
- python-3.x - 如何修复请求库的安装?
- java - 以 4 为一组,对未知数量的整数求和
- c# - 如何在程序中正确表达作文?