gpt4 book ai didi

Git:试图跟踪哪些远程分支引入了文件

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

在当前的一个项目中,我们维护着多个远程分支。例如:

[me@server]$ git branch -a
master
* featureX
remotes/origin/HEAD -> origin/master
remotes/origin/featureX
remotes/origin/featureY

现在假设发生了以下事件:

  1. 我将“myfile.php”添加到 featureX 并将其推送到 remotes/origin/featureX
  2. 功能 X 已完成,因此我将其 merge 回 master。
  3. 我们启动了一个名为 Feature Z (remotes/origin/featureZ) 的新项目,这是一个从 master 分支出来的新分支,因此其中包含 myfile.php。
  4. Feature Z 的开发人员对该文件进行了更改并提交,但尚未将其 merge 回来。

此时,是否可以显示 myfile.php 的日志,显示文件被主动更改或引入的远程分支?例如:

myfile.php Changelog:
2014-06-05 :: DeveloperZ :: remotes/origin/featureZ (updated)
2014-06-04 :: DeveloperMe :: remotes/origin/master (merged)
2014-06-03 :: DeveloperMe :: remotes/origin/featureX (created)

我一直在尝试阅读类似的请求,但我有点迷路了。听起来快进(在我们的项目中使用)会导致一些问题。

最佳答案

你当然可以找到引入文件的提交,但是提交和分支之间没有永久的关系。如果你单独留下功能分支,那么你可以找出关系:

                                                            master
*---*---*---*---*---*---*---*---*---*---*---*---*---*---*---*
\ / \ /
X---*---*---*-- *---*---*---*--
featureX featureZ

说提交“X”引入了有问题的文件。提交“X”将被列为分支 master、featureX 和 featureZ。 commit 结构使得该文件很明显是在 featureX 中引入的。您可能会编写一个脚本来确定提交“X”所在的哪个分支是“最近的”。

如果您曾经删除过该分支,那么您仍然可以看到与其相关的功能分支提交结构,但是在 git 中不会有任何关于功能分支是什么的指示。大概提交消息或源代码注释会告诉您正在处理的功能是什么。


要使用 git branch --contains 解决这个问题,您需要执行以下操作:

> git branch --contains X
master
featureZ
featureX
> git branch --contains master
master
> git branch --contains featureZ
master
featureZ
> git branch --contains featureX
master
featureZ
featureX

由于分支 featureX 与提交 X 包含在同一组分支中,因此这是引入 X 的特性分支。

关于Git:试图跟踪哪些远程分支引入了文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24064411/

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