Список ошибок и решений.
Чтобы не получать следующее предупреждение:
fatal: The current branch PROMO-43 has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin YOUR_BRANCH_NAME
можно пушить текущую ветку в одноименнюу удаленную ветку, поэтому я применяю такую настройку:
[push]
default = current
напомню, что значение этой настройки может быть одним из следующих:
Попробовал накатить патч и получил ошибки вида trailing whitespace после чего фигурировали error: patch failed
Попробовал разобраться сначала с error: patch failed, но проблема не решалась, т.к. при работе с гитом проблему нужно решать сверху вниз, а не наоборот, поэтому сначала разобрался с trailing whitespace, кому интересно читайте информацию о core.whitespace, вот кратко:
Git заранее настроен на обнаружение и исправление некоторых проблем, связанных с пробелами. Он может находить четыре основные проблемы с пробелами — две из них по умолчанию отслеживаются, но могут быть выключены, и две по умолчанию не отслеживаются, но их можно включить.
Решение проблемы очень простое:
git apply --whitespace=fix /dir/my.patch
таким образом мы говорим git-у пофиксить все проблемы связанные с пробелами и применить патч.
Создал патч, решил его накатить:
git apply /home/my.patch
и получил ошибку:
error: patch failed: fancytree/MIT-License.txt:4
error: fancytree/MIT-License.txt: patch does not apply
проблема решилась откатыванием всех изменений, с помощью команды:
git clean -fdx
после чего я снова попробовал накатить патч и все получилось.
В моем случае ошибка возникала, т.к. origin master был старее, чем мой master. Предположительно проблема возникла, т.к. ведущий прогер просто откатил главную ветку назад. Решение: посмотрите кол-во коммитов на которые Ваша ветка опережает origin master и откатитесь назад, как это сделал ведущий прогер, например он откатился на 5 коммитов назад и Вы так же сделайте.
Решил обновить список сабмодулей:
git submodule update
получил ошибку:
No submodule mapping found in .gitmodules for path 'vendor/hwi/oauth-bundle/HWI/Bundle/OAuthBundle'
решение:
git rm --cached vendor/hwi/oauth-bundle/HWI/Bundle/OAuthBundle
Опять же, дело в том, что эта директория является сабмодулем и git про это знает, поэтому выполняем команды:
mv vendor/yapro/lib/.git /tmp
git rm --cached vendor/yapro/lib/ -f
теперь git увидит все, что есть в директории vendor/yapro/lib/