【问题标题】:Staying on no branch after pulling and switching to a branch拉动并切换到分支后不停留在任何分支上
【发布时间】:2017-06-05 07:58:19
【问题描述】:

我正在尝试切换另一个分支,但我一直停留在一个独立的头上或没有分支。

我尝试了什么:

切换/结帐:

获取:

但如果我想提交,我仍然没有分支:

如果我尝试拉这个分支:

我得到:

而且我还没有在任何分支上......

我怎样才能真正回到 portalGraphs 分支?

【问题讨论】:

    标签: git github tortoisegit


    【解决方案1】:

    您尝试直接签出远程跟踪分支。在 git 哲学中这是不可能的,git 会检查一个所谓的“分离的 HEAD”,即,你不是一个分支,但修订版将是你的 HEAD(参见Why does Git tell me "Not currently on any branch" after I run "git checkout origin/<branch>"?)。

    当您打开切换/签出对话框并选择远程分支时,“创建新分支”复选框会自动选中。这将在远程分支的版本上创建一个本地分支。见

    解决此问题的快速方法是转到切换/签出对话框并选择一个本地分支,例如 master 或在提交对话框中选择“新分支”。

    【讨论】:

      【解决方案2】:

      我没有在 git 中使用过那些糟糕的 GUI。

      您面临的问题是头部分离。您需要做的是检查分支。在你的情况下检查主人。

      git checkout master 
      

      或以下命令,这将检出您检出的前一个分支。

      git checkout - 
      

      Detached head 意味着你不再在一个分支上,你已经签出了历史中的一个提交。

      签出分支后,您可以切换到您的分支。

      【讨论】:

      • 问题是我在本地没有portalGraphs 分支,所以当切换到它时,我应该为它创建“一个新分支”。 Git 是如此不必要的复杂,令人惊讶的是它如此受欢迎。 PS:tortoiseGit 非常接近 git CLI。
      • @kuhaku - 远程分支和本地分支之间的区别没有什么“不必要的”。它很受欢迎,因为它非常强大且非常可靠。它似乎“复杂”,因为您尝试将其视为您首先学习的其他源代码控制系统。它是一种不同的工具,如果您想有效地使用它(并从那些所谓的“不必要的复杂”功能中获得好处),您必须了解它的基础知识。
      • 我没有说具体的事情是不必要的。拜托,即使是像取消推送提交这样简单的事情也很难或不可能,甚至是破坏性的(硬重置,强制推送,wtf?),你真的认为这么简单的事情应该这么复杂吗?另外,我怀疑你和大多数 git 用户甚至使用了它的一半功能。这就是为什么它不必要地复杂,你并不需要所有这些功能。 @MarkAdelsberger
      • @kuhaku - 你抱怨了一件你不喜欢的特定事情,说 git 不必要地复杂;不要害羞,这表明你对抱怨比对学习更感兴趣。顺便说一句,这就是为什么我不会费心指出您的评论不正确的其余方式。
      • 天哪。 @kuhaku,当您做一些新事物,偶然发现新事物并最终从中学习时,就像这样。关于git,相信我,这是迄今为止我用过的最好的CVS 之一,而且很优雅。我在非常古老的东西上工作过,比如 clearcase,这是我用过的最糟糕的工具。 Mercury, SVN bla bla.. 来自所有这些git 使用起来非常简单。我想我的回答解决了您面临的问题?
      猜你喜欢
      • 1970-01-01
      • 2013-12-09
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 2021-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多