Git фиксирует с правильным пользователем из терминала, но не из кода VS - PullRequest
3 голосов
/ 08 января 2020

Вопрос о том, как использовать несколько идентификаторов для Git, уже задавался несколько раз ... Я прочитал некоторые инструкции и следовал этому

https://itnext.io/setup-git-with-multiple-configs-9b4111d6928c

Дома я пользуюсь Linux и Github. На работе использую Windows 10 и Gitlab. Для работы требуются две Git личности.

Я изменил .gitconfig , расположенный по адресу

C: \ Users \ jdoe

от

[user]
    name = johndoe
    email = johndoe@gmail.com
[credential]
    helper = store
[winUpdater]
    recentlySeenVersion = 2.24.1.windows.2
[core]
    editor = \"C:\\Users\\jdoe\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\" --wait

до

[includeIf "gitdir:~/Desktop/Repositories/Gitlab/"]
    path = ~/Desktop/Repositories/Gitlab/.gitconfig
[includeIf "gitdir:~/Desktop/Repositories/Github/"]
    path = ~/Desktop/Repositories/Github/.gitconfig
[credential]
    helper = store
[winUpdater]
    recentlySeenVersion = 2.24.1.windows.2
[core]
    editor = \"C:\\Users\\jdoe\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\" --wait

Далее я создал каталог Gitlab в

C : \ Users \ jdoe \ Desktop \ Репозитории \ Gitlab

и каталог Github в

C: \ Users \ jdoe \ Desktop \ Репозитории \ Github

В обеих директориях я создал .gitconfig . Для Gitlab я использую свои учетные данные Gitlab (рабочая учетная запись)

[user]
    name = jdoe
    email = john.doe@company.com

Для Github я использую свои личные учетные данные

[user]
    name = johndoe
    email = johndoe@gmail.com

Я протестировал обе платформы с демонстрационными репозиториями. При фиксации обе платформы получают коммит от неизвестного несуществующего пользователя с именем пользователя

Doe

Я не знаю, откуда это имя пользователя , Я ожидаю, что Gitlab показывает имя пользователя jdoe и Github показывает имя пользователя johndoe .

Я также пытался удалить все учетные данные generi c с этим руководством

{ ссылка }

После этого мне предложили ввести учетные данные Github. К сожалению, Github и Gitlab все еще получают коммиты от несуществующего пользователя по имени Doe .

Любая помощь будет оценена


Обновление:

Я проверил этот способ на своей частной машине Linux, и это сработало. Но для моей Windows 10 рабочей машины это не так.


Второе обновление:

Я проверил это без использования VS Code. При фиксации через терминал он также работает на моем Windows 10 компьютере ...

Когда я открываю окно терминала в VS Code, изменяю файл и запускаю

$ git add .
$ git commit -m "test"
$ git push

, он фиксируется правильно , Когда я фиксирую через интеграцию VS Code Git и запускаю

$ git push

позже, он фиксируется с несуществующим пользователем.

1 Ответ

0 голосов
/ 08 января 2020

Итак, я решил проблему, изменив свой глобальный файл .gitconfig на

[includeIf "gitdir/i:~/Desktop/Repositories/Gitlab/"]
    path = ~/Desktop/Repositories/Gitlab/.gitconfig
[includeIf "gitdir/i:~/Desktop/Repositories/Github/"]
    path = ~/Desktop/Repositories/Github/.gitconfig
[credential]
    helper = store
[winUpdater]
    recentlySeenVersion = 2.24.1.windows.2
[core]
    editor = \"C:\\Users\\jdoe\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\" --wait

/i помогает с учетом регистра. ~ начинается с относительного пути из каталога пользователей.

Были некоторые ответы, обеспечивающие такой подход

{ ссылка }

https://github.com/Microsoft/vscode/issues/62921

Теперь VS Code фиксируется с правильным git идентификатором.


Обновление

На моем * Машина 1030 * Мне не нужно было предоставлять /i, так что, похоже, это проблема Windows.

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