在一台机器上,调用git checkout不会创建本地分支.
例如,如果我有一个远程跟踪分支origin/master,我可以打电话git checkout origin/master,它会正常工作,让我处于无头状态.
但如果我试着打电话git checkout master,我就会收到错误error: pathspec 'master' did not match any file(s) known to git.
我在另一台机器上试过这个,它运行得很好.
他们安装了完全相同版本的git(2.15.0.windows.1). git config --list显示出一个区别.正常工作的机器在其配置中具有以下行:
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)
什么会把它放在本地配置中,为什么它可能会从其中一个系统中丢失,以及解决问题的正确方法是什么?
首先回答最后一部分:
什么是解决问题的正确方法?
目前最简单的方法是运行:
git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
Run Code Online (Sandbox Code Playgroud)
以便添加此配置行.
这个:
Run Code Online (Sandbox Code Playgroud)remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
是正常的标准设置remote.origin.fetch.
什么会把它放在本地配置中,
运行:
git clone <url>
Run Code Online (Sandbox Code Playgroud)
将这样做,作为这个六步clone过程的第4步:
git init在空目录中运行.git config在新的空存储库中运行任何指定的操作.git remote add origin <url>.git fetch origin.git checkout <branch>,<branch>通常默认为master.为什么它可能会丢失其中一个系统,
没跑git clone.如果您自己执行这些步骤,并执行奇怪的操作而不是步骤4,您将获得此设置.在某些Windows版本的Git中可能存在某种错误,因为我最近看到了几个问题.
(注意:运行git clone --single-branch -b <branch>重定向git remote add要使用的步骤-t <branch>,因此remote.origin.fetch将设置为标准设置以外的其他值.git config顶部的命令将使用标准设置覆盖非标准设置.)
| 归档时间: |
|
| 查看次数: |
702 次 |
| 最近记录: |