Ошибки и решения

Список ошибок и решений.

Настройки ~/.gitconfig

Чтобы не получать следующее предупреждение:

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

напомню, что значение этой настройки может быть одним из следующих:

  • nothing: do not push anything
  • matching: push all matching branches
    All branches having the same name in both ends are considered to be matching.
    This is the default in Git 1.x.
  • upstream: push the current branch to its upstream branch (tracking is a deprecated synonym for upstream)
  • current: push the current branch to a branch of the same name
  • simple: (new in Git 1.7.11) like upstream, but refuses to push if the upstream branch's name is different from the local one

git apply trailing whitespace

Попробовал накатить патч и получил ошибки вида trailing whitespace после чего фигурировали error: patch failed

Попробовал разобраться сначала с error: patch failed, но проблема не решалась, т.к. при работе с гитом проблему нужно решать сверху вниз, а не наоборот, поэтому сначала разобрался с trailing whitespace, кому интересно читайте информацию о core.whitespace, вот кратко:

Git заранее настроен на обнаружение и исправление некоторых проблем, связанных с пробелами. Он может находить четыре основные проблемы с пробелами — две из них по умолчанию отслеживаются, но могут быть выключены, и две по умолчанию не отслеживаются, но их можно включить.

Решение проблемы очень простое:

git apply --whitespace=fix /dir/my.patch

таким образом мы говорим git-у пофиксить все проблемы связанные с пробелами и применить патч.

git apply patch

Создал патч, решил его накатить:

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

после чего я снова попробовал накатить патч и все получилось.

git error: Untracked working tree file

В моем случае ошибка возникала, т.к. 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 не добавляет содержимое директории

Опять же, дело в том, что эта директория является сабмодулем и git про это знает, поэтому выполняем команды:

mv vendor/yapro/lib/.git /tmp

git rm --cached vendor/yapro/lib/ -f

теперь git увидит все, что есть в директории vendor/yapro/lib/


18.09.2013 11:09