git-cheetah изменяет переменную среды path несколько раз

#windows #git

#Windows #git

Вопрос:

Просто хочу узнать, был ли у кого-нибудь подобный опыт. Похоже, что Git изменяет мою переменную среды path, далее именуемую $path, так что, если после запуска моей системы в течение нескольких дней $path — это 1 огромный беспорядок!

После чистой загрузки $path выглядит примерно так:

D:WINDOWSsystem32;D:WINDOWS;D:AppsDevelopmentGitcmd;D:AppsDevelopmentAndroidandroid-sdkplatform-tools;D:AppsDevelopmentphantomjs-1.9.7-windows;D:AppsToolsGnuWin32bin

Когда он достигает состояния, о котором я упоминал, это выглядит примерно так:

D:AppsDevelopmentGitgit-cheetah..bin;D:WINDOWSsystem32;D:WINDOWS;D:AppsDevelopmentGitcmd;D:AppsDevelopmentAndroidandroid-sdkplatform-tools;D:AppsDevelopmentphantomjs-1.9.7-windows;D:AppsToolsGnuWin32bin

За исключением того, что D:AppsDevelopmentGitgit-cheetah..bin бит повторяется, иногда (что выглядит) более 50 раз!

Любая информация об этом была бы очень признательна

Комментарии:

1. Я сталкиваюсь с тем же самым. Я еще не нашел решения.

2. Я отмечаю, что в проекте github для этого есть ошибка

Ответ №1:

Прежде всего, извиняюсь, что это скорее обходной путь, чем ответ. Я испытываю ту же самую проблему. В конце концов мой ПУТЬ становится настолько большим, что мои программы не могут ничего найти, даже такого простого, как XCOPY.

Это происходит со мной на моем рабочем компьютере, который находится под управлением домена, и у меня нет прав администратора. Эти инструкции не предполагают доступа администратора, строго пользовательского доступа.

Чтобы избежать перезапуска, я выполняю следующее:

Перед выполнением этих шагов вы можете открыть командное окно и выполнить set PATH , чтобы убедиться, что у вас слишком много cheetah s.

  1. Перейдите в диалоговое окно Переменные среды (щелкните правой кнопкой мыши «Мой компьютер» -> Выберите «Свойства» -> Выберите вкладку «Дополнительно» -> Нажмите кнопку «Переменные среды»).
  2. Выберите переменную «PATH» в разделе «Пользовательские переменные для <username> «.
  3. Затем нажмите кнопку «Редактировать» в том же разделе.
  4. Ничего не делать
  5. Нажмите OK в диалоговом окне «Редактировать пользовательскую переменную».
  6. Нажмите OK в диалоговом окне «Переменные среды».
  7. Нажмите OK в окне «Свойства системы».

Откройте НОВОЕ командное окно (командные окна, которые уже были открыты, могут сохранить их текущую среду) и запустите «установить ПУТЬ», чтобы убедиться, что вы вернулись к none или one ‘cheetah на вашем пути.

Комментарии:

1. Я действительно понял, что использование диалогового окна переменных среды как бы сбрасывает все будущие консоли. Но надеялся, что кто-нибудь узнает, как предотвратить это в первую очередь. Единственное отличие в том, что мне пришлось делать это с системной переменной PATH, поскольку нет переменной User PATH. Я на XP r u, возможно, использую что-то позже? На самом деле это довольно глупая вещь, которая отстой, потому что GIT настолько потрясающий. У меня есть теория: я думаю, что это происходит с большим количеством репозиториев, которые у вас есть

2. У меня есть только 2 или 3 репозитория, и путь повторяется 59 раз в моей переменной PATH.

3. Я тоже это вижу. Возможно, это происходит тем больше, чем больше вы щелкаете правой кнопкой мыши в проводнике, поэтому появляется контекстное меню git.

4. Мне странно, что это обходное решение работает. Кроме того, это происходит не только тогда, когда вы щелкаете правой кнопкой мыши и открываете CMD из контекстного меню.

Ответ №2:

У меня была такая же досадная проблема. Просто загрузите исходный код git-cheetah, откройте common / winexec.c и в строке 262 измените с:

 if (path.len) {
    setenv("PATH", path.buf, 1);
    rec->envpath = strbuf_detach(amp;path, NULL);
}
  

Для:

 if (path.len) {
    if (!strstr(getenv("PATH"), gitpath))
        setenv("PATH", path.buf, 1);
    rec->envpath = strbuf_detach(amp;path, NULL);
}
  

Затем перекомпилируйте (cd explorer, mingw32-make) и скопируйте сгенерированную dll поверх существующей в Program files Git git-cheetah. Если файл используется, вы можете открыть окно консоли, закрыть процесс Explorer и скопировать с помощью командной строки; затем перезапустите Explorer с помощью диспетчера задач (Файл-> Выполнить).

Комментарии:

1. Не уверен, почему это не принятый ответ. Отлично работает в Windows 10 ПРОТИВ 2015.