- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
几天前,我在终端中从 master 分支了当前分支。从那以后,我做了一些提交,但是当我输入 git log
时,我看到了以前的提交,我在当前分支上所做的,以及其他人在 master 上所做的。只能假设,在其他人的提交和我的提交之间的某个地方,我会(在 master 分支上)输入
git checkout -b newbranch
有没有 git 命令可以告诉你 newbranch 从 master fork 出来的确切时间戳?
最佳答案
不是真的。那不是 git 跟踪的东西。事实上,它甚至没有跟踪 newbranch
是“来自 master
”的具体分支这一事实。 (顺便说一句,我建议不要使用“fork”来指代分支之间的关系,因为“fork”在一般的 git repos 和 OSS 项目中有特定的含义。)
正如 RomainValeri 所建议的那样,在特定情况下,您可以查看与分支关联的元数据的文件系统时间戳;但这些并不能保证有任何意义。有时他们提到的文件不存在,或者在与分支创建无关的时间创建。即使它确实存在并且确实反射(reflect)了正确的时间戳,也没有多大意义;因为“创建分支”只意味着创建了一个新的 ref。这并不意味着它已被(或曾经被) check out ,或说明哪些 ref 将包含新提交。
可视化现在情况的最简单方法是获取显示分支和其他引用位置的提交图。您可以使用类似 git log --graph --all --full-history
的东西。 (--full-history
选项可能是不必要的,但由于关键是我们不确定发生了什么,所以这将提供最真实的画面。)或者您可能会找到一个 GUI使阅读更容易;当我需要查看“全局”时,我经常使用 gitk --all --full-history
。
请记住,默认情况下肯定会显示创建分支之前的提交。也就是说,如果你有
A -- B -- C <--(master)
\
D <--(newbranch)
那么 D
的日志默认包括 A
、B
和 D
,因为这是newbranch
中代码的完整历史记录。如果您看到 C
,则表明您根本不在 newbranch
上(而且上图不是您真正 在那种情况下有)。
剩下的可能是切线,但以防万一......
默认情况下包含 A
和 B
的原因是,同样,git 不知道/关心哪个分支是从哪个其他分支创建的,或者类似的那。在上图中,newbranch
可能是原始分支,master
可能是从 B
分支出来的;对于 git,这与 newbranch
从 master
在 B
分支是一样的。或者 D
可以在分离的 HEAD 状态下创建,并且 newbranch
可以在事后创建以保留 D
。或者可能会发生很多其他事情。
如果你想只是在newbranch
上添加的提交,你可以说像git log master..newbranch
这样的东西(告诉记录以排除属于 master
历史的任何提交)。
关于git - branch 什么时候从 master 分支出来的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54310789/
我试图让 Branch.io 在 Android 上工作,但我遇到了: myapplication.MainActivity cannot be cast to android.app.Applica
当我执行 git branch 时,我知道我在分支 v0.2 上。 git branch v0.1 * v0.2 但是当我执行 git push 时它说“你当前分支的上游分支与你当前分支的名称不
在使用 Git GUI 检查远程分支 releases/rel_5.4.1 之后,当我尝试 push 时看到了这个意外的错误消息: fatal: The upstream branch of your
SO 上有一个相关问题处理如何更改 push 命令的参数以避免出现此消息: fatal: The upstream branch of your current branch does not mat
arc feature [branch-name] 和 git branch [branch-name] 有什么区别? 他们似乎都创建了一个新分支。 最佳答案 arc feature [branch-
FIFO、LIFO 和LC Branch and Bound 有什么区别? 最佳答案 Branch & Bound 通过使用估计边界来限制可能解决方案的数量来发现完整搜索空间内的分支。不同的类型(FI
有人知道这两个切换和跟踪远程分支的命令之间的区别吗? git checkout -b branch origin/branch git checkout --track origin/branch 我
关于 git-svn 工作流程有很多问题,但我一直无法弄清楚这一点: This section of the svn book谈到 SVN 的一个常见做法:创建一个分支,并在主干更新时不断合并主干中的
我正在构建一个控制 git 存储库的 PHP 应用程序。我有一个执行命令 git status 的同步函数,虽然没有返回“你的分支是最新的”,但可能会提前采取必要的行动,比如远程或本地分支。 我还构建
是否可以使用 branch.io 创建自定义链接,例如 https://example.app.link/fzmLEhobLD所以我可以用我的自定义 10 位参数(如 amitpp8888)控制 fz
我从 github 克隆了一个分支,它的名字是 dev。我已经开始使用它, pull 和推送代码更改并确保我的本地存储库与远程存储库保持同步。我要开始实现一个新功能,因此创建了一个新分支,如下所示:
我们有一个发布模型,为简单起见,我们假设每月 1 次。所以,我们通常会去: Jan -> trunk trunk -> Feb trunk trunk et
使用 Branch.io HTTP API 创建的链接不会在 Branch 门户中显示为快速链接。快速链接很方便,因为它们在一个 View 中显示“点击”、“打开”等内容 用于创建链接的 API:li
我创建了一个分支,当我第一次从源代码合并到分支时,出现了一大堆旧的变更集,它说没有合并,但它们在分支之前就存在,我确认它们在那里。 例子: 假设当 Source 中有 9 个变更集时,我从 Sourc
这是关于我为什么这样做 不是 收到错误“致命:当前分支 A 没有上游分支”。 我删除了 远程 分公司 一个 使用命令 git push origin :A . 然后我切换到本地 分支 A 使用命令 g
我正在使用 clover 插件来检查我的 java 代码测试覆盖率。 我为所有行编写了单元测试。当我点击红线时,它显示“true分支执行了2次,分支执行了0次”。这是什么意思?我该如何解决这个问题?
很确定我误解了 git。 我的目标 我在 github 上有一个带有“master”分支的私有(private)存储库。 我还想有一个生产分支,我会将所有更改从 master 推送到该分支。 然后我想
我将一个相当老的主题分支重新定位到 master 上。由于在 rebase 期间有很多冲突,我想将旧主题分支与 rebased 分支进行比较,以确保我没有意外删除或搞砸主题上的任何更改。我最接近的是比
我正在尝试将我的一个项目推送到 github,但我一直收到此错误: peeplesoft@jane3:~/846156 (master) $ git push fatal: The current b
Jenkins Git 插件根据我的引用规范在控制台输出中生成了以下命令 下面两个命令有什么区别?他们的输出看起来没什么不同。我在下面给出了他们的输出: 命令 1: git fetch --no-ta
我是一名优秀的程序员,十分优秀!