- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我使用 IntelliJ Git 集成插件。我在多存储库模式下运行,通常一切正常。
当我告诉 Git 通过键入而不是从多存储库/分支 UI 中选择它来 checkout 分支名称时,它会将 ^0 附加到分支名称,从而导致我在 Detached Head 中 checkout 的控制台消息状态。与插入符“^”语法相比,我更熟悉“分离头”的含义,因此我不能 100% 确定消息的准确性。
不过,有谁知道为什么会这样?为什么它选择 checkout mybranch^0 而不仅仅是 mybranch?
(在右下方的 Git UI 中,选择 repo,选择“Checkout tag or revision”,键入分支名称,而不是从 UI 分支列表中选择它)
IntelliJ 中的“控制台”显示:
09:50:54.244: [reponame] git -c core.quotepath=false -c log.showSignature=false checkout feature/branchName^0 --
Git bash 显示分离的头部状态而不是在分支上:
user@WORKSTATION MINGW64 /c/dev/intellij projects/repo-name ((b72ad203...))
最佳答案
在 Git 中,直接 checkout 标签或提交哈希总是会让您进入“分离的 HEAD”状态。为了使“checkout tag or revision”的行为保持一致,Git 插件特意添加了 ^0
以便您在“detached HEAD”状态下 check out 所选分支上的最新提交,就像您直接键入该提交的哈希一样。也就是说,它这样做以便“ checkout 标签或修订版”始终使您处于“分离的 HEAD”状态。
如果它不这样做,就很难达到这个效果:你必须在日志中查找哪个提交是该分支上的最新提交,然后将提交哈希复制粘贴到“ checkout 修订版” pop 窗口。
如果这不是您想要的,请不要使用“checkout tag or revision”。而只是从分支 UI 中选择分支。不要忘记,在 IntelliJ 中,每个列表和菜单都有提前输入过滤功能,因此您可以输入分支名称中的一些字母,以避免阅读整个列表。
^
到底是什么东西?Git 中的 ^
表示法选择父提交。 commit^
或 commit^1
表示第一个父级,commit^2
表示第二个父级(即 merge ),依此类推。 ^0
表示相同的提交。 commit
可以是命名提交的任何方式,包括散列或分支名称。
因为您可以使用分支名称,branch^0
表示 branch
上的最新提交,但它命名提交本身,而不是分支。因为它指定了一个特定的提交,而不是一个分支,所以它进入“分离的 HEAD”状态。
关于git - IntelliJ Git 集成插件 : ^0 appended to branch name when checkout is attempted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53767787/
我试图让 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
我是一名优秀的程序员,十分优秀!