“不能更新path并同时切换到分支”
我有时使用checkout -b
选项来创build一个新的分支,同时检查它并设置一个命令的跟踪。
在新的环境中,我得到这个错误:
$ git checkout -b test --track origin/master fatal: Cannot update paths and switch to branch 'test' at the same time. Did you intend to checkout 'origin/master' which can not be resolved as commit?
为什么Git不喜欢它? 这用于使用相同的回购。
'
origin/master
'不能被parsing为提交
奇怪:你需要检查你的遥控器:
git remote -v
并确保origin
被提取:
git fetch origin
然后:
git branch -avv
(看看你是否已经取得了一个origin/master
分支)
FWIW:如果你在branchname中有一个错字,你会得到同样的错误。
你可以在上下文中得到这个错误,例如一个Travis版本,默认情况下,用git clone --depth=50 --branch=master
检查代码。 据我所知,你可以通过.travis.yml
控制--depth
,而不是--branch
。 由于这样会导致只有一个分支被远程跟踪,所以您需要独立更新远程以跟踪所需的远程参考。
之前:
$ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/master
修正:
$ git remote set-branches --add origin branch-1 $ git remote set-branches --add origin branch-2 $ git fetch
后:
$ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/branch-1 remotes/origin/branch-2 remotes/origin/master
这个简单的东西适合我!
如果说它不能同时做两件事,把它们分开。
git branch branch_name origin/branch_name git checkout branch_name
当您遇到这个问题时,您可以按照以下步骤操作:
- 运行以下命令以列出本地存储库已知的分支。
git远程显示起源
它输出这个:
remote origin Fetch URL: <your_git_path> Push URL: <your_git_path> HEAD branch: development Remote branches: development tracked Feature2 tracked master tracked refs/remotes/origin/Feature1 stale (use 'git remote prune' to remove) Local branches configured for 'git pull': Feature2 merges with remote Feature2 development merges with remote development master merges with remote master Local refs configured for 'git push': Feature2 pushes to Feature2 (up to date) development pushes to development (up to date) master pushes to master (local out of date)
- 在validation详细信息(获取URL等)后,运行此命令以获取远程存在但不在本地的任何新分支(即,您可能希望在本地回购中签出的分支)。
» git remote update Fetching origin From gitlab.domain.local:ProjectGroupName/ProjectName * [new branch] Feature3 -> Feature3
正如你所看到的,新的分支已经从远程获取。
最后,用这个命令检查分支
» git checkout -b Feature3 origin/Feature3 Branch Feature3 set up to track remote branch Feature3 from origin. Switched to a new branch 'Feature3'
没有必要明确告诉Git跟踪(使用–track )分支与远程。
以上命令将设置本地分支从原点跟踪远程分支。
对我来说,我需要添加遥控器:
git remote -add myRemoteName('origin' in your case) remoteGitURL
然后我可以取
git fetch myRemoteName
首先,您需要Fetch
远程(特定分支),然后您可以创build一个本地br并使用您的命令跟踪该远程分支(即使用-b和–track checkout
)。
你应该去子模块目录并运行git status
。
您可能会看到很多文件被删除。 你可以跑
-
git reset .
-
git checkout .
-
git fetch -p
-
git rm --cached submodules
// submoudles是你的名字 -
git submoudle add ....