检查Git分支时,“警告:无法取消链接网站:操作不允许”是什么意思?

时间:2010-04-07 00:40:58

标签: git

我正在尝试创建一个跟踪远程分支的本地分支。这是我得到的:

> git checkout master

> git push origin origin:refs/heads/myBranch
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:myrepo/myproject.git
* [new branch]      origin/HEAD -> myBranch

> git fetch origin

> git checkout --track -b myBranch origin/myBranch
warning: unable to unlink website: Operation not permitted
Branch myBranch set up to track remote branch myBranch from origin.
Switched to a new branch 'myBranch'

“警告:无法取消链接网站:操作不允许”是什么意思?一切正常吗?

后来

一个名为“website”的文件夹,但它没有内容。 git submodule initgit submodule update都不执行任何操作,git submodule init websitegit submodule update website都会产生

error: pathspec 'website' did not match any file(s) known to git.
Did you forget to 'git add'?

2 个答案:

答案 0 :(得分:3)

当你从具有这个子模块的分支切换到没有这个子模块的分支时,git会发出警告。

当切换分支时,git想要从不属于的所有内容中清除你的工作副本,但它不能删除其中包含子模块的目录,因为它们被设计为完全手动 - git从不隐式接触状态您的子模块。

答案 1 :(得分:0)

这应该意味着你:

  • 有(例如)其中定义的子模块
  • 可能使用最近的Git(1.6.4或更高版本)
  • 在Cygwin会话中使用它(在这种情况下,您可以尝试as in this thread,a:

    strace -o /c/temp/cygwin17.bug --mask = all git checkout --track -b myBranch origin / myBranch

查看错误日志是否可以告诉您更多信息。

(见this thread

  

我注意到Cygwin-1.7中的git-1.6.4.2表现出一些不寻常的行为,虽然我不知道它是否是一个Cygwin问题。
  我真的没有办法检查,所以我只是在这里报告。

     

我已经将此行为与Cygwin-1.5中的git-1.6.1.2进行了比较,并且没有发生,因此它是git-1.6.4.2中的新行为。

     

问题涉及子模块   使用git-1.6.1.2,当使用“git checkout”从具有子模块(“build”)的分支移动到与没有关联子模块的分支相关时,我得到了以下警告信息:

$ git checkout -f master
warning: unable to unlink build: Operati

不允许

  

相关目录仍未删除。我注意到旧的git它也没有删除目录,但是没有显示警告。

     

但令人担忧的是后续的'git clean -fdx'也不会删除子模块目录。使用git-1.6.1.2,目录将被删除:

$ git clean -fdx
  

但是用1.6.4.2反而说:

$ git clean -fdx
Removing build
$ ls -l
...
drwxr-x---+ 1 dantliff Domain Users 0 2009-11-23 17:01 build
  

build”目录未跟踪,因此“git clean -d”应将其删除,但事实并非如此。

(此时,如果您在git reset --hard myBranch分支上,可以尝试“myBranch”,尝试查看是否删除了任何额外目录,如this thread中所述