Что означает «предупреждение: невозможно удалить ссылку с сайта: операция не разрешена» при проверке ветки Git? - PullRequest
2 голосов
/ 07 апреля 2010

Я пытаюсь создать локальную ветку, которая отслеживает удаленную ветку. Вот что я получаю:

> 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 init и git submodule update оба ничего не делают, а git submodule init website и git submodule update website оба дают

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

Ответы [ 2 ]

3 голосов
/ 07 апреля 2010

git выдает это предупреждение, когда вы переключаетесь с ветки с этим подмодулем на тот, который не имеет.

При переключении веток git хочет очистить вашу рабочую копию от всего, что не принадлежит, но он не может удалять каталоги, в которых есть подмодули, потому что они разработаны полностью вручную - git никогда не затрагивает состояние ваших подмодулей.

0 голосов
/ 07 апреля 2010

Это должно означать, что вы:

  • имеет (например) подмодуль, определенный в нем
  • потенциально используют последний Git (1.6.4 или более)
  • используют его в сеансе Cygwin (в этом случае вы можете попробовать, как в этой теме , a:

    strace -o /c/temp/cygwin17.bug --mask = все проверки git --track -b myBranch origin / myBranch

чтобы узнать, может ли журнал ошибок рассказать вам больше.

(см. эту тему )

Я заметил, что git-1.6.4.2 в Cygwin-1.7 демонстрирует необычное поведение, и хотя я не знаю, является ли это проблемой Cygwin.
У меня действительно нет способа проверить, поэтому я просто сообщу об этом здесь.

Я сравнил это поведение с git-1.6.1.2 из Cygwin-1.5, и оно не происходит, поэтому это новое поведение в 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' не отслеживается, поэтому '1053 *' должен удалить его, но это не так.

(На этом этапе вы можете попробовать 'git reset --hard myBranch', если вы находитесь на ветке myBranch, чтобы попытаться удалить какой-либо дополнительный каталог, как указано в этой теме )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...