gpt4 book ai didi

git - 为什么git log不按时间顺序显示,代码已经被删除了?

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

我们的 git 分支有一个奇怪的问题,我希望更多的是关于我们的理解,而不是问题本身。我将尽我所能描述我们的工作流程,以确保我们没有遗漏一些明显的东西:

其中一个团队使用 git checkout -b newproject 创建了一个分支,然后进行了一些更改,然后使用 git push -u origin new project 推送了这些更改。然后其他开发人员加入该项目,使用 git fetch origin 然后使用 git checkout newproject

接下来,工作流程如下。开发人员进行更改,git add 新文件和修改后的文件,并定期 git commit。然后,当他们希望其他人看到他们的更改时,他们将执行 git pull origin newproject 以获取自上次 pull 以来的任何更改,然后执行 git push -u origin newproject.

注意:/etc/gitconfig 中,我们有以下内容:

[branch]
autosetuprebase = always

我们经常会在pull 时遇到冲突,因为我们经常处理相同的文件。当我们这样做时,我们得到手动解决冲突的指令,然后运行 ​​git rebase --continue 我们打开文件,选择我们想要保留的代码并进行必要的更改并保存。然后,我们在解析后 git add filename.ext,然后运行 ​​git rebase --continue。完成后,git status 显示没有变化,在 newproject 分支上,在 X 提交之前,我们使用 git push -u origin newproject.

我们今天早上注意到大块代码突然丢失了。运行 git log 时,我们注意到的第一件事是它不是按时间顺序排列的,as the manual suggests .

commit bc0903fc5795425908f335cebcab11055869d75d
Author: billy <billy@our.biz>
Date: Thu Sep 11 15:29:37 2014 +0100

Add responsive skin to sectionProducts

commit 7833850313c2974c3b8cbc75383b1834fbf4bf93
Author: bob <bob@our.biz>
Date: Thu Sep 11 14:44:37 2014 +0100

Rewrite the way breadcrumbs are generated and output to the page

commit 09d1318d9e7249e9e45826d7ddc33f23fc5974b1
Author: bob <bob@our.biz>
Date: Thu Sep 11 11:25:21 2014 +0100

Fix styles for video and featured product boxes, fix miscellaneous bugs and remove obselete code

commit 13f01644935092b490be55b6738f500f0f5fcb2e
Author: bob <bob@our.biz>
Date: Thu Sep 11 08:31:03 2014 +0100

Fix section.html, add featured products, star buy products and product videos

commit 01b3bfb3c20f74ea437b221711deabc970f670d8
Author: bob <bob@our.biz>
Date: Fri Sep 12 08:45:19 2014 +0100

Refine code for breadcrumbs

commit 0303bae79f7ff2e84221e0db3f88d3630d4afa91
Author: bob <bob@our.biz>
Date: Thu Sep 11 15:53:06 2014 +0100

Modify getBreadcrumbTrail so that it attempts to take the correct route when recursing

commit 1ae5f00814bf216eda5449a6e8d89123b124fad8
Author: bob <bob@our.biz>
Date: Thu Sep 11 14:44:37 2014 +0100

Rewrite the way breadcrumbs are generated and output to the page

它似乎也重复了一些提交。另一点需要注意的是,其中一位开发人员提到,当他们看到一些冲突并解决它们时,然后运行 ​​git rebase --continue,他们会看到另一个冲突列表。这发生了几次,然后才全部解决,然后才能推送。

更新:我们注意到这些问题比最初认为的更容易解释。直到并包括,当 bob 推送他的提交时,直到提交 01b3bfb3c20f74ea437b221711deabc970f670d8 日期 Fri Sep 12 08:45:19 2014 +0100,一切正确。它是按时间顺序排列的,代码是正确的。 bob 接下来的 3 次提交实际上是我刚才提到的提交之前的 3 次提交,并且是在 billy 推送他的更改时添加的。因此,它们是 bob 的提交,但不知何故由 billy 重新添加。另请注意,最终提交并未重新添加,这似乎是大部分问题的根源。

为了更好地说明这一点,我提出以下内容:

87e9a4e Add sectionGroup.html to templates_safelincs
bc0903f Add responsive skin to sectionProducts
7833850 Rewrite the way breadcrumbs are generated and output to the page
09d1318 Fix styles for video and featured product boxes, fix miscellaneous bugs and remove obselete code
13f0164 Fix section.html, add featured products, star buy products and product videos
01b3bfb Refine code for breadcrumbs
0303bae Modify getBreadcrumbTrail so that it attempts to take the correct route when recursing
1ae5f00 Rewrite the way breadcrumbs are generated and output to the page
2cc0525 Fix styles for video and featured product boxes, fix miscellaneous bugs and remove obselete code
cc3c86b Fix section.html, add featured products, star buy products and product videos

谁能解释一下我们这里做错了什么?

最佳答案

为了完整起见,我将在此处发布原因。

简单地说,我们正在重写公共(public)历史,which is bad .我们现在所做的只是从 master rebase 到我们的功能分支,当它是最新的并且我们自己的提交应用在头部时,我们然后 merge 到 master。实际上,我们也开始压制提交。即使我们可能在几周前做出初始提交。

关于git - 为什么git log不按时间顺序显示,代码已经被删除了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25806425/

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