#linux #git #git_push #git_config
Привет всем! Такая проблема: Git почему-то не подхватывает настройки, когда я пытаюсь запушить что-либо. То есть он постоянно просит ввести Username и Password, хотя, по идее, он должен просить только Password Настройки делал глобальные. То есть: git config --global user.name 'SomeName' git config --global user.email some@email.com Но также пытался создать и локальный конфиг, и системный конфиг... Ни один не подхватывается. Пытаюсь подключиться к GitHub, использую Linux. Читал конфиги, думал, может что-то не так пишется, но нет. Всё в конфигах прописано корректно. Смущает разве что только табуляция вместо пробелов. Но не я устанавливаю правила форматирования. Интересно то, что с GitLab всё отлично работает. Ну у них работает всё, ибо они сразу дают твой логин в url, а вот с GitHub это решается заменой origin с https://github.com/username/repo.git на https://username@github.com/username/repo.git Но я не пойму, для чего тогда нужны настройки, если они не подхватываются? Может, они работают как-то иначе/предназначены для чего-то другого?
Ответы
Ответ 1
Смысл user.name и user.email Настройки user.name и user.email используются для того, чтобы сохранять в коммитах информацию об авторстве. Например, так можно посмотреть данные последнего коммита: git cat-file commit HEAD Пример вывода, обратите внимание на третью и четвертую строки: tree 2159e904426c047e790d559c7cc62dd3d4b5174e parent 60b9a77a21a464d71171e483d1bc834ea6fde209 author Name Surname1461622007 +0200 committer Name Surname 1461622007 +0200 Смысл такой: author – автор изменений в коде committer – тот, кто закоммитил эти изменения в git. Обычно они совпадают, в редких случаях отличаются. Что делать с авторизацией Способ авторизации зависит от того, что вы используете для обмена данных с удаленным репозиторием: Протокол HTTPS (с адресом вида https://github.com/username/repo-name.git) Протокол SSH (с адресом вида git@github.com:username/repo-name.git) Собственный протокол Git. Используется редко, здесь рассматривать не будем. (Подробнее о протоколах) В первом случае вам всегда нужно вводить логин и пароль. Вот vp_arth подсказывает в комментарии, что можно настроить их кеширование, чтобы вводить приходилось пореже: git config credential.helper 'cache --timeout=300' Вместо этого рекомендую вам использовать протокол SSH, где для авторизации используются ключи и поэтому не нужно каждый раз вводить логин и пароль. Авторизацию по SSH нужно однократно настроить.
Комментариев нет:
Отправить комментарий