Разрешения для.git/для каждого рабочего каталога - git


0

Я получаю эту ошибку каждый раз, когда я нажимаю. Только для этого рабочего каталога. Не в другом подобном, где из того, что я могу сказать, имеет те же права.

$ git push
Counting objects: 15, done.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 683 bytes, done.
Total 8 (delta 5), reused 0 (delta 0)
remote: Sending mail...
To [email protected]:mysite.git
dd36358..86bc572  redesign -> redesign
! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to [email protected]:mysite.git
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. git pull) before pushing again.  See the
Note about fast-forwards section of git push --help for details.

Это проблема с разрешениями? git pull, похоже, работает нормально, и git push, похоже, тоже проходит, но я все еще получаю ошибку.

Есть идеи?

Источник
  •  52
  •  3
  • 27 мар 2020 2020-03-27 02:48:07

3 ответа

0

Если это все еще проблема, если вы делаете git push, вы git push все свои ветки, а не только текущую.

git pull НЕ является прямой противоположностью git push. Это точно так же, как выполнение следующих команд:

git fetch
git merge origin/thecurrentbranch

То есть, git pull только объединяет рабочую ветвь. Он НЕ объединяет другие ветки.

Если git pull становится чистым, но вы все равно не можете нажать, это означает, что одна из ваших других ветвей устарела, и то, что git жалуется.

Решение состоит в том, чтобы только нажать текущую ветку:

git push origin thecurrentbranch

Обратите внимание, что я предполагаю, что thecurrentbranch - это имя вашей активной ветки, а origin - это ваш репозиторий вверх.

РЕДАКТИРОВАТЬ: внимательно изучите свой первоначальный вопрос, просвещающий:

dd36358..86bc572  redesign -> redesign
! [rejected]        master -> master (non-fast-forward)

Вероятно, вы проверили redesign, и поэтому это то, что работает git pull. Однако git отклоняет master ветвь. Таким образом, чтобы решить эту конкретную проблему, либо нажмите redesign явно, либо выполните следующее:

git checkout master
git merge origin/master
git push
0

Это не вопрос разрешений; см. сообщение об ошибке:

Ошибка: не удалось нажать некоторые ссылки на "[email protected]: mysite.git". Чтобы предотвратить потерю истории, были отклонены обновления без переадресации. Слизируйте удаленные изменения (например, "git pull") перед повторным нажатием, Подробную информацию см. В разделе "Заметка о перемотке вперед" в "git push --help".

В разделе "примечание о быстром git push --help есть подробное объяснение проблемы, но, вкратце; отрасль, на которую вы нажимаете, не является прямым предком вашей текущей ветки, поэтому удаленный сервер не позволит вам нажать. Вам необходимо исправить локальные изменения (например, git pull чтобы получить изменения, которые вам не хватает, или git rebase для изменения ваших изменений на удаленной головке) или заставить удаленный сервер принять push с помощью --force (последний почти никогда правильное движение)

0

гм

Merge the remote changes (e.g. git pull) before pushing again.

Это действительно не похоже на проблему с разрешениями для меня.

  • 27 мар 2020 2020-03-27 02:48:08