热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

为什么“gitstatus”显示我在master分支上,而“gitbranch”不在新创建的存储库中?

如何解决《为什么“gitstatus”显示我在master分支上,而“gitbranch”不在新创建的存储库中?》经验,为你挑选了4个好方法。

我正在尝试使过程自动化并发出git branch命令以找出我所在的分支。除了新初始化的存储库git branch什么都不返回以外,其他一切都工作正常。鉴于我对仓库没有做任何事情,甚至没有执行最初的提交,我都可以接受答案。但是,如果我运行git status它,它会告诉我我在master分支上,如下所示:

$ mkdir todelete
$ cd todelete
$ git init
Initialized empty Git repository in /u/u70021a/todelete/.git
$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)
$ git branch
$

难道我做错了什么?有没有我没有正确设置的设置?

我对Git也有很多新人,我无法向他们解释为什么显示他们所在的分支的命令什么都没显示,而status命令却显示。



1> torek..:

I upvoted two other answers, but I think the way to think of this is simple: You can be on a branch that doesn't exist. That's normal in a new empty repository, too, because for a branch name to exist, that branch name must identify the hash ID of an existing, valid commit. A new empty repository has no commits, so no branch names are allowed to exist yet.

Nonetheless, you are, initially, on some branch. The branch you are on is the one whose name is stored in the special name HEAD. In a new, empty repository, Git stores the name master (more precisely, refs/heads/master—the full name of the branch) in HEAD, so you are on master, while master does not exist.

You can change which non-existent branch you are on using git checkout -b:

$ git init
Initialized empty Git repository in [path]
$ git checkout -b asdf
Switched to a new branch 'asdf'
$ git checkout -b hello
Switched to a new branch 'hello'

Whenever you are on a branch that does not exist, the next commit you make creates the branch. This is also how git checkout --orphan works.


谢谢。虽然我不同意git显示的内容。至少我理解为什么。您的结帐示例很有趣。根据“ git checkout”的文档,-b的意思是:**创建一个名为 **的新分支,严格来讲这不是正确的。在您的示例中,实际上没有创建分支asdf或hello。但是,如果执行了提交,它们将会是。我个人的看法是,“在分支主机上”消息应更改为“下一次提交给分支主机”,因为在执行提交之前,主分支不存在。
我不确定这是否与您的情况有关,但我想指出的是,对于Git,可能根本不在任何分支上。

2> Stanowczo..:

git branch什么都不显示,因为没有分支。但是,您可以阅读man git init

This command creates an empty Git repository - basically a .git directory with subdirectories for objects, refs/heads, refs/tags, and template files. An initial HEAD file that references the HEAD of the master branch is also created.

I bolded the part I think is relevant - it looks like although there is no master branch yet, a reference to it already exists and that is why it is shown in git status. A proper branch will be created upon committing.


因此,看起来“ git status”只是显示“分支名称”,如**。git / HEAD **(参考:refs / heads / master)所示,但没有通过查看**。git / refs进行一致性检查/ heads **以查看它是否确实存在。

3> Mark Adelsbe..:

现有的答案解决了字面上的问题,即输出为何如此,但我认为它们已经掩盖了实际问题...

您说您正在自动化某件事,所以我建议在脚本上下文中最好的工具git status也不git branch是。

在此讨论中可以找到一些替代方法:如何以编程方式确定当前已签出的Git分支

在不知道您的需求(或您希望未出生分支的行为方式)的情况下,我不一定会提出建议,但我的意思是,有些命令是用于人机交互(瓷器)的,而有些则是用于脚本的(管道)



4> MrTux..:

该分支尚未诞生。因此git branch,不显示它(git symbolic-ref HEAD表示您的HEAD指向默认的分支主机,并且由于git branch未显示而未出生,也就是说,您可以位于尚不存在的分支上)。但是,提交某些内容将创建分支。

如果签出orphan分支,情况也是如此。

我想git status显示分支名称,因为这是将要创建的分支。

有关脚本的信息,请参见如何以编程方式确定当前已签出的Git分支


推荐阅读
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 本文介绍如何使用 Sortable.js 库实现元素的拖拽和位置交换功能。Sortable.js 是一个轻量级、无依赖的 JavaScript 库,支持拖拽排序、动画效果和多种插件扩展。通过简单的配置和事件处理,可以轻松实现复杂的功能。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文详细介绍了如何在 Spring Boot 应用中通过 @PropertySource 注解读取非默认配置文件,包括配置文件的创建、映射类的设计以及确保 Spring 容器能够正确加载这些配置的方法。 ... [详细]
  • This document outlines the recommended naming conventions for HTML attributes in Fast Components, focusing on readability and consistency with existing standards. ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
author-avatar
派沃控制阀_689
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有