为什么Git会告诉我;“目前不在任何分行”;“我跑后”;git签出源代码/<;分行>&引用;?

为什么Git会告诉我;“目前不在任何分行”;“我跑后”;git签出源代码/<;分行>&引用;?,git,git-checkout,remote-branch,Git,Git Checkout,Remote Branch,我试图按照中的说明进行操作,但git checkout出现故障: $ git checkout origin/web-zach HEAD is now at 1366cb1... Changed so css files not ignored $ git status # Not currently on any branch. # Untracked files: # (use "git add <file>..." to include in what will be c

我试图按照中的说明进行操作,但git checkout出现故障:

$ git checkout origin/web-zach
HEAD is now at 1366cb1... Changed so css files not ignored

$ git status
# Not currently on any branch.
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       .cordova/config.xml
#       www/languages/pt/sounds/
nothing added to commit but untracked files present (use "git add" to track)
$git签出来源/web zach
头部现在是1366cb1。。。已更改,因此不会忽略css文件
$git状态
#目前不在任何分支上。
#未跟踪的文件:
#(使用“git add…”包含在将提交的内容中)
#
#.cordova/config.xml
#www/languages/pt/sounds/
提交时未添加任何内容,但存在未跟踪的文件(使用“git add”跟踪)

更具体地说,我担心“目前不在任何分支机构”的消息
git checkout
在这里似乎什么都做不了。。。那命令的全部目的不是要把我放在树枝上吗?我如何回到分支上并再次提交/推送

git status的输出表明您的工作目录是干净的;好

现在,通过跑步

git checkout origin/web-zach
您正在尝试签出一个远程跟踪分支,名为
origin/webzach
;它是一种特殊类型的分支,位于您的回购协议的本地,用于跟踪相应的分支,
webzach
,位于名为
origin
的远程存储库中

但是,
HEAD
引用(可以将其视为地图上的“you Are”标记)不能指向远程跟踪分支;仅对“普通”本地分支或直接提交。当您尝试签出远程跟踪分支时,
引用直接指向远程跟踪分支的尖端(即该远程跟踪分支指向的提交):

HEAD
不指向“正常”本地分支,而是直接指向提交时,您将进入所谓的“分离头状态”。这并不是世界末日,但尽可能避免在那种状态下着陆(至少在你开始学习Git的时候)可能会让你省去一些惊喜

要纠正这种情况,您需要将
HEAD
重新连接到某个本地分支。在这里,您可能希望创建并签出这样一个本地分支,例如通过运行

git checkout -b web-zach
HEAD
将指向新创建的名为
webzach
的本地分支:

那么,你应该

$ git status
On branch web-zach
Untracked files:
  (use "git add <file>..." to include in what will be committed)
      .cordova/config.xml
      www/languages/pt/sounds/
nothing added to commit but untracked files present (use "git add" to track)

我还想添加一个命令,为了使命令能够工作,您必须在推之前提交更改

git签出-bwebzach
git状态
git commit-a-m“添加了新命令更改”

git push-u origin web zach
您想签出哪个分支机构?当你提到“更改”时,你是指未跟踪的文件吗?我正试图推到origin/web zach,而另一个问题中的“更改”指的是我试图提交的一些更改(之前在我的问题中,我丢失了这些更改,幸运的是用老式的复制粘贴备份了这些更改)。我真的不关心未跟踪的文件,可能应该将它们添加到我的.gitignore中。谢谢,这真的很有帮助!我听从了你的指示,一切似乎都按照你说的进行。我在本地分支机构web zach上-不可能“在”远程分支机构上吗?不,您不能像签出
origin/web zach
那样签出
web zach
。它们是不同类型的分支。你可以将远程跟踪分支(如
origin/web zach
)视为棋局中的敌方棋子:你可以看到棋子的位置,但不允许移动它。谢谢你的解释,让我去阅读,这很有意义now@hubatish作为参考,我完全被“追踪”这个词搞糊涂了当我开始学习Git时。它在不同的上下文中用于完全不同的事情。下面是一篇涉及这个话题的好博客:
git push -u origin web-zach